explaingit

atuinsh/atuin

Analysis updated 2026-06-20

29,612RustAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

Atuin replaces your terminal's built-in command history with a searchable database that records when and where each command ran and whether it succeeded, with optional encrypted sync across multiple computers.

Mindmap

mindmap
  root((repo))
    What It Does
      Replace shell history
      Rich search
      Cross-machine sync
    Recorded Context
      Exit code
      Duration
      Directory
      Machine
    Key Features
      Full-screen search
      Encrypted sync
      SQLite storage
    Tech Stack
      Rust
      SQLite
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Search your entire shell command history with filters for exit status, directory, date, and machine using a full-screen interface

USE CASE 2

Sync your terminal history securely across a work laptop and home desktop so you can find commands run on either machine

USE CASE 3

Find only commands that succeeded in a specific project folder to reconstruct a workflow you ran last week

USE CASE 4

Replace Ctrl-R shell search with a richer interactive interface that shows command context and outcome

What is it built with?

RustSQLitezshbashfish

How does it compare?

atuinsh/atuinemilk/eguivercel/turborepo
Stars29,61228,97830,320
LanguageRustRustRust
Setup difficultyeasymoderatemoderate
Complexity2/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min
Free to use for any purpose including commercial use under the MIT license.

In plain English

Atuin replaces your terminal's built-in command history (the list of commands you have previously typed) with a searchable database. In a typical shell, the text-based command-line interface, pressing the up arrow or Ctrl-R lets you scroll through or search recent commands, but the built-in history is limited: it loses context, doesn't sync across machines, and provides no additional information about when or where a command ran. Atuin stores every command in a local SQLite database (a file-based database format) and records extra details alongside it: the exit code (whether the command succeeded or failed), how long it took, the directory you were in, and which machine and session it came from. It then replaces the Ctrl-R shortcut with a full-screen interactive search interface where you can filter by all of these attributes, for example, finding only successful commands run yesterday in a specific folder. Optionally, Atuin can sync your history across multiple computers using an encrypted sync server, either one you host yourself or the hosted service. Because sync is end-to-end encrypted, the server cannot read your command history. It works with zsh, bash, fish, nushell, and other shells. Written in Rust, it is designed for speed. Someone would use Atuin if they frequently search their command history and want smarter search, persistent history across reinstalls or multiple machines, and richer context about past commands.

Copy-paste prompts

Prompt 1
How do I install Atuin and configure it to sync my zsh history across two machines using the hosted sync service?
Prompt 2
Show me how to use Atuin's interactive search to find only successful commands that I ran inside the ~/projects/myapp directory.
Prompt 3
How do I self-host the Atuin sync server on my own VPS with Docker so my history never leaves my infrastructure?
Prompt 4
Write a shell script that queries Atuin's SQLite database directly to export all commands from the last 7 days to a CSV file with timestamps and exit codes.

Frequently asked questions

What is atuin?

Atuin replaces your terminal's built-in command history with a searchable database that records when and where each command ran and whether it succeeded, with optional encrypted sync across multiple computers.

What language is atuin written in?

Mainly Rust. The stack also includes Rust, SQLite, zsh.

What license does atuin use?

Free to use for any purpose including commercial use under the MIT license.

How hard is atuin to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is atuin for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub atuinsh on gitmyhub

Verify against the repo before relying on details.