bailout : un mini agent de codage à installer puis supprimer

Published · AI Daily — AI-assisted deep research, methodology & disclosure

Le projet GitHub bailout se présente comme un harnais conçu pour être supprimé. Une commande curl installe un binaire natif d’environ 0,6 Mo, sans compte, clé API locale, Git, Node ni Python. Il aide à préparer une machine vierge ou à réparer un agent cassé, puis bailout uninstall le retire.

Ce qu'est bailout

bailout est un outil open source en ligne de commande publié sur GitHub (dépôt storozhenko98/bailout). Son README le décrit comme « le harnais conçu pour être supprimé ». L'idée est simple. Vous êtes devant une machine virtuelle vierge ou un Mac neuf, sans GitHub CLI, sans agent de codage configuré et sans clé d'API. Ou bien votre agent habituel est en panne et il vous faut un agent qui fonctionne pour le réparer. bailout vous donne, en une seule commande, un petit harnais indépendant. Vous l'utilisez pour amorcer la machine ou réparer votre installation, vous revenez à vos outils habituels, puis vous le supprimez.

L'installation tient en deux lignes : `curl -fsSL https://bailout.dev/install.sh | bash`, puis `bailout`. Selon le README, il ne faut ni compte, ni clé d'API locale, ni Git, ni Node, ni Python, ni agent existant. Les plateformes listées sont macOS sur Apple Silicon, Linux x64 et Linux ARM64. Vous apportez Bash, curl, un accès à Internet et les utilitaires de base habituels, dont tar et un outil SHA-256.

Les faits clés du README

Le README distingue trois situations. La première est la page blanche : vous démarrez une instance EC2, une VM GCP ou un Mac neuf, et vous demandez à bailout d'inspecter la machine, d'installer les outils manquants, de vous aider à vous connecter à GitHub, de cloner votre dépôt et de préparer Codex, Claude Code, Pi ou OpenCode. La deuxième est l'installation cassée : une configuration est mal formée, un runtime a été déplacé ou une mise à jour a tout dérangé. bailout examine alors ce qui a changé, sauvegarde la configuration, la répare et vérifie que votre outil principal fonctionne. La troisième est la sortie rapide. Le résultat utile, c'est votre environnement habituel qui refonctionne, donc bailout n'a ni démon, ni configuration de compte, ni stockage persistant des conversations, ni échafaudage de projet. La taille est un argument central. Le README indique que bailout est un seul binaire natif de 638,6 Ko sur Apple Silicon dans la version v0.7.3, et que chaque version reste sous 6 000 000 d'octets. Son tableau des fichiers de la v0.7.3 donne 638 592 octets pour macOS ARM64, 844 576 pour Linux x64 et 790 784 pour Linux ARM64. Les téléchargements en .tar.gz sont plus légers : 318 119, 417 262 et 397 031 octets. Les versions Linux sont liées statiquement avec musl. Le projet n'a que trois dépendances Rust directes : `serde_json`, `libc` et `rustyline`. Le curl du système gère TLS, et Bash fait tout ce que fait le modèle. Bash est le seul outil du modèle. Les commandes s'exécutent automatiquement avec les droits de votre compte, y compris modifier des fichiers, installer des paquets et accéder au réseau. Le README dit sans détour que ce n'est pas un bac à sable. L'agent reçoit pour consigne d'inspecter d'abord, de préserver une configuration qui marche, de sauvegarder la configuration avant réparation et de vérifier le résultat. En session, quelques commandes existent : `/shell` ouvre un Bash local, `/last` déplie la sortie de la dernière commande, `/new` démarre une nouvelle conversation, `/help` et `/exit` servent à l'aide et à la sortie. Chaque appel Bash lance un nouveau shell, donc l'état du shell ne persiste pas. Les commandes ordinaires expirent après deux minutes, les commandes interactives après dix, et les modèles peuvent en demander jusqu'à trente. La limite par défaut est de 50 étapes de modèle.

La connexion reste entre vos mains. bailout fournit sa propre inférence gratuite, mais les outils qu'il configure utilisent vos propres comptes et identifiants. Pour une connexion, un sudo ou une saisie de clé, l'outil Bash peut vous passer le vrai terminal avec `interactive: true`. L'entrée et la sortie de cette commande ne sont pas capturées pour le modèle : seul le code de sortie revient. Une fois terminé, `bailout uninstall` ne retire que le binaire bailout en cours d'exécution. Les outils installés, les dépôts clonés et les configurations réparées restent en place.

Comment fonctionne l'inférence gratuite

