ThinkRail : un worktree git par agent, et l'IDE suit

JetBrains a l'habitude de livrer des outils qui supposent que vous savez déjà ce que vous faites. ThinkRail est différent, et la différence tient en une phrase du README : ouvrez un dépôt git comme projet, et découpez-y des espaces de travail sous forme de worktrees git.
Voilà la thèse, et elle est meilleure que « un IDE avec de l'IA ». ThinkRail est un projet de l'incubateur JetBrains, autour de 7 100 étoiles dont 5 760 gagnées la semaine dernière, et il est construit autour de pi, l'agent de code open source. Ce que JetBrains a ajouté n'est pas un panneau de chat. C'est la plomberie qui permet à plusieurs agents de travailler en même temps sans se marcher dessus.
Des worktrees plutôt que de l'espoir
Si vous avez déjà lancé deux agents sur le même dépôt, vous connaissez le mode de défaillance. L'un commence à modifier auth.ts, l'autre décide de refactoriser auth.ts, et vous passez l'après-midi à faire de l'archéologie sur un conflit de merge dont les deux camps sont convaincus d'être l'auteur.
La réponse de ThinkRail : chaque espace de travail est un worktree git, avec sa branche et son répertoire de travail. Les agents travaillent en parallèle et aucun ne touche votre copie de travail. Vous mergez la branche qui vous plaît et vous supprimez le reste.
Un joli travail de rangement vient par-dessus : les espaces terminés ou dormants se posent d'eux-mêmes sur une étagère propre au projet, quand leur pull request est mergée ou fermée, ou après une semaine de calme, et reviennent dès que vous y retravaillez. Si vous avez déjà eu vingt branches mortes nommées fix-thing-2, c'est la fonction que vous ignoriez vouloir.

