atuinsh/atuin · error
script not found
Error message
script not found
What it means
`atuin scripts run <name>` looks up the script in the script database by name; if no matching script exists, it bails with "script not found". This guards execution so only registered scripts can be run.
Source
Thrown at crates/atuin/src/command/client/scripts.rs:354
let value = input.trim().to_string();
variable_values.insert(var, serde_json::Value::String(value));
}
}
let final_script = if variable_values.is_empty() {
// No variables to template, just use the original script
script.script.clone()
} else {
// If we have variables, we need to template the script
debug!("Templating script with variables: {:?}", variable_values);
template_script(&script, &variable_values)?
};
// Execute the script (either templated or original)
Self::execute_script(final_script, script.shebang.clone()).await?;
} else {
bail!("script not found");
}
Ok(())
}
async fn handle_list(
_settings: &Settings,
_list: List,
script_db: atuin_scripts::database::Database,
) -> Result<()> {
let scripts = script_db.list().await?;
if scripts.is_empty() {
println!("No scripts found");
} else {
println!("Available scripts:");
for script in scripts {
if script.tags.is_empty() {
println!("- {} ", script.name);View on GitHub (pinned to c0c717ab04)
Solutions
- Run `atuin scripts list` to see exact available script names and correct the spelling.
- If the script was renamed, use the new name.
- Run `atuin scripts reload` / wait for sync so the scripts DB is rebuilt from the record store.
- Create the script if missing: `atuin scripts new`.
Example fix
// before atuin scripts run deply // after atuin scripts list # find exact name atuin scripts run deploy
Defensive patterns
Strategy: validation
Validate before calling
# shell
atuin scripts list | grep -qx "deploy" || { echo "script 'deploy' not found" >&2; exit 1; }
atuin scripts run deploy Try / catch
if ! atuin scripts run "$name" 2>&1 | grep -q 'script not found'; then :; fi # or check list first and fall back to creating the script
Prevention
- Tab-complete script names from `atuin scripts list`.
- Sync (`atuin sync`) before running scripts created elsewhere.
- Keep script names short and distinctive to avoid typos.
When it happens
Trigger: `atuin scripts run NAME` where NAME is not present in the script store (typo, deleted script, scripts DB not rebuilt/synced, or running before `atuin scripts list` shows it).
Common situations: Typos in the script name, scripts created on another machine not yet synced, a fresh home directory without the scripts database, or running by a stale name after a rename.
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
- script '{}' not found
- A script named '{}' already exists
- Failed to read from input
- authentication canceled
- You are not logged in
AI-assisted analysis of atuinsh/atuin@c0c717ab04 (2026-09-12).
Data as JSON: /api/errors/639fdf07e1f5d265.
Report an issue: GitHub.