✨ Making your shell magical
magical shell history
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 - rebind `ctrl-r` and `up` (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 Alt-\ - 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 - [Quickstart](#quickstart) - [Install](https://docs.atuin.sh/latest/guide/installation/) - [Setting up sync](https://docs.atuin.sh/latest/guide/sync/) - [Import history](https://docs.atuin.sh/latest/guide/import/) - [Basic usage](https://docs.atuin.sh/latest/guide/basic-usage/) ## Supported platforms Atuin supports zsh, bash, fish, nushell, xonsh, and PowerShell. See [Supported platforms](https://docs.atuin.sh/latest/support/) for the full matrix and what each tier means. ## Community ### Forum Atuin has a community forum, please ask here for help and support: ### IRC We're also available via #atuin on libera.chat ### Discord Atuin also has a community Discord, available [here](https://discord.gg/jR3tfchVvW) # 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](https://docs.atuin.sh) for an offline setup, self-hosted server, and more. ``` curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh atuin register -u -e 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](https://docs.atuin.sh/latest/guide/installation/#installing-the-shell-plugin) > section of the shell plugin documentation. # Related projects - [Catpuccin for Atuin](https://github.com/catppuccin/atuin) - [eshell-atuin](https://github.com/SqrtMinusOne/eshell-atuin) - [mob (tiny creatures in your terminal)](https://github.com/bboynton97/mob) Please open a PR for any others! # Contributors Made with [contrib.rocks](https://contrib.rocks).