Atuin : Revolutionizing Shell History With Enhanced Search And Secure Sync

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.

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-<num>
  • 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
  • Install
  • Setting up sync
  • Import history
  • Basic usage

Supported Shells

  • zsh
  • bash
  • fish
  • nushell
  • xonsh

For more information click here.

Varshini

Varshini is a Cyber Security expert in Threat Analysis, Vulnerability Assessment, and Research. Passionate about staying ahead of emerging Threats and Technologies.

Recent Posts

ss Command in Linux: Display Socket Statistics and Connections

The ss command in Linux lists open sockets and active network connections. It replaced the deprecated netstat command and…

20 hours ago

ftp Command in Linux: Connect to Servers and Transfer Files

The ftp command in Linux connects to a remote FTP server and transfers files. FTP transmits everything…

20 hours ago

lsmod Command in Linux: List and Inspect Kernel Modules

The lsmod command in Linux lists all currently loaded kernel modules. It reads /proc/modules — a virtual file maintained…

20 hours ago

rename Command in Linux: Batch Rename Files with Perl Regex

The rename command in Linux renames multiple files at once using Perl regular expressions. Unlike mv, which handles…

21 hours ago

pgrep Command in Linux: Find and Filter Running Processes

The pgrep command in Linux finds the PIDs of running processes based on a name or other…

2 days ago

unlink Command in Linux: Remove a Single File or Symlink

The unlink command in Linux removes a single file by deleting its directory entry. It is a…

2 days ago