Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

atuin

Stow package for ~/.config/atuin/config.toml. Atuin is a SQLite-backed shell history with full-text search, per-directory context, and optional E2E-encrypted sync.

Table of contents

Layout

FileStows to
atuin/.config/atuin/config.toml~/.config/atuin/config.toml

Active settings

enter_accept = true       # Enter runs the selected line immediately
search_mode  = "fuzzy"    # fuzzy match (explicit; matches modern default)
filter_mode  = "global"   # Ctrl+R searches across all sessions/hosts
workspaces   = true       # treat git repos as a scope for filter_mode = "workspace"
style        = "compact"  # denser TUI layout

[sync]
records = true            # newer record-based sync protocol

The rest of the file is atuin’s commented default template, kept around as a cheat-sheet of tunable options.

enter_accept = true gotcha: the default behavior is Enter inserts the line for editing, Tab runs it. This config flips them so Enter runs the selection immediately — faster but easier to misfire on a dangerous command. Flip back if that bites you.

Why the file is so long

When atuin first generates config.toml it writes the entire schema with every option commented out. We keep the full file rather than trimming to the two active lines so the comments stay around as a cheat-sheet for what’s tunable.

Regenerating

If you change settings via the atuin TUI (some are configurable there), atuin rewrites this file. Diff it against the tracked version:

git -C ~/dotfiles diff atuin/.config/atuin/config.toml
git -C ~/dotfiles commit -am "Update atuin config"

If atuin’s config schema gains new fields in a future release, you may see a flood of diff noise from the new commented entries — review and commit if you want the updated template.

Fresh-machine setup

brew install atuin          # in the Brewfile
stow atuin
atuin import auto           # one-time: backfill existing zsh history into atuin's DB

Run atuin register if you want sync across machines; otherwise everything stays local.

zsh/.zshrc initializes atuin via eval "$(atuin init zsh)".