Atuin
Replaces ~/.zsh_history with a SQLite database you can actually search.
What it does
Atuin records each command with its exit status, duration, working directory, hostname and session, into SQLite. Ctrl-R becomes a full-screen fuzzy search over that, filterable by directory or host.
It also offers end-to-end encrypted sync across machines, either through the hosted server or one you run yourself — for a homelab, self-hosting the sync server is the point.
atuin import auto # pull in existing shell history
atuin stats # what you actually run all day
atuin search --cwd . # commands run in this directoryNotes
The local database is the source of truth and works with no account at all. Sync is opt-in; atuin server start runs your own.
Alternative to
| Alternative | Type | Trade-off |
|---|---|---|
| McFly | Open source | The other well-known history replacement, with a neural ranking model |
fzf’s Ctrl-R widget | Open source | Fuzzy history with nothing extra to run |
| zsh-histdb | Open source | SQLite history without the sync service |
HISTSIZE plus setopt HIST_IGNORE_DUPS | Built in | Better than the defaults |
Install
brew install atuin