Esta página se muestra en inglés. Una traducción al español está en curso.
ConfigsApr 11, 2026·2 min de lectura

Atuin — Magical Shell History with Sync and Search

Atuin replaces your existing shell history with a SQLite database, recording additional context (cwd, exit code, duration, hostname). Sync history across machines end-to-end encrypted. Interactive fuzzy search with rich filtering.

Introducción

Atuin replaces your existing shell history with a SQLite database, records additional context (cwd, exit code, duration, hostname, session), and adds interactive fuzzy search. It can optionally sync history end-to-end encrypted across machines via the official server or your self-hosted instance.

What Atuin Does

  • Rich history — cwd, exit code, duration, session, hostname
  • Search UI — Ctrl+R opens fuzzy picker with filters
  • End-to-end encrypted sync — across machines
  • Stats — top commands, avg duration, failure rate
  • Filter by — directory, session, exit code
  • Replaces Ctrl+R — native shell history integration
  • Import — bash, zsh, fish, nushell, resh

Architecture

Local SQLite database at ~/.local/share/atuin/history.db. Shell hook captures each command pre/post execution. Optional sync server stores encrypted blobs (client has the key, server cannot read plaintext).

Self-Hosting

Optional sync server is open source:

docker run -d -p 8888:8888 -v atuin-data:/config ghcr.io/atuinsh/atuin server start
# Or via systemd: atuin server start

Client config points to your server with sync_address in ~/.config/atuin/config.toml.

Key Features

  • Full context per command
  • E2E encrypted sync
  • Fuzzy interactive picker
  • Directory-scoped history
  • Session filtering
  • Import from other history tools
  • Stats and insights
  • Self-hostable server

Comparison

Tool Storage Sync Context
Atuin SQLite E2E encrypted Full
McFly SQLite No Limited
HSTR Native No None
fzf history Flat file No None
shell history Flat file No None

FAQ

Q: What about privacy? A: Atuin stores data locally by default. When sync is enabled, data is encrypted with a client key before upload, so the server never sees plaintext. Completely self-sovereign.

Q: Does it affect shell startup speed? A: The Rust implementation is fast, and hooks only fire on command execution — startup impact is imperceptible.

Q: Can I exclude certain commands? A: Yes. Configure the history_filter regex array (for example, commands containing passwords) to avoid recording them.

Sources & Credits

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados