Atuin : l'historique du shell en SQLite, avec recherche plein écran et synchronisation chiffrée
Rendre votre coquille magique. De plus, il fournit une synchronisation facultative et _entièrement cryptée_ de votre historique entre machines, via un serveur Atuin.
En bref
- De quoi s’agit-il ?
- Atuin remplace l'historique du shell par une base SQLite qui enregistre le contexte de chaque commande, ajoute une interface de recherche plein écran et propose une synchronisation chiffrée de bout en bout entre machines, sur le service hébergé ou sur un serveur auto-hébergé. Le projet Rust, sous licence MIT, publie à un rythme soutenu.
- À qui s’adresse-t-il ?
- Atuin vise les utilisateurs de shell qui enchaînent les machines et les sessions et qui veulent retrouver une commande avec son contexte, pas seulement son texte ; il ne s'imposera pas sur un serveur minimal où l'historique d'une seule session suffit.
- Puis-je l’utiliser commercialement ?
- Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 1 jour.
- En quel langage est-il écrit ?
- Principalement Rust, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
L'historique du shell, déplacé dans une base SQLite
Atuin assume le remplacement : là où zsh ou bash ajoute chaque ligne dans un fichier texte, l'outil enregistre les commandes dans une base SQLite et y attache le contexte que le fichier classique perd. Le README liste les champs capturés : code de sortie, répertoire courant, nom d'hôte, session, durée d'exécution. Ces métadonnées changent la nature de l'historique, qui cesse d'être une liste pour devenir un jeu de données interrogeable.
Un détail compte dès la lecture des fonctionnalités : l'ancien fichier d'historique n'est pas remplacé. Le basculement reste réversible, et votre passé de commandes demeure lisible par les outils habituels du shell. Atuin calcule aussi des statistiques directement depuis cette base, comme la commande la plus utilisée.
ctrl-r réapproprié : la recherche plein écran
Au quotidien, Atuin relie ctrl-r et la flèche du haut, tous deux configurables, à une interface de recherche plein écran qui affiche pour chaque entrée le code de sortie, la durée, l'heure et la commande. Le même ctrl-r bascule entre les modes de filtrage : restreindre la recherche à la session courante, au répertoire courant, ou l'élargir à tout l'historique global.
La navigation reste proche des réflexes du shell : Entrée exécute la commande, Tab l'ouvre en édition, et Alt-<num> replonge vers les entrées récentes. Rien n'oblige donc à abandonner les habitudes existantes ; l'interface se superpose au flux habituel plutôt que de l'imposer.
Requêter l'historique comme des données
L'exemple du README donne le ton : atuin search --exit 0 --after "yesterday 3pm" make retrouve toutes les commandes make réussies enregistrées après 15 heures la veille. Filtrer sur le code de sortie et l'horodatage transforme une corvée récurrente, retrouver la commande qui a fonctionné, en requête explicite. C'est l'usage qui distingue le plus Atuin d'un simple habillage de ctrl-r.
La contrepartie est réelle : vos échecs sont enregistrés avec le même soin que vos réussites. Un mot de passe passé en argument, un jeton dans une ligne de commande : tout atterrit dans la base, comme dans l'ancien fichier d'ailleurs. Le chiffrement de bout en bout couvre la synchronisation ; en local, la base reste sur votre disque avec vos droits d'accès habituels, et la documentation de synchronisation détaille ce périmètre.
Chiffré de bout en bout, et pas seulement hébergé
La synchronisation est optionnelle et décrite comme chiffrée de bout en bout : le mainteneur affirme ne pas pouvoir lire les données même s'il le voulait, puisque tout est chiffré côté client avant de quitter la machine. Trois voies existent, et le README les donne d'un bloc : le serveur Atuin hébergé par l'auteur, un serveur auto-hébergé, ou aucune synchronisation du tout.
Le choix n'est pas purement doctrinal. Synchroniser un historique, c'est dupliquer des années de commandes, y compris les maladroites, sur d'autres disques. Le modèle chiffré limite ce que voit l'opérateur du serveur, mais la décision de synchroniser ou non reste une décision de périmètre, et Atuin est le seul des trois chemins qui n'exige aucune confiance nouvelle : sans sync, rien ne sort de la machine.
Le quickstart : un script curl et quatre commandes
Le quickstart officiel enchaîne quatre commandes : curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh pour l'installation, atuin register -u <USERNAME> -e <EMAIL> pour créer un compte, atuin import auto pour absorber l'historique existant, puis atuin sync, et un redémarrage du shell. Le README précise que cette séquence inscrit par défaut sur le serveur de synchronisation Atuin Cloud, présenté comme chiffré de bout en bout.
Deux points d'attention pour cette mise en route. Le script d'installation livré via curl suppose que vous acceptez ce mode de distribution, et la documentation liste des méthodes alternatives sur sa page dédiée à l'installation. Ensuite, le chemin auto-hébergé et la configuration hors ligne existent mais vivent dans les docs, pas dans le quickstart : si votre intention est de ne rien envoyer sur un serveur tiers, lisez-les avant de coller les quatre commandes.
Plateformes, rythme de releases et communauté
Atuin supporte zsh, bash, fish, nushell, xonsh et PowerShell, avec une matrice de support documentée qui distingue des tiers, signe que la qualité d'intégration n'est pas identique partout. Pour bash, le quickstart prévient d'ailleurs que l'installation repose sur bash-preexec, qui a ses limites documentées. Écrit en Rust et distribué sous licence MIT, le projet publie vite : la v18.20.0 est sortie le 25 août 2026, la v18.20.1 deux jours plus tard, avec un passage par des bêtas taguées mi-août.
L'écosystème autour du projet est organisé : un forum sur forum.atuin.sh, le canal #atuin sur libera.chat, un Discord, et une page de projets connexes qui va du thème Catppuccin pour Atuin à eshell-atuin pour Emacs. Cette densité de canaux ne remplace pas une garantie de support, mais elle donne des lieux précis où chercher avant de classer un comportement en bug.
Conclusion éditoriale
Atuin vise les utilisateurs de shell qui enchaînent les machines et les sessions et qui veulent retrouver une commande avec son contexte, pas seulement son texte ; il ne s'imposera pas sur un serveur minimal où l'historique d'une seule session suffit. Avant d'adopter, vérifiez le tier de support de votre shell dans la matrice de docs.atuin.sh, testez atuin import auto sur votre historique réel, et si vous restez sur bash, lisez d'abord la section du plugin consacrée aux limites de bash-preexec ; c'est la qualité de cette intégration, variable selon le shell, qui décide de l'usage au quotidien.
Notes de la communauté