atuinsh/atuin · error

`atuin history tail` requires Atuin to be built with the `da

Error message

`atuin history tail` requires Atuin to be built with the `daemon` feature

What it means

The `atuin history tail` subcommand depends on the optional `daemon` feature. When the atuin binary was compiled without it, the tail code path is cfg'd out and running the command immediately fails with this guidance instead of silently doing nothing.

Source

Thrown at crates/atuin/src/command/client/history.rs:1140

                )
                .await?
                {
                    println!("{id}");
                }

                Ok(())
            }
            Self::End {
                id, exit, duration, ..
            } => end_history_entry(settings, id, exit, duration).await,
            Self::Tail => {
                #[cfg(feature = "daemon")]
                {
                    return Self::handle_tail(settings).await;
                }

                #[cfg(not(feature = "daemon"))]
                bail!("`atuin history tail` requires Atuin to be built with the `daemon` feature");
            }
            cmd => {
                let context = current_context().await?;

                let db_path = &settings.db_path;
                let record_store_path = &settings.record_store_path;

                let db = Sqlite::new(db_path, Duration::try_from_secs_f64(settings.local_timeout)?)
                    .await?;
                let store = SqliteStore::new(
                    record_store_path,
                    Duration::try_from_secs_f64(settings.local_timeout)?,
                )
                .await?;

                let encryption_key = paseto_v4::Key::try_load_or_generate(&settings.key_path)
                    .context("could not load or generate encryption key")?;

View on GitHub (pinned to c0c717ab04)

Solutions

  1. Install/build atuin with the daemon feature enabled: cargo install atuin --features daemon
  2. Use a distribution build that includes the daemon feature
  3. Use an alternative (non-daemon) history query in the meantime

Example fix

// before
cargo install atuin --no-default-features
// after
cargo install atuin --features daemon
Defensive patterns

Strategy: validation

Validate before calling

// shell-side guard
atuin history tail --help 2>/dev/null || echo "binary lacks daemon feature; rebuild with --features daemon"

Prevention

When it happens

Trigger: Running `atuin history tail` with a binary built without the `daemon` cargo feature (the default feature set may exclude it, or an explicitly minimal build).

Common situations: Installing atuin from a distro package or crate build that disables the daemon feature; building with --no-default-features or a custom feature selection.

Related errors


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