Skip to content

Atuin

Replaces ~/.zsh_history with a SQLite database you can actually search.

Homebrew formula

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 directory

Notes

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

AlternativeTypeTrade-off
McFlyOpen sourceThe other well-known history replacement, with a neural ranking model
fzf’s Ctrl-R widgetOpen sourceFuzzy history with nothing extra to run
zsh-histdbOpen sourceSQLite history without the sync service
HISTSIZE plus setopt HIST_IGNORE_DUPSBuilt inBetter than the defaults

Install

brew install atuin

Links

This post is licensed under CC BY 4.0 by the author.
Last updated on