La barre supérieure suit la position de la branche active par rapport à origin et à sa pull request, et met l'étape suivante à un clic : publier, pousser, ou ouvrir une PR décrite à partir du plan, des commits, de votre gabarit ou d'un brouillon écrit par l'agent. Une fois la PR ouverte, elle affiche les checks CI et la décision de revue, et permet de renvoyer à l'agent les checks en échec ou une branche divergente.
La partie IDE est réelle, pas décorative
Des onglets Monaco splittables, une arborescence avec les marques de modification git en direct, une vue des fichiers modifiés, des terminaux et des documents, le tout cadré sur l'espace de travail actif. Vous pouvez laisser des commentaires de revue ancrés sur des fichiers et des diffs, puis les envoyer dans un chat comme contexte structuré. Ou ouvrir le worktree dans l'IDE que vous avez installé, ce qui est l'aveu honnête que certains d'entre nous veulent encore WebStorm.
Les chats défilent avec un compteur de tokens et de coût en direct par session, le genre de détail qui n'apparaît que lorsque les gens qui construisent l'outil paient leurs propres factures. Vous pouvez infléchir un tour en cours, mettre une suite en file, déléguer à des sous-agents, et travailler un plan partagé que l'agent met à jour pendant que vous l'éditez. Chaque étape terminée peut être commitée et relue séparément, ce qui est une bien meilleure unité de revue que « voici 38 fichiers ».
La palette de commandes sur ⌘K, ou une double pression sur Maj, retrouve chats, espaces de travail et projets dans tous les projets ouverts. Sans rien taper, elle liste les chats qui vous attendent, ce qui est le bon défaut pour un outil qui fait tourner beaucoup de sessions.
Les specs, seule chose qui survit
La fonction sur laquelle je reviens sans cesse est le graphe de specs. Un ensemble connecté de fichiers SPEC.md vit à côté du code, et l'agent le lit, le parcourt et le maintient via des outils dédiés spec_*. L'outil Specs, en lecture seule, affiche le graphe sous forme d'arbre dans l'atelier.
Le raisonnement tient. Les fenêtres de contexte se terminent. Les sessions se terminent. Ce qui survit, c'est ce que vous avez écrit. La plupart des outils d'agents traitent « se souvenir du plan » comme un problème de mémoire ; ThinkRail le traite comme un problème de documentation, version qu'un humain peut aussi relire six mois plus tard.
C'est aussi la fonction la plus susceptible de pourrir. Un graphe de specs que l'agent entretient et que personne ne relit devient une description très détaillée et très assurée d'un logiciel qui n'existe plus. L'outillage rend la maintenance bon marché ; il ne la rend pas gratuite, et la discipline reste à votre charge.
Installation
Deux formes, toutes deux additives : un installateur natif de bureau, et un CLI autonome qui ouvre la même application dans votre navigateur. Les deux publient un SHA256SUMS sur la page des releases.
Ligne de commande sous macOS ou Linux, et sous Windows dans Git Bash :
curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash
Windows, depuis cmd ou PowerShell :
powershell -c "irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex"
Puis :
thinkrail ~/code/my-repo
Il faut git dans le PATH et un fournisseur de modèle. Connectez-vous avec JetBrains AI depuis l'application, ou branchez n'importe quel fournisseur via l'authentification propre à pi. Il n'y a pas de comptes ThinkRail, phrase que je n'attendais pas de JetBrains.
Les builds de bureau sous Linux exigent glibc 2.38 ou plus récent avec GTK 3, WebKitGTK 4.1, Ayatana AppIndicator 3 et librsvg 2 — en pratique, Ubuntu 24.04 ou plus. Le programme de mise à jour n'apparaît que si le paquet porte une identité de flux HTTPS valide, donc les installations antérieures à cette identité nécessitent une réinstallation manuelle.
Le détail qui le rend portable
ThinkRail lit votre configuration ~/.pi/agent existante. Redirigez-la avec PI_CODING_AGENT_DIR si vous gardez un profil professionnel. Dans les réglages, Custom servers connecte n'importe quel endpoint compatible OpenAI — LiteLLM, sglang, vLLM, Ollama, LM Studio, llama.cpp — et l'écrit dans le models.json de pi, si bien que ces modèles apparaissent dans le sélecteur de chat comme dans le CLI.
Les serveurs MCP de votre mcp.json suivent aussi, avec le bon comportement : ThinkRail demande confirmation dans le chat avant les appels que le serveur ne marque pas en lecture seule, garde désactivés les serveurs définis par le dépôt jusqu'à votre approbation, et vous connecte aux serveurs OAuth depuis les réglages.
Les extensions d'agent sont tout aussi pragmatiques. Les réglages listent ce que l'agent reçoit, permettent de désactiver chaque élément, et installent n'importe quel paquet pi depuis sa source — npm, git ou un dossier local — pour vous ou pour un dépôt. Les outils ask-user-question et visualize sont publiés comme paquets séparés, de sorte qu'un pi vanilla dans un terminal obtient les mêmes questions à choix multiples et les mêmes schémas en ligne.
Ce que je surveillerais
Sept mille six cents étoiles en une semaine pour un projet d'incubateur, c'est beaucoup d'attention pour quelque chose qui n'a pas encore traversé un cycle de release JetBrains. Les projets d'incubateur chez JetBrains ont l'habitude de devenir des produits ou de s'arrêter discrètement, et les bêtas ont une fâcheuse tendance à devenir la version dont vous dépendez.
L'autre risque est conceptuel. C'est un outil très complet avec beaucoup de surfaces : worktrees, specs, palettes, extensions, MCP, thèmes, polices, quatre langages intégrés avec un chemin documenté pour ajouter le vôtre. Chacune est un endroit où configurer au lieu d'écrire du code. Le meilleur résultat pour ThinkRail serait que le modèle worktree devienne une évidence dont plus personne ne parle, et que le reste de l'application s'efface.
Essayez si vous faites déjà tourner des agents en parallèle et que votre solution actuelle s'appelle « plusieurs fenêtres de terminal et les doigts croisés ». L'isolation par worktree vaut à elle seule le téléchargement. Essayez-le comme IDE classique et vous verrez qu'il n'essaie pas d'en être un.
Articles associés
Short Drama Studio : Jimeng vend un taux de rebut, pas des modèles
Jimeng a mis scénario, décors, storyboard et post-production dans un même studio. L'intérêt n'est pas dans les modèles, mais dans l'outil qui redécline un micro-drame fini pour d'autres marchés.
Le clavier WeChat transforme un enregistrement en page web
WeChat greffe un dictaphone IA à son clavier : il transcrit, nettoie et rend une page structurée. L'innovation n'est pas la fonction, c'est l'emplacement.
Scenes AI : Dawa parie sur le contrôle, pas sur les pixels
Dawa Technology fait apparaître des décors en direct sur une seule RTX 5090, mais gagne sa vie avec des micro-drames et 180 téraoctets de données de tournage.
Pika H3 Flex : six étapes, et le son naît avec l'image
Six étapes au lieu de cinquante, image et son produits dans la même boucle : Pika ouvre les poids de H3 Flex et documente ses gains.