Atuin: Shell History That Actually Works
Your shell history is broken. You know it, I know it, everyone hitting Ctrl+R and scrolling through garbage knows it.
What It Actually Is
Atuin replaces your shell's history file with a SQLite database. Instead of just storing commands, it records exit codes, execution time, working directory, and timestamps. Think of it as your shell history growing a brain.
Why It's Worth Your Time
Every developer has been here: you ran some perfect command three weeks ago, you remember it involved grep and maybe awk, but your shell history gives you 47 variations of ls and nothing useful. Atuin fixes this with actual search that works.
The killer feature isn't the fancy TUI — it's the metadata. Search for commands that succeeded (--exit 0), commands that took more than 30 seconds, or commands you ran in a specific directory. This is forensic-level detail for your terminal sessions.
Plus it syncs across machines with end-to-end encryption. The same command history on your laptop, server, and dev box without leaking anything to some cloud service.
Hands On
Installation is dead simple:
curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh
After install, it hooks into your shell's Ctrl+R. The first time you hit it, you'll see the difference immediately — a full-screen fuzzy search interface that actually finds what you're looking for.
Want to find that Docker cleanup command you ran last week?
atuin search "docker system prune"
Or get surgical with it:
# All successful make commands from yesterday after 3pm
atuin search --exit 0 --after "yesterday 3pm" make
# Commands that took longer than a minute
atuin search --before "2024-01-01" --exit 0 --duration ">1m"
The search syntax is intuitive once you use it a few times. The metadata filtering is where it gets powerful.
Honest Verdict
This is one of those tools that makes you wonder how you worked without it. The basic Ctrl+R replacement alone is worth installing, but the advanced search capabilities turn your shell history into an actual useful reference.
The sync feature works reliably — I've had the same history across three machines for months without issues. The encryption means even if their servers get compromised, your command history stays private.
Minor rough spots: the configuration file syntax could be clearer, and the import process from existing shell history occasionally misses commands with complex quoting. But these are papercuts on an otherwise solid tool.
If you spend significant time in a terminal, install this. It's not revolutionary — it's just shell history done right.
Go Try It
Run the install command above, restart your shell, then hit Ctrl+R. You'll immediately understand why 25,000 developers starred this project.
Check the official documentation for sync setup if you want history across multiple machines.
Compiled by AI. Proofread by caffeine. ☕