Selbst gehosteter Dienst
atuinsh/atuin avatar
atuinsh/atuin

Atuin: Shell-Historie in SQLite mit Exit-Code, Verzeichnis und Laufzeit

Machen Sie Ihre Muschel magisch. Darüber hinaus bietet es eine optionale und vollständig verschlüsselte Synchronisierung Ihres Verlaufs zwischen Computern über einen Atuin-Server.

31.625 Sterne961 ForksRustMIT

Auf einen Blick

Was ist das?
Atuin ersetzt die Shell-History durch eine SQLite-Datenbank, schreibt Kontext mit und kann sie verschlüsselt zwischen Rechnern abgleichen. Das README erklärt Bedienung und Suche gut und schweigt zur Schlüsselverwaltung.
Für wen ist es gedacht?
Passend ist Atuin für Menschen, die an mehreren Rechnern oder in vielen Sitzungen arbeiten und ihre Historie nach Exit-Code, Verzeichnis und Zeit durchsuchen wollen. Weniger passend ist es für Umgebungen, in denen Shell-Historie samt Arbeitsverzeichnissen nicht in einer Datenbank liegen darf, und für Bash-Setups, die bash-preexec scheuen.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 1 Tag.
In welcher Sprache ist es geschrieben?
Hauptsächlich Rust, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 14. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

SQLite statt Shell-History: was Atuin beim Ausführen mitschreibt

Atuin von atuinsh ersetzt die Shell-Historie durch eine SQLite-Datenbank und schreibt dabei mehr mit, als eine Shell von sich aus aufzeichnet. Laut README gehören dazu der Exit-Code, das Arbeitsverzeichnis, der Hostname, die Sitzung und die Laufzeit des Befehls. Das Projekt ist in Rust geschrieben, steht unter MIT und wird über docs.atuin.sh dokumentiert.

Der Nutzen dieser Zusatzspalten zeigt sich beim Suchen und beim Aufräumen. Aus der Frage, welcher Befehl in diesem Verzeichnis zuletzt funktioniert hat, wird eine Abfrage statt eines Blicks durch Scrollback. Aus der Frage, warum ein Skript gestern hängen blieb, wird ein Blick auf die Laufzeit. Die README nennt auch einfache Statistiken wie den meistbenutzten Befehl. Wer eine Historie in eine Datenbank legt, bekommt Auswertungen, die mit einer Textdatei mühsam wären.

Für den Umstieg ist eine Angabe beruhigend: Die alte History-Datei wird laut README nicht ersetzt. Der Rückweg bleibt damit offen, ohne dass man vorher ein Backup anlegen muss.

atuin search mit --exit 0 und --after: Filtern nach Exit-Code und Zeit

Die Bedienung sitzt dort, wo Shell-Nutzer ohnehin greifen. Atuin belegt ctrl-r und die Pfeiltaste nach oben neu, beides konfigurierbar, und zeigt eine Vollbild-Suche. Mit der Eingabetaste wird der gefundene Befehl ausgeführt, mit der Tabulatortaste zur Bearbeitung übernommen. Über ctrl-r wechselt man den Filtermodus, also ob in der aktuellen Sitzung, im aktuellen Verzeichnis oder global gesucht wird. Mit Alt und einer Zahl springt man direkt zu einem Treffer.

Die eigentliche Stärke liegt in der Kommandozeile und nicht im Vollbild. Das README zeigt dafür ein Beispiel, in dem beide Ebenen zusammenkommen: atuin search mit --exit 0 und --after sucht erfolgreiche make-Aufrufe, die nach einem bestimmten Zeitpunkt protokolliert wurden. Solche Filter sind der Grund, warum sich die Zusatzspalten lohnen. Ohne Exit-Code und Zeitstempel wäre diese Frage mit einer Textdatei nicht zu beantworten, und genau daran scheitert die klassische Suche in der Historie.

setup.atuin.sh, atuin register und atuin import auto

Der Schnelleinstieg besteht aus einem Installer und drei Befehlen. Geholt wird das Programm über curl mit der Adresse https://setup.atuin.sh. Danach folgen atuin register für das Konto, atuin import auto für den vorhandenen Bestand und atuin sync für den Abgleich. Zum Schluss wird die Shell neu gestartet. Die README weist ausdrücklich darauf hin, dass dieser Weg ein Konto beim gehosteten Synchronisationsserver von Atuin anlegt.

Wer das nicht möchte, findet in den Abschnitten zu Installation und Synchronisation bei docs.atuin.sh einen Aufbau ohne Netz sowie einen eigenen Server. Ein Detail am Ablauf fällt auf: register steht vor import, und das README begründet diese Reihenfolge nicht. Sie ergibt sich nur aus dem Beispiel, und wer den Bestand zuerst einliest, sollte danach prüfen, ob der Abgleich wirklich alles erfasst hat.

