Shell history management with SQLite storage, search interface, and encrypted sync across machines
Atuin replaces the default shell history mechanism by storing commands in a SQLite database with additional context including exit codes, working directory, hostname, session information, and execution duration. It provides a full-screen search interface that replaces the standard ctrl-r history search, allowing complex queries like filtering by exit status, time ranges, and directory context.
The tool supports multiple shells including zsh, bash, fish, nushell, xonsh, and powershell with varying levels of support. Commands can be searched using specific criteria such as atuin search --exit 0 --after "yesterday 3pm" make to find successful make commands from a specific timeframe. The interface allows quick navigation with Alt+number shortcuts and provides multiple filter modes accessible via ctrl-r.
Atuin offers optional synchronization of shell history across machines through an encrypted sync service, either using the hosted Atuin Cloud or a self-hosted server. All sync data is end-to-end encrypted, ensuring command history remains private. The tool preserves existing history files while adding enhanced functionality, and can import history from various shell formats automatically.
# via Curl
curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh