Skip to content

Installation

Let’s get started! First up, you will want to install Atuin. We have an install script which handles most of the commonly used platforms and package managers. It will do its best to use your system package manager wherever possible.

Terminal window
bash <(curl --proto '=https' --tlsv1.2 -sSf https://setup.atuin.sh)
Setup sync Move on to the next step, or read on for a manual install

Upgrading

In order to upgrade Atuin, just run the install script again! It won’t add to your shell config more than once, so is safe to re-run.

Otherwise, defer to the below.


Manual install

If you don’t wish to use the installer, the manual steps are as follows. Please note that it’s not enough to install the binary, there is also a shell plugin that requires settings up.

cargo

It’s best to use rustup to get setup with a Rust toolchain, then you can run:

cargo install atuin

And then follow the shell setup

Homebrew

brew install atuin

And then follow the shell setup

MacPorts

Atuin is also available in MacPorts

sudo port install atuin

And then follow the shell setup

Nix

This repository is a flake, and can be installed using nix profile:

nix profile install "github:atuinsh/atuin"

Atuin is also available in nixpkgs:

nix-env -f '<nixpkgs>' -iA atuin

And then follow the shell setup

Pacman

Atuin is available in the Arch Linux extra repository:

pacman -S atuin

And then follow the shell setup

Xbps

Atuin is available in the Void Linux repository:

sudo xbps-install atuin

And then follow the shell setup

Termux

Atuin is available in the Termux package repository:

pkg install atuin

And then follow the shell setup

From source

Note: Atuin builds on the latest stable version of Rust, and we make no promises regarding older versions. We recommend using rustup.

git clone https://github.com/atuinsh/atuin.git
cd atuin/atuin
cargo install --path .

Shell plugin

Once the binary is installed, the shell plugin requires installing. If you use the install script, this should all be done for you! After installing, remember to restart your shell.

zsh

echo 'eval "$(atuin init zsh)"' >> ~/.zshrc
Zinit
Terminal window
zinit load atuinsh/atuin
Antigen
Terminal window
antigen bundle atuinsh/atuin@main

bash

ble.sh

Atuin works best in bash when using ble.sh.

With ble.sh installed, just add atuin to your .bashrc

Terminal window
echo 'eval "$(atuin init bash)"' >> ~/.bashrc
bash-preexec

Bash-preexec can also be used, but you may experience some minor problems with the recorded duration and exit status of some commands.

To use bash-preexec, download and initialize it

Terminal window
curl https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh -o ~/.bash-preexec.sh
echo '[[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh' >> ~/.bashrc

Then setup Atuin

Terminal window
echo 'eval "$(atuin init bash)"' >> ~/.bashrc

PLEASE NOTE

bash-preexec currently has an issue where it will stop honoring ignorespace. While Atuin will ignore commands prefixed with whitespace, they may still end up in your bash history. Please check your configuration! All other shells do not have this issue.

fish

Add

atuin init fish | source

to your is-interactive block in your ~/.config/fish/config.fish file

Nushell

Run in Nushell:

mkdir ~/.local/share/atuin/
atuin init nu | save ~/.local/share/atuin/init.nu

Add to config.nu:

source ~/.local/share/atuin/init.nu

xonsh

Add

execx($(atuin init xonsh))

to the end of your ~/.xonshrc

Uninstall

If you’d like to uninstall Atuin, please check out this page.