atuin README

The project's README from github.com/atuinsh/atuin. As one markdown file: README.md.

Text changing depending on mode. Light: 'So light!' Dark: 'So dark!'

magical shell history


CodSpeed

Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands. Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin server.

animated

exit code, duration, time and command shown

As well as the search UI, it can do things like this:

# search for all successful `make` commands, recorded after 3pm yesterday
atuin search --exit 0 --after "yesterday 3pm" make

You may use either the server I host, or host your own! Or just don't use sync at all. As all history sync is encrypted, I couldn't access your data even if I wanted to. And I really don't want to.

Features

Documentation

Supported platforms

Atuin supports zsh, bash, fish, nushell, xonsh, and PowerShell. See Supported platforms for the full matrix and what each tier means.

Community

Forum

Atuin has a community forum, please ask here for help and support: https://forum.atuin.sh/

IRC

We're also available via #atuin on libera.chat

Discord

Atuin also has a community Discord, available here

Quickstart

This will sign you up for the Atuin Cloud sync server. Everything is end-to-end encrypted, so your secrets are safe!

Read the docs for an offline setup, self-hosted server, and more.

curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh

atuin register -u <USERNAME> -e <EMAIL>
atuin import auto
atuin sync

Then restart your shell!

[!NOTE]

For Bash users: The above sets up bash-preexec for necessary hooks, but bash-preexec has limitations. For details, please see the Bash section of the shell plugin documentation.

Related projects

Please open a PR for any others!

Contributors

Made with contrib.rocks.

atuin (atuinsh/atuin)

Searching Database…

32K ·GitHub
What is this?Atuin replaces your shell history with a SQLite database, records extra context for every command, and adds a full-screen interactive search UI — with optional fully encrypted sync of history between machines.
Is it a plugin inside my shell or a separate program?It's a standalone Rust CLI that hooks into your shell: it rebinds ctrl-r and up (configurable) to a full-screen history search UI, while your old history file is left untouched.
How do I get it running?Install the atuin binary (the official install docs cover each platform), then run the per-shell setup so ctrl-r and up trigger the Atuin search. The docs walk through Quickstart, Import history and Basic usage.
Which shells does it work with?zsh, bash, fish, nushell, xonsh, and PowerShell are supported, each with its own setup hooks — the docs have a full support matrix.
Does everything work the same in bash?Not quite: bash support goes through bash-preexec to provide the necessary hooks, and bash-preexec has known limitations — other shells hook in more directly.
Do I have to use sync at all?No — you can use the author's hosted server, host your own, or skip sync entirely; either way your history lives locally in SQLite.
Can the sync server read my history?No. All history sync is encrypted, so the server only ever holds ciphertext — the author states they couldn't access your data even if they wanted to.
What gets recorded with each command beyond the command itself?Exit code, working directory, hostname, session, duration and time are all logged, which also powers statistics such as 'most used command'.
What can I do with a result in the search UI?Press Enter to execute it or Tab to edit it first. Alt-backslash quick-jumps to previous items, and ctrl-r switches filter modes.
Can I search only the current session or directory instead of everything?Yes — ctrl-r switches filter modes, so you can scope the search to the current session, the current directory, or your global history.
Will switching to Atuin lose my existing history?No — the old history file is not replaced, and the docs include an import guide for bringing your past history into the SQLite database.
Which topics is it in?history, fish, zsh, sync, powershell, bash, search, tui, encryption, shell, sqlite, rust
Creator
atuinsh
Size
79.8 MB
Stars
32K
Age
6y
Commits · 90 Days