Für den Import selbst nennt die README einen eigenen Dokumentationsabschnitt. Welche Shell-Historien atuin import auto erkennt und wie doppelte Einträge behandelt werden, steht im README nicht.

Eigener Server, gehosteter Server oder gar kein Abgleich

Die Synchronisation ist optional und nach Angabe des README vollständig verschlüsselt. Der Autor schreibt, er könne die Daten nicht lesen, selbst wenn er wollte. Diese Aussage ist eine Selbstauskunft des Projekts. Im README finden sich keine Angaben dazu, wie Schlüssel erzeugt, gesichert oder bei einem Gerätewechsel übertragen werden. Wer Shell-Historie zwischen Rechnern abgleicht, legt Befehle samt Arbeitsverzeichnissen in eine entfernte Datenbank und sollte die Schlüsselfrage vorher klären und nicht nach dem ersten Geräteverlust.

Die Alternativen sind im README klar benannt: den Server des Autors nutzen, einen eigenen betreiben oder auf den Abgleich verzichten. Ein eigener Server verschiebt den Betriebsaufwand zu einem selbst, behält aber die Hoheit über Konten und Metadaten. Ohne Abgleich bleibt Atuin ein lokales Werkzeug mit Datenbanksuche, und für diesen Zweck reicht es völlig aus.

bash-preexec als Bruchstelle und die Stufen der Shell-Matrix

Unterstützt werden zsh, bash, fish, nushell, xonsh und PowerShell, mit einer Matrix, die laut README Stufen unterscheidet. Welche Shell welche Stufe erreicht, steht nicht im README selbst, sondern unter docs.atuin.sh/latest/support/. Diese Staffelung ist ein Hinweis darauf, dass nicht jede Shell denselben Funktionsumfang bekommt, und sie ist beim Einsatz in gemischten Umgebungen der erste Punkt, den man nachsehen sollte.

Für Bash gibt es einen eigenen Hinweis: Das Setup richtet bash-preexec ein, weil die Shell die nötigen Haken sonst nicht liefert, und bash-preexec hat dokumentierte Einschränkungen. Genau diese Art Abhängigkeit berührt im Alltag die Zuverlässigkeit, denn sie liegt außerhalb des Projekts. Wer in einem Team mit unterschiedlichen Shells arbeitet, wird Unterschiede bemerken, die nicht am Werkzeug selbst liegen.

Konflikt mit Tastenbelegungen und was die MIT-Lizenz hier bedeutet

Zwei Punkte begrenzen den Einsatz nachvollziehbar. Erstens ist die Vollbildsuche ein Eingriff in Tastenbelegungen, die viele Nutzer anders konfiguriert haben. ctrl-r und die Pfeiltaste lassen sich umkonfigurieren, aber ein Konflikt mit vorhandenen Bindings fällt erst beim Benutzen auf, und in einer Umgebung mit ausgefeilter Shell-Konfiguration ist das ein realer Stolperstein. Zweitens sammelt die Datenbank mehr Kontext als eine History-Datei, namentlich Arbeitsverzeichnisse und Hostnamen, was bei einem Support-Fall oder beim Weitergeben eines Datenbankabzugs zählt. Die README geht auf beide Punkte nicht ein.

Die MIT-Lizenz erlaubt Nutzung, Veränderung und Weiterverteilung und schließt jede Gewährleistung aus; für den Einsatz in einem Unternehmen ist das die unkomplizierteste Variante. Bleibt die Pflege: Ende August 2026 lagen die Ausgaben v18.20.1 und v18.20.0 zwei Tage auseinander, davor erschien v18.20.0-beta.3 am 7. August. Diese Folge zeigt ein Projekt, das kurzzyklisch veröffentlicht, und bei einem Werkzeug, das bei jedem Tastendruck mitläuft, heißt das auch, dass Updates die tägliche Routine berühren.

Redaktionelles Fazit

Passend ist Atuin für Menschen, die an mehreren Rechnern oder in vielen Sitzungen arbeiten und ihre Historie nach Exit-Code, Verzeichnis und Zeit durchsuchen wollen. Weniger passend ist es für Umgebungen, in denen Shell-Historie samt Arbeitsverzeichnissen nicht in einer Datenbank liegen darf, und für Bash-Setups, die bash-preexec scheuen. Vor dem Umstieg prüfen: welchen Stellenwert die eigene Shell in der Matrix unter docs.atuin.sh/latest/support/ hat und ob der Abgleich über den Server von atuinsh oder einen eigenen laufen soll.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen