Atuin
✨ Making your shell magical
Install / Use
/learn @atuinsh/AtuinREADME
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.
<p align="center"> <img src="demo.gif" alt="animated" width="80%" /> </p> <p align="center"> <em>exit code, duration, time and command shown</em> </p>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
- rebind
ctrl-randup(configurable) to a full screen history search UI - store shell history in a sqlite database
- back up and sync encrypted shell history
- the same history across terminals, across sessions, and across machines
- log exit code, cwd, hostname, session, command duration, etc
- calculate statistics such as "most used command"
- old history file is not replaced
- quick-jump to previous items with <kbd>Alt-<num></kbd>
- switch filter modes via ctrl-r; search history just from the current session, directory, or globally
- enter to execute a command, tab to edit
Documentation
Supported Shells
- zsh
- bash
- fish
- nushell
- xonsh
- powershell (tier 2 support)
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 more in 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-preexecfor necessary hooks, butbash-preexechas limitations. For details, please see the Bash section of the shell plugin documentation.
Security
If you find any security issues, we'd appreciate it if you could alert ellie@atuin.sh
Contributors
<a href="https://github.com/atuinsh/atuin/graphs/contributors"> <img src="https://contrib.rocks/image?repo=atuinsh/atuin&max=300" /> </a>Made with contrib.rocks.
