atuinsh/atuin · error
script ' ' not found
Error message
script '{}' not found What it means
`atuin script get <name>` bails with this when no script matching the given name exists in the script database. handle_get only prints the script when the DB lookup returns Some; the None branch produces this message with the requested name interpolated.
Solutions
- Run `atuin script list` and copy the exact name
- Run `atuin sync` and `atuin store rebuild` to pull scripts from the server
- Recreate the script if it was intentionally deleted
Defensive patterns
Strategy: validation
Validate before calling
let exists = script_db.get_by_name(&name).await?.is_some();
if !exists { eprintln!("unknown script: {name}"); return Ok(()); }
Prevention
- Verify the name via `atuin script list` before `script get`
- Keep scripts synced so all hosts share the same name space
When it happens
Trigger: `atuin script get <name>` where `script_db.get_by_name(name)` returns None.
Common situations: Misspelled name, script not yet synced to this machine, case mismatch, or the script was removed after sync from another host.
Understand the failure class
Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.
Related errors
- script not found
- A script named ' ' already exists
- `atuin history tail` requires Atuin to be built with the…
- `atuin hook ` is not supported. Use `atuin hook install `.
- `atuin update` is only available when atuin was installed…
AI-assisted analysis of atuinsh/atuin@900007c480 (2026-09-19).
Data as JSON: /api/errors/594e9f864a098b0e.
Report an issue: GitHub.
Appendix: 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 900007c480)