LinuxCommandLibrary

atuin

Sync and search shell command history

TLDR

Install atuin into your shell

$ eval "$(atuin init [bash|zsh|fish])"
copy

Import history from the shell default history file
$ atuin import auto
copy

Search shell history for a specific command
$ atuin search [command]
copy

Register an account on the default sync server using the specified [u]sername, [e]mail and [p]assword
$ atuin register -u [username] -e [email] -p [password]
copy

Login to the default sync server
$ atuin login -u [username] -p [password]
copy

Sync history with the sync server
$ atuin sync
copy

SYNOPSIS

atuin [command] [options]

PARAMETERS

search [terms...]
    Performs an interactive, fuzzy search through your history. This is often invoked via a Ctrl+R keybinding after shell integration.

sync
    Synchronizes your local history with the configured Atuin server, enabling history sharing across devices.

init <shell>
    Outputs the necessary shell integration script for your specific shell (e.g., bash, zsh, fish, nu). This script typically sets up keybindings like Ctrl+R.

import [file]
    Imports history from a specified file, useful for migrating existing shell history into Atuin.

export [file]
    Exports your Atuin history to a specified file.

register
    Registers a new user account with the Atuin server for history synchronization.

login
    Logs into an existing Atuin server account to enable history synchronization.

status
    Displays the current synchronization status and other Atuin-related information.

--help
    Shows help information for the atuin command or a specific subcommand.

--version
    Displays the installed Atuin version.

DESCRIPTION

atuin is a modern, cross-shell command history manager designed to significantly improve productivity. It replaces the default shell history with a more powerful and user-friendly experience, offering features like a full-text fuzzy search for past commands, synchronization of history across multiple machines (with optional self-hosting), and end-to-end encryption for privacy. By transcending the limitations of traditional shell history, atuin allows users to quickly find, filter, and reuse previously executed commands, making the command line workflow more efficient and intuitive.

CAVEATS

Requires shell integration by sourcing the init script in your shell's configuration file. Synchronization relies on a server, either the default public server or a self-hosted instance. While history is end-to-end encrypted, users should be aware of the trust model for the chosen server.

SHELL INTEGRATION

To use atuin effectively, you must integrate it with your shell. This typically involves adding eval "$(atuin init <shell_name>)" to your shell's configuration file (e.g., .bashrc, .zshrc, config.fish). This setup usually replaces the default Ctrl+R history search shortcut, allowing atuin to intercept and enhance history search.

CONFIGURATION

atuin's behavior can be extensively customized via a configuration file, typically located at ~/.config/atuin/config.toml. This file allows you to set the sync server URL, modify keybindings, customize the interactive search UI, and fine-tune other operational parameters to fit your workflow.

HISTORY

atuin was developed by Ellie Huxtable and is written in Rust. It emerged around 2021-2022 as a modern solution to the long-standing limitations of traditional shell history, quickly gaining traction for its robust search, synchronization, and encryption features. It aims to provide a more functional and user-friendly alternative to built-in shell history commands.

SEE ALSO

history(1), fzf(1), hstr

Copied to clipboard