atuinsh/atuin · error
`atuin hook {agent_name}` is not supported. Use `atuin hook
Error message
`atuin hook {agent_name}` is not supported. Use `atuin hook install {agent_name}`. {reload_hint} What it means
Some agents integrate via editor/CLI extensions rather than shell JSON hooks. For those, `atuin hook <agent>` (which emits hook JSON for a shell wrapper) is meaningless, so handle() bails and points the user at `atuin hook install <agent>` plus an agent-specific reload hint.
Source
Thrown at crates/atuin/src/command/client/hook.rs:184
(None, None) => {
bail!("expected `atuin hook <agent>` or `atuin hook install <agent>`");
}
(Some(_), Some(_)) => {
bail!("hook action cannot be combined with a positional agent");
}
}
}
}
fn id_file_path(tool_use_id: &str) -> PathBuf {
std::env::temp_dir().join(format!("atuin-hook-{tool_use_id}"))
}
async fn handle(agent_name: &str, settings: &Settings) -> Result<()> {
let agent = Agent::from_name(agent_name)?;
if let InstallKind::Extension { reload_hint, .. } = agent.install_kind() {
bail!(
"`atuin hook {agent_name}` is not supported. Use `atuin hook install {agent_name}`. \
{reload_hint}"
);
}
let mut input = String::new();
std::io::stdin().read_to_string(&mut input)?;
if input.trim().is_empty() {
return Ok(());
}
match HookEvent::from_json_str(&input)? {
Some(HookEvent::Start {
command,
intent,
tool_use_id,
}) => {View on GitHub (pinned to c0c717ab04)
Solutions
- Run `atuin hook install <agent>` instead, then reload as the hint instructs
- Follow the printed reload_hint to activate the extension integration
- Check the agent's docs for how its Atuin integration is invoked
Example fix
// before atuin hook my-extension-agent // after atuin hook install my-extension-agent
Defensive patterns
Strategy: validation
Validate before calling
# prefer install for extension-based agents atuin hook install "$AGENT" && echo "reload the agent per its hint"
Prevention
- Use `atuin hook install <agent>` for extension-based agents
- Follow the printed reload_hint after installing
- Check the agent's install kind before choosing hook vs install
When it happens
Trigger: Running `atuin hook <agent>` where Agent::install_kind() returns InstallKind::Extension; the agent's hooks are installed into its extension/config rather than driven by JSON hook input.
Common situations: Agents like GUI-based coding assistants that use extension-based integration; users following shell-hook instructions for an extension-based agent.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- expected `atuin hook <agent>` or `atuin hook install <agent>
- hook action cannot be combined with a positional agent
- agent does not use JSON hooks
- Failed to read from input
- authentication canceled
AI-assisted analysis of atuinsh/atuin@c0c717ab04 (2026-09-12).
Data as JSON: /api/errors/f7ae04f589ba2c35.
Report an issue: GitHub.