atuinsh/atuin · error

script '{}' not found

Error message

script '{}' not found

What it means

`atuin scripts get <name>` fetches the script by name to print its metadata and body; if the lookup returns `None`, it bails with "script '{}' not found". This is a read-only query failure, not a data-loss condition.

Source

Thrown at crates/atuin/src/command/client/scripts.rs:435

                println!("tags: []");
            } else {
                println!("tags:");
                for tag in &script.tags {
                    println!("  - {tag}");
                }
            }

            println!("shebang: {}", script.shebang);

            println!("script: |");
            // Indent the script content for proper YAML multiline format
            for line in script.script.lines() {
                println!("  {line}");
            }

            Ok(())
        } else {
            bail!("script '{}' not found", get.name);
        }
    }

    #[allow(clippy::cognitive_complexity)]
    async fn handle_edit(
        _settings: &Settings,
        edit: Edit,
        script_store: ScriptStore,
        script_db: atuin_scripts::database::Database,
    ) -> Result<()> {
        debug!("editing script {:?}", edit);
        // Find the existing script
        let existing_script = script_db.get_by_name(&edit.name).await?;
        debug!("existing script {:?}", existing_script);

        if let Some(mut script) = existing_script {
            // Update the script with new values if provided
            if let Some(description) = edit.description {

View on GitHub (pinned to c0c717ab04)

Solutions

  1. Run `atuin scripts list` to list exact names and fix the spelling.
  2. Trigger a sync/rebuild of the script store so remote scripts appear locally.
  3. If the script was deleted, re-create it.

Example fix

// before
atuin scripts get Deploy-Prod
// after
atuin scripts list
atuin scripts get deploy-prod
Defensive patterns

Strategy: validation

Validate before calling

# shell
atuin scripts list | grep -qx "$name" || { echo "no such script: $name" >&2; exit 1; }
atuin scripts get "$name"

Try / catch

if ! atuin scripts get "$name"; then
  atuin scripts list | grep -i "${name:0:4}" || true
fi

Prevention

When it happens

Trigger: `atuin scripts get NAME` where no script with that exact name exists in the local script database.

Common situations: Typo or wrong case in the name, script exists only on another host and hasn't synced, or the scripts DB is stale before a rebuild.

Understand the failure class

Background: Record Not Found Errors: "not found", RecordNotFound, and "was not found" — what they mean and how to fix them — this error's family across 28 libraries.

Related errors


AI-assisted analysis of atuinsh/atuin@c0c717ab04 (2026-09-12). Data as JSON: /api/errors/594e9f864a098b0e. Report an issue: GitHub.