LinuxCommandLibrary

atuin

Sync and search shell command history

TLDR

Install atuin into your shell

$ eval "$(atuin init [bash|zsh|fish])"
copy

Import history from the shell default history file
$ atuin import auto
copy

Search shell history for a specific command
$ atuin search [command]
copy

Register an account on the default sync server using the specified username, email, and password
$ atuin register [[-u|--username]] [username] [[-e|--email]] [email] [[-p|--password]] [password]
copy

Login to the default sync server
$ atuin login [[-u|--username]] [username] [[-p|--password]] [password]
copy

Sync history with the sync server
$ atuin sync
copy

SYNOPSIS

atuin [OPTIONS] <SUBCOMMAND>

PARAMETERS

-c, --config-file <CONFIG_FILE>
    Path to configuration file

-d, --data-dir <DATA_DIR>
    Directory for data storage (default: ~/.local/share/atuin)

--disable-updater
    Prevent automatic binary updates

--help
    Print help information

-l, --log-file <LOG_FILE>
    Path to log file

--log-level <LOG_LEVEL>
    Set log level (off, error, warn, info, debug, trace)

--search-mode <SEARCH_MODE>
    Search mode: regex, fuzzy, hybrid (default: fuzzy)

-V, --version
    Print version information

DESCRIPTION

Atuin is a powerful command-line tool that revolutionizes shell history management. It replaces traditional shell history files with a robust SQLite database, capturing full details like timestamps, exit codes, execution durations, directories, and hostnames for every command.

Key features include lightning-fast fuzzy or regex search across your entire history, syncing history across multiple machines with end-to-end encryption, and support for Bash, Zsh, Fish, and Nushell shells. Commands are deduplicated, and you can view stats, delete entries, import old histories, and even share snippets.

Installation is straightforward via package managers, Cargo, or binaries. After setup, integrate by sourcing atuin init <shell> in your profile. Atuin runs as a daemon for real-time syncing and search, offering a seamless, magical experience for power users tired of grep'ing through .bash_history.

CAVEATS

Requires shell integration via atuin init; syncing needs an account or self-hosted server. History DB can grow large; use atuin stats to monitor. Not compatible with all shells out-of-box.

COMMON SUBCOMMANDS

atuin search: Fuzzy search history.
atuin sync: Sync history across devices.
atuin stats: Show usage stats.
atuin add: Manually add commands.

SHELL INTEGRATION

Add to ~/.bashrc: eval "$(atuin init bash)"
Supports Zsh, Fish, Elvish, Nushell.

HISTORY

Created by developer Ellis in 2021 as an open-source Rust project on GitHub (atuinsh/atuin). Gained popularity for superior search and cross-device sync. Reached v20+ by 2024 with E2E encryption, self-hosting, and broad shell support. Actively maintained with thousands of stars.

SEE ALSO

history(1), fc(1)

Copied to clipboard