DevLogTechnical writing
Tools

Atuin: Shell History That Can Actually Be Searched (and Synced)

October 28, 2026

Your shell remembers every command you've ever run. It just refuses to help you find any of them.

Plain shell history is a flat text file you scroll with Ctrl+R and pray over. It stores the command and almost nothing else: no where you ran it, whether it worked, or how long it took. On a fresh machine you start from zero. Atuin fixes all of that by replacing your history with what it should have been all along — a real database.

What it actually is Atuin (GitHub repo atuinsh/atuin, roughly 32,000 stars, MIT-licensed, built in Rust) swaps ~/.bash_history for a SQLite database. Every entry is logged with the context that makes a command worth remembering: the exit code, the working directory, the hostname, how long it ran, and the session. That one change turns a wall of text into something you can actually query.

Rebound by default, Ctrl+R opens a full-screen, fuzzy search over your history instead of the ancient incremental reverse search. You can filter by what matters: history from just the current directory, just your current session, or everything globally. Type a fragment, get every version of the command back, pick with the arrow keys, and it runs. It's fzf for your history, but with structured data underneath instead of a grep of a text file.

The part that wins Plenty of tools make history searchable. Atuin's differentiator is that it treats your history as data worth keeping and synchronizing. Register once with atuin register, and it backs up your history to a server (their public one, or one you self-host). Every entry is encrypted end-to-end before it leaves your machine — the server operator sees nothing. The encryption key, printed by atuin key, is yours alone; lose it and there's no recovery.

When only signed in on one machine, sync effectively acts as an encrypted backup. Add a second machine — your work desktop, a laptop, a CI box — and history converges hourly by default, so that perfect kubectl incantation you found at 2am is waiting on whatever device you open next. It also imports your existing history on first run, so nothing you've already typed is lost.

The project keeps pulling the tool forward. v18.13 (March 2026) shipped a daemon that made search dramatically faster plus a PTY proxy so Atuin sees richer data about what commands actually ran. In August 2026 a "packfiles" rewrite made sync roughly 32x faster — thousands of records now sync in seconds rather than minutes. Current stable is v18.23.0 (September 2026). It's a project that clearly cares about the same daily friction you do.

Should you switch? If your history is 50 lines deep or you only ever touch one machine, the payoff is small and the extra moving part isn't worth it. But if you live in the terminal across several machines, or you've ever lost a command you know you used to know, Atuin is a genuine quality-of-life upgrade — the kind that quietly removes a thing you didn't realize was draining minutes from your week until it's gone.

Install it from a package manager or a prebuilt binary, run atuin init bash (or zsh/fish accordingly) in your shell config, and give Ctrl+R a try for a day. Admit it: a search that actually works is the real magic.

← More Tools