Repolode
atuinsh

atuinsh/atuin

A shell history replacement that stores commands in SQLite with context like exit code and duration, with optional end-to-end encrypted sync across machines.

Stars
32,226
Forks
1,028
Open issues
416
Last commit
yesterday

What is it?

Atuin replaces the default shell history with a SQLite database and records extra context for each command, including exit code, working directory, hostname, session, and duration. It rebinds keys such as ctrl-r and up to a full-screen search interface, where results can be filtered to the current session, directory, or globally.

History can optionally be synced between machines through an Atuin server. Sync is encrypted end to end, so the server only handles encrypted data. Users can run their own server or skip sync entirely and keep history local.

The tool supports zsh, bash, fish, nushell, xonsh, and PowerShell. It also includes a command-line search mode, for example filtering successful runs of a command by time range, and can compute statistics such as most-used commands.

Key features

  • 01Full-screen history search bound to ctrl-r and up by default
  • 02Stores history in SQLite and records exit code, cwd, hostname, and duration
  • 03End-to-end encrypted sync across machines via a self-hosted or hosted server
  • 04Filter searches by session, directory, or globally
  • 05Command-line search with filters such as exit code and time range
  • 06Imports existing shell history without replacing the original file

Use cases

  • Finding a previously run command by its exit status or time of day
  • Keeping shell history consistent across a laptop, desktop, and servers
  • Searching history within the current project directory
  • Syncing history across machines while keeping data private through encryption

Quick start

  1. 1

    Run the official install script from the README

  2. 2

    Register an account on the Atuin Cloud sync server

    atuin register -u <USERNAME> -e <EMAIL>
  3. 3

    Import your existing shell history

    atuin import auto
  4. 4

    Sync your history, then restart your shell

    atuin sync

Things to know

  • The quickstart signs you up for the Atuin Cloud sync server, though self-hosting and offline setup are also documented.
  • Bash support relies on bash-preexec, which has known limitations.

In collections

Topics

FAQ

What is atuin?
A shell history replacement that stores commands in SQLite with context like exit code and duration, with optional end-to-end encrypted sync across machines. Atuin replaces the default shell history with a SQLite database and records extra context for each command, including exit code, working directory, hostname, session, and duration. It rebinds keys such as ctrl-r and up to a full-screen search interface, where results can be filtered to the current session, directory, or globally.
Is atuin free to use? What license does it have?
atuin is open source under the MIT license. Check the license terms before using it in commercial products.
Is atuin still maintained?
Actively maintained. The last commit to atuin was on Nov 6, 2026.
What can I use atuin for?
Finding a previously run command by its exit status or time of day Keeping shell history consistent across a laptop, desktop, and servers Searching history within the current project directory Syncing history across machines while keeping data private through encryption
How do I install atuin?
Run the official install script from the README Register an account on the Atuin Cloud sync server: atuin register -u <USERNAME> -e <EMAIL> Import your existing shell history: atuin import auto Sync your history, then restart your shell: atuin sync
Where can I get atuin?
The source code and installation instructions are on GitHub: https://github.com/atuinsh/atuin

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects