explaingit

atuinsh/atuin

📈 Trending29,772RustAudience · developerComplexity · 2/5ActiveLicenseSetup · moderate

TLDR

Replace your terminal's command history with a searchable database that syncs across machines and remembers when, where, and how each command ran.

Mindmap

mindmap
  root((Atuin))
    What it does
      Searchable command database
      Syncs across machines
      Records exit codes
      Tracks timing and location
    Key features
      Full-screen search interface
      End-to-end encrypted sync
      SQLite storage
      Shell-agnostic
    Use cases
      Find commands by context
      Recover lost workflows
      Share history across devices
    Tech stack
      Rust
      SQLite
      Encryption

Things people build with this

USE CASE 1

Search your command history by exit code, duration, directory, or machine to quickly find and re-run past commands.

USE CASE 2

Sync your command history across multiple computers so you can access commands you ran on your laptop from your desktop.

USE CASE 3

Recover workflows after a reinstall or machine reset by keeping all command history in a persistent database.

USE CASE 4

Analyze your command patterns and timing to understand your development workflow and productivity.

Tech stack

RustSQLiteBashZshFishNushell

Getting it running

Difficulty · moderate Time to first run · 30min

Requires building Rust binary and shell integration setup for your specific shell.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice and license text.

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 set it up with my shell (bash/zsh/fish)?
Prompt 2
Show me how to search my command history by exit code or directory using Atuin's search interface.
Prompt 3
How do I set up Atuin's sync server to share my command history across my laptop and desktop machines?
Prompt 4
Can I export my Atuin command history to a file or integrate it with other tools?
Prompt 5
What are the privacy implications of using Atuin's hosted sync service versus self-hosting?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.