L'essentiel du README défend une affirmation : « gratuit signifie zéro ». Un service FastAPI hébergé sur Cloudflare Python Workers détient les clés des fournisseurs, et le client ne les reçoit jamais. Pour chaque requête au modèle, l'adaptateur OpenRouter récupère un catalogue à jour, exige un modèle explicitement `:free`, avec prise en charge native des outils et un prix nul dans tous les champs. Il vérifie ensuite que les points d'accès ont un prix nul et au moins 95 % de disponibilité déclarée sur 30 minutes, puis n'envoie la requête qu'aux points d'accès vérifiés, avec `allow_fallbacks: false` et un `max_price` strictement nul. Il rejette aussi les remplacements de routage arbitraires, les clés de fournisseur, les plugins, le contenu multimodal et tout outil autre que Bash. Le README affirme qu'il n'existe aucun repli vers une inférence payante, tout en reconnaissant que l'application dépend du respect par OpenRouter de ses prix publiés et de son contrat de routage.

Un modèle n'entre en production qu'après avoir réussi le banc d'essai maison d'installation et de réparation : au moins 80 % de réussite sur une série complète de dix tâches, des appels Bash natifs et aucune défaillance critique. Des adaptateurs existent aussi pour Groq, Mistral, Z.AI et Vercel AI Gateway, chacun avec ses règles d'éligibilité au gratuit. La passerelle publique limite chaque IP à 60 requêtes par minute, 600 par heure et 2 000 par jour, avec en plus une allocation partagée globale. Le README qualifie la capacité gratuite de partagée et de « meilleur effort ».

Notre analyse

Cette conception inverse volontairement la logique des produits d'agents habituels. La plupart des agents de codage veulent devenir votre outil quotidien. bailout veut être l'outil que l'on prend quand l'outil quotidien manque ou ne fonctionne plus. C'est un vrai problème de l'œuf et de la poule : pour réparer un agent, il faut un agent. Un binaire de moins d'un mégaoctet, sans compte, avec une inférence gratuite hébergée, supprime des prérequis qu'une machine en panne ne peut pas remplir. Notre lecture est que cette petite taille n'est pas de la coquetterie. Elle sert la promesse « supprimez-le ensuite », car un petit artefact se télécharge, se vérifie et se jette facilement.

Le compromis est la confiance. L'inférence étant hébergée, le README précise que les invites, le contenu des fichiers choisis par le modèle et la sortie Bash capturée transitent par le Worker hébergé vers le fournisseur retenu. Il note que gratuit ne veut pas dire zéro conservation de données et que les politiques des fournisseurs s'appliquent. Le Worker ne stocke pas les conversations et ne journalise pas le corps des requêtes, mais la passerelle conserve des empreintes d'IP quotidiennes de courte durée, des réservations de quota et des temps de refroidissement. Le README vous demande aussi de ne pas coller d'identifiants dans le chat ni de faire afficher des fichiers secrets par l'agent.

Risques et questions ouvertes

Trois limites ressortent. Premièrement, le README dit lui-même que les commandes s'exécutent automatiquement et que ce n'est pas un bac à sable : une erreur du modèle peut modifier une vraie machine. Deuxièmement, l'installation fait passer un script du réseau dans Bash.

Le README décrit une vérification de somme de contrôle, une installation atomique, un contrôle de taille et l'absence de sudo, mais il faut quand même faire confiance au projet et à son domaine. Troisièmement, depuis la v0.4.0, chaque lancement cherche une version stable plus récente et se met à jour seul, sauf si vous définissez `BAILOUT_NO_UPDATE=1`. C'est pratique, mais le binaire peut changer d'une exécution à l'autre. Nous n'avons lu que le README et n'avons pas exécuté l'outil : toutes les affirmations sur son comportement et ses tests sont celles de l'auteur.

Conseils pratiques

Si vous gérez des machines cloud jetables, l'outil mérite un coup d'œil comme étape d'amorçage. Commencez par une demande étroite, comme l'exemple du README sur un outil qui ne démarre plus après un changement de configuration.

Utilisez `/shell` ou le passage interactif pour les connexions, et ne tapez jamais de secrets dans le chat. Lisez la section sur la confidentialité avant d'envoyer quoi que ce soit de sensible, et lancez `bailout uninstall` la tâche terminée. Si vous voulez un quota séparé, le README explique comment héberger votre propre routeur avec `BAILOUT_API_URL` : l'API Python demande Cloudflare Workers Paid, ou votre propre serveur avec Uvicorn.

Sources

FAQ

De quoi bailout a-t-il besoin sur la machine ?

Selon le README, ni compte, ni clé d'API locale, ni Git, Node, Python, ni agent existant. Il faut Bash, curl, Internet et des utilitaires de base comme tar et un outil SHA-256, sous macOS Apple Silicon, Linux x64 ou Linux ARM64.

bailout est-il un bac à sable ?

Non. Le README précise que Bash est le seul outil du modèle, que les commandes s'exécutent automatiquement avec vos droits et que ce n'est pas un bac à sable. L'agent a seulement pour consigne d'inspecter, de sauvegarder et de vérifier.

Que supprime bailout uninstall ?

Uniquement le binaire bailout en cours d'exécution. Les outils installés, les dépôts clonés et les configurations réparées restent, et la même commande curl permet de le réinstaller.