
atuin
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.
Installation
# via Curl
curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh
Alternatives & related tools
fish
Interactive command line shell with syntax highlighting, autosuggestions, and tab completions that work without configuration
zoxide
Smart cd replacement that remembers frequently used directories for quick navigation
Nushell
Structured data shell that treats commands and files as typed data rather than raw text streams
genact
Terminal program that prints fake activity output (compilers, builds, botnets, downloads) to look busy. Runs natively or in a browser via WebAssembly.
McFly
Replaces ctrl-r shell history search with a full-screen search ranked by a small neural network using directory, prior commands, and exit status.
add a badge to your README
Maintain atuin? Show that it's featured on trmn. The badge links back to this page.
[](https://www.trmn.sh/tools/atuin?utm_source=badge)<a href="https://www.trmn.sh/tools/atuin?utm_source=badge"><img src="https://www.trmn.sh/badge/atuin.svg" alt="Featured on trmn" height="20"></a>