freedzhost.cloud

Inari passe en MIT, sur un cœur à nous

Niveau IntermédiaireTemps estimé 20 minÀ lire avant Inari : Claude Code, Codex et Pi, self-hosted sous votre propre nomUn mot inconnu ? Lexique

Inari a commencé comme une couche de peinture sur l'excellente appli de quelqu'un d'autre. Aujourd'hui c'est un cœur, une interface web et un client Android à nous, écrits pour la façon dont on travaille vraiment, et tout le dépôt est en MIT. Voici ce qu'on a emprunté, pourquoi c'est bien, et pourquoi on a arrêté d'emprunter.

Ce que vous y gagnez. Le code du nouvel Inari, une image honnête de ce qui le distingue de Cloudroom (à quoi sert chacun), et les raisons de notre choix, pour savoir lequel vous convient.

Ce qu'on utilisait : Cloudroom

Cloudroom, de David Ondrej, est une appli de bureau pour Claude Code, Codex et Pi. Vos agents tournent sur votre Mac ou dans le cloud, sur vos propres abonnements. Son interface est en Apache-2.0, son cœur peut être auto-hébergé, et l'usage local ne demande aucun compte. Pendant quelques semaines on l'a fait tourner ainsi, repeint à nos couleurs, avec notre signature kitsune et notre nom. On n'a jamais forké son moteur : un petit outil patchait chaque version amont sur place. C'était le premier Inari.

Pourquoi il est génial

Il est fait pour des gens aux besoins structurants : plusieurs abonnements frontier, du travail qui doit tourner dans le cloud, une équipe. C'est un vrai problème, et il est bien résolu. Ce n'est pas tout à fait le nôtre.

Ce dont on avait besoin

Ce que fait Inari maintenant

L'interface d'Inari : les fils regroupés par machine à gauche, au centre la conversation avec un agent Claude montrant ses appels d'outils et sa réponse, un anneau de contexte et des pastilles de mode au-dessus.
Les fils regroupés par machine. Chaque fil garde son modèle, son mode et le remplissage de sa fenêtre de contexte.
Un fil en attente d'une décision : une carte en bas de la conversation indique que l'agent demande à lancer git push origin main, avec Refuser, Autoriser une fois et Toujours autoriser ici.
L'autorisation est une carte dans le fil auquel elle appartient.
La même interface sur un téléphone : la mascotte au-dessus d'une conversation, la zone de saisie en bas.
Sur un téléphone
Un téléphone affichant un fil avec une carte d'autorisation.
Les autorisations vous suivent
La liste des machines et des fils sur un téléphone.
Toutes les machines, une seule liste

Le client Android est une appli fine : il ouvre l'interface d'un cœur derrière l'empreinte du téléphone, garde l'identifiant de votre portail dans le Keystore Android, et reçoit ce que d'autres applis partagent (une photo, un document, un lien) directement dans la zone de message. L'adresse de votre cœur et le lieu de publication des mises à jour sont des réglages de build, jamais dans le code source.

Là où Cloudroom reste devant

On ne cherche pas à l'égaler sur l'ordinateur cloud par fil, sur le computer use, ni sur une appli de bureau signée pour macOS. Si c'est ce qu'il vous faut, utilisez Cloudroom : il est excellent, et les idées qu'on a gardées (téléporter un agent en cours, changer de modèle en cours de fil) sont les siennes.

Le dépôt, et la licence

Le nouveau dépôt est github.com/bengua/inari, en MIT, et il est aussi développé sur notre forge. Il contient le cœur en Rust, l'interface web, le client Android et la documentation. Le premier Inari, et le fork de l'interface de Cloudroom sur lequel il tournait, sont archivés sous inari-v1 et inari-gui, gardés pour mémoire. Aucun code de Cloudroom n'est dans le nouveau, et on le dit pour être clair sur ce qui est à nous.

L'essayer

git clone https://github.com/bengua/inari.git
cd inari
cargo build --release          # un binaire : target/release/inari-core-rs
# écrire un node.json (docs/node.md liste toutes les options), puis :
target/release/inari-core-rs node node.json

Ouvrez l'adresse de la passerelle que vous avez configurée. Ajoutez les agents installés sur cette machine aux harnesses du fichier, et rattachez une deuxième machine à la première avec inari-core-rs join. Pour le téléphone, android/build.sh compile l'appli dans un conteneur ; indiquez-lui votre cœur avec un fichier build.env (voir android/README.md).

Inari n'a pas de connexion par conception. Liez sa passerelle à la boucle locale et atteignez-la depuis vos autres machines par un réseau privé (Tailscale, WireGuard, un tunnel SSH), derrière un reverse proxy qui demande un identifiant si vous le voulez. Le transport des cœurs authentifie mais ne chiffre pas : gardez-le sur ce réseau privé.

Sources : Inari (MIT), Cloudroom GUI (Apache-2.0), Agent Client Protocol. Merci à David Ondrej pour Cloudroom, sur lequel ce projet a tourné et dont il a appris.

Utile ? Dites-nous ce qu'il faut mesurer ensuite.