Skip to main content

Advanced Install

Generally, we recommend using our install script. It ensures you use the most up-to-date Atuin, and that your shell plugin is correctly setup. It will prefer the system package manager wherever necessary!

However, I totally understand if you'd rather do things yourself and not run a script from the internet. If so, follow on!

Install Atuin

Atuin is in a number of package repositories! Please choose whichever works best for you.

With 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:ellie/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 community repository:

pacman -S 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/ellie/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

zinit load ellie/atuin

Antigen

antigen bundle ellie/atuin@main

bash

We need to setup some hooks, so first install bash-preexec:

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

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

Fig

Install atuin shell plugin in zsh, bash, or fish with Fig in one click.

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