--- publish: true permalink: /apps/atuin title: atuin created: 2026-01-30T08:29:14.283-07:00 modified: 2026-02-05T12:16:17.109-07:00 tags: - shell - history - sync cssclasses: "" --- Atuin replaces your shell history with a SQLite database, providing better search, sync across machines, and detailed statistics. It's magical for finding that command you ran three weeks ago. ## Installation **Quick install (recommended):** ```bash curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh ``` **Arch Linux:** ```bash sudo pacman -S atuin ``` ## Shell Integration Add to your shell config: **Bash** (`~/.bashrc`): ```bash eval "$(atuin init bash)" ``` **Zsh** (`~/.zshrc`): ```bash eval "$(atuin init zsh)" ``` **Fish** (`~/.config/fish/config.fish`): ```fish atuin init fish | source ``` ## Usage ### Interactive search Press `Ctrl+r` (or `Up` with config) to open the interactive search: - Type to filter - `Enter` to execute - `Tab` to edit before running - `Ctrl+r` to cycle through filter modes ### Filter modes | Mode | Description | |------|-------------| | Global | All history across machines | | Host | Current machine only | | Session | Current shell session | | Directory | Commands run in this directory | ### Commands ```bash # Search from CLI atuin search "docker" # Show stats atuin stats # Manual sync atuin sync ``` ## Sync Setup (Optional) Register for free sync: ```bash atuin register -u -e atuin login -u atuin sync ``` Or self-host the sync server. ## Configuration `~/.config/atuin/config.toml`: ```toml [settings] # Use up arrow for atuin instead of ctrl+r keymap_mode = "vim-normal" # Search mode: prefix, fulltext, fuzzy search_mode = "fuzzy" # Filter by default filter_mode = "host" # Show preview of full command show_preview = true # Sync settings auto_sync = true sync_frequency = "5m" ``` ## Tips - Atuin stores history in `~/.local/share/atuin/history.db` - Use `atuin history list` to export/inspect - Prefix sensitive commands with a space to exclude from history