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

  1. Run `atuin hook install <agent>` instead, then reload as the hint instructs
  2. Follow the printed reload_hint to activate the extension integration
  3. 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

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


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