Une application de bureau open source de Kanban qui exécute des agents en parallèle sur toutes les cartes
(kanbots.dev)- KanBots est une application de bureau qui exécute Claude Code et Codex en parallèle pour chaque carte Kanban et affiche en temps réel la progression, les décisions et les coûts sur le tableau
- Chaque exécution est isolée dans un git worktree distinct sur la branche
kanbots/issue-N, et il est possible de créer un tableau en déposant un dossier puis d’assigner un agent à chaque carte - Autopilot fait tourner des personas comme produit, ingénieur, relecteur et testeur avec un parallélisme maximal de 4, répartit le travail et met à jour le backlog
- Les agents s’arrêtent lorsqu’un jugement est nécessaire et proposent des options ; l’utilisateur peut continuer via un choix numéroté, une nouvelle soumission modifiée,
/spec,/reviewou/split - L’application de bureau adopte une approche local-first sous licence MIT gratuite, tandis que la version Cloud propose la synchronisation d’équipe, des notifications et des tableaux de bord pour 19 $/mois par siège
Concept de base de KanBots
- KanBots est une application de bureau qui exécute en parallèle des agents Claude Code et Codex au niveau des cartes d’un tableau Kanban
- Chaque agent s’exécute dans un git worktree distinct sur la branche
kanbots/issue-N, et le tableau met à jour en temps réel l’avancement, les demandes de décision et les coûts - En ajoutant un dossier, un tableau est créé, et plusieurs cartes peuvent se voir attribuer un agent Claude Code ou Codex
- En mode d’exécution automatique, des personas se répartissent le travail, l’exécutent en parallèle et vérifient les résultats
- L’application de bureau est gratuite, sous licence MIT, financée par les dons et fonctionne selon une approche local-first
Composition du produit et tarification
-
Bureau OSS
- Desktop suit une approche local-first, sans compte, sans télémétrie, gratuite à vie et sous licence MIT
- Il prend en charge macOS, Linux et Windows, et inclut toutes les fonctionnalités
- Parmi les fonctions principales figurent l’exécution parallèle d’agents, l’exécution automatique, les invites de décision, les personas intégrées et personnalisées, l’analyse des coûts en temps réel, une bibliothèque de recettes,
kanbots-mcp-server, l’import Sentry, le mode GitHub Issues, l’aperçu des branches, la création de brouillons de PR, la prise en charge de Claude Code et Codex, ainsi que les hooks pre-push
-
Cloud pour les équipes
- Cloud est un produit hébergé multi-utilisateur, tandis que les agents s’exécutent localement sur le matériel des utilisateurs
- Le prix est de 19 $ par mois et par siège, ou 190 $ par an avec facturation annuelle
- En plus des fonctions OSS, il fournit la présence en temps réel sur le tableau, les notifications d’assignation des membres d’équipe, la synchronisation entre appareils, les notifications Slack, l’agrégation des coûts à l’échelle de l’organisation, l’édition collaborative de cartes en temps réel, des tableaux de bord d’activité des agents par organisation et une Managed GitHub App
- Les fonctions Enterprise incluent les journaux d’audit, SSO / SCIM, une API REST avec PAT, ainsi que des webhooks sortants
- Les fonctions réservées au Cloud sont limitées à celles qui ont du sens lorsqu’il y a d’autres personnes ou d’autres appareils ; tout ce qui sert à une seule personne sur une seule machine est inclus dans l’OSS
Outils pris en charge et intégrations
- Prend en charge les CLI Claude Code et Codex
- Prend en charge les tâches GitHub Issues et PR
- Prend en charge l’import des erreurs Sentry
- Cursor et Claude Desktop peuvent être intégrés en tant que clients MCP
- Le stockage local utilise SQLite
- Le shell de bureau est fourni sur base d’Electron
Fonctionnalités clés
-
Exécution parallèle des cartes
- Il est possible d’exécuter simultanément des agents sur plusieurs cartes, et chaque exécution se déroule dans son propre git worktree et sur sa propre branche
kanbots/issue-N - Le tableau met à jour en temps réel la progression des exécutions, les demandes de décision des agents et l’accumulation des coûts
- Il est possible d’exécuter simultanément des agents sur plusieurs cartes, et chaque exécution se déroule dans son propre git worktree et sur sa propre branche
-
Exécution automatique et personas
- Il est possible de chaîner des personas comme produit, ingénieur, relecteur et testeur, avec un parallélisme réglable jusqu’à 4
- L’orchestrateur parcourt les personas en round-robin, découpe les sujets de haut niveau en sous-tâches et met à jour le backlog avec les tâches découvertes par les agents
- Une persona peut en créer d’autres
-
Exécution centrée sur la décision
- Les agents s’arrêtent lorsqu’ils rencontrent une décision nécessaire et affichent des options
- L’utilisateur peut poursuivre via un choix numéroté, une resoumission après modification ou des commandes slash comme
/spec,/reviewet/split - Au lieu de modifier silencieusement l’arbre de travail, le système laisse un flux de décisions vérifiable
-
Intégration de Claude Code et Codex
- Claude Code ou Codex peuvent être utilisés sur le même tableau, dans le même worktree et avec la même interface de décision
- KanBots gère les deux formats de flux derrière un unique AgentCliAdapter
- Il est possible de réutiliser un
claude /loginexistant ouOPENAI_API_KEY
-
Stockage local-first
- Toutes les données se trouvent dans
.kanbots/à côté du dépôt - La base SQLite, la configuration et les worktrees sont stockés en local
- Il n’y a ni compte cloud, ni télémétrie, ni serveur HTTP, et le code ne quitte pas la machine
- Toutes les données se trouvent dans
-
Analyse des coûts et plafonds budgétaires
- Fournit des agrégations de coûts par exécution, par carte et par projet
- Un compteur de coûts s’accumule pendant le travail des agents
- Il est possible de définir des limites par exécution et par session, et l’exécution s’arrête lorsque le budget est atteint
-
Workflow GitHub
- Il est possible de traiter de vrais issues GitHub avec un PAT personnel
- Les worktrees peuvent être promus en commits ou transformés en brouillons de PR en un clic
- Des hooks pre-push empêchent les agents de publier par eux-mêmes
-
Serveur MCP
kanbots-mcp-serverexpose le tableau via le Model Context Protocol- Cursor, Claude Desktop ou tout outil compatible MCP peuvent manipuler le tableau
- Le tableau devient ainsi un outil utilisable par d’autres agents
Workflow interne de l’application
-
Autopilot
- On choisit une ou plusieurs personas, on définit le parallélisme, puis on lance l’exécution automatique
- Jusqu’à 4 slots parallèles parcourent la liste des personas en round-robin
- Chaque slot récupère atomiquement la persona suivante, et les agents découpent en cours d’exécution les sujets de haut niveau en sous-tâches
- L’exécution s’arrête à la fin ou lorsque le budget de session est atteint
- L’écran d’exemple montre Claude Opus 4.7, un effort
medium, un parallélisme de 2, avec les personas Product Manager et Senior Engineer sélectionnées
-
Decisions
- Le fil d’exécution diffuse en temps réel tous les
tool_useettool_result - L’agent interrompt l’exécution lorsqu’un jugement est nécessaire et présente des options numérotées
- Le champ de réponse accepte des commandes comme
/spec,/reviewet/split - Dans l’exemple d’implémentation de jeton de réinitialisation de mot de passe, des options comme JWT à usage unique, jeton opaque stocké en base, magic link ou explication préalable des compromis sont affichées
- L’écran d’exécution affiche le modèle, le temps écoulé, le nombre de tokens, le coût, l’état, la priorité, le dossier, le worktree, la branche, la branche de base et l’auteur
- Le fil d’exécution diffuse en temps réel tous les
-
Personas
- Une persona est un fragment de prompt système nommé
- Des personas par défaut sont incluses dans l’application, et l’utilisateur peut en écrire de nouvelles, les enregistrer et les réutiliser
- Les personas personnalisées sont stockées localement sur la machine concernée
- Les exemples par défaut incluent Product Manager, Senior Engineer, UX Designer, Growth Lead et Reliability Engineer
-
Providers
- Claude Code et Codex peuvent être utilisés derrière un seul
AgentCliAdapter - Un
claude /loginoucodex loginexistant peut être réutilisé, sans compte supplémentaire ni gestion de clé supplémentaire - Il est possible de changer de fournisseur à chaque exécution
- La CLI Codex exige que
codexsoit présent dans lePATH, et la rédaction de brouillons d’issues ainsi que l’analyse Sentry restent exécutées via Claude - La connexion Codex peut ouvrir
auth.openai.comdans le navigateur ou utiliser la variable d’environnementOPENAI_API_KEY
- Claude Code et Codex peuvent être utilisés derrière un seul
-
Tasks
- Les nouvelles tâches proposent des modèles pour correction de bug, fonctionnalité, refactorisation, revue et spike
- Le mode de démarrage permet de choisir entre spec-first, exécution immédiate après création ou mise en file pour plus tard
- Le titre est utilisé comme nom de branche et comme titre de PR
spec-firstexécute/spec, affine les critères d’acceptation et laisse la tâche en attente d’approbation- Une nouvelle tâche crée un fresh worktree et génère une branche sous
.kanbots/worktrees/issue-Nà partir demain
-
Chat
- Un agent générique est fourni pour poser des questions sur le workspace
- L’agent connaît le dépôt, les tests et l’état git, et répond aux questions
- Un exemple montre comment trouver une route API sans rate limiting, ajouter
rateLimit({ windowMs: 60_000, max: 10 })à/api/loginet/api/signup, puis écrire des tests qui passent
Fonctionnement d’Autopilot
- Autopilot est un mode qui prend des issues et un budget pour mettre à jour le backlog de manière autonome
- L’orchestrateur parcourt une liste de personas en round-robin et exécute jusqu’à 4 slots en parallèle
- Il découpe les sujets de haut niveau en sous-tâches et boucle jusqu’à ce que le travail converge ou que la limite de coût soit atteinte
- L’exemple affiche un parallélisme de 4, le modèle
opus 4.7, un budget de session de 25,00 $ dont 4,27 $ utilisés, et l’état du 14e cycle -
Sélection de la liste de personas
- Il est possible d’utiliser les personas par défaut ou de définir, enregistrer et réutiliser ses propres prompts système
- Les personas personnalisées ne quittent pas la machine
-
Réglage du parallélisme
- Le parallélisme peut être réglé de 1 à 4
- Chaque slot récupère atomiquement la persona suivante via un compteur round-robin
- Quatre agents peuvent s’exécuter simultanément avec quatre perspectives et quatre worktrees
-
Découpage du travail
- Lorsqu’un agent découvre une tâche, il crée une nouvelle carte sur le tableau
- Les cycles suivants récupèrent ces nouvelles cartes, et le backlog grandit puis se réduit sous l’orchestrateur
-
Arrêt sur budget ou à l’achèvement
- Un budget de coût par session limite la dépense totale
- Le bouton d’arrêt termine l’exécution parente et toutes les exécutions enfants
- Les exécutions en cours terminent proprement leur itération actuelle
Mode QA
- Le mode QA exécute typecheck, tests, lint, build et e2e à l’intérieur du worktree
- Il peut démarrer et surveiller un serveur de développement si nécessaire
- Pour chaque vérification échouée, il assigne une exécution de correction dans un issue enfant dérivé
- Il répète le processus jusqu’à ce que les vérifications passent
Distribution et conclusion
- L’application de bureau OSS est fournie gratuitement, sous licence MIT et sans compte
- Elle met l’accent sur un flux où toutes les exécutions d’agents sont visualisées sur un Kanban, rendues décisionnelles et isolées
- Les équipes peuvent passer au Cloud lorsqu’elles doivent partager le tableau
- Les formats de téléchargement sont macOS
.dmg, Windows.exe, Linux.AppImage/.tar.xz
1 commentaires
Commentaires sur Hacker News
Je me demande toujours comment les gens accueillent les résultats produits pendant la nuit par des agents
Même sur un dépôt de projet perso, j’ai l’impression qu’un résultat issu de 30 minutes de planification et 30 minutes d’implémentation est déjà trop gros à relire. Au bout d’environ 5 minutes, il m’arrive de demander à l’IA de recommencer alors même que le code continue d’affluer
À mon avis, une structure de fichiers solide aide aussi. Relire un fichier de 3 000 lignes qui vient d’être généré, c’est l’enfer, et je n’accepterais pas ce genre de sortie d’un humain pas plus que d’une machine. Si c’est réparti en plusieurs fichiers au bon endroit, la charge cognitive baisse
Parfois, je fais aussi la revue en discutant avec l’agent. Par exemple, je lui demande quels sont les fichiers les plus importants à relire en premier
J’aime bien mettre les changements en staging dans une pile « LGTM ». Si des corrections sont nécessaires ensuite, je dis à l’agent : « relis les changements non indexés. J’aurais préféré une autre approche ici »
Si quelque chose ne va pas, autrement dit s’il y a un bug, on le corrige au fil de l’eau. C’est une époque très triste pour l’ingénierie logicielle. S’il y a un jour eu de l’ingénierie dans notre industrie, il n’en reste plus grand-chose aujourd’hui, et on se contente de bricoler avec des fichiers de skills du genre « n’introduis pas de bugs » ou « tu n’es pas locataire, tu es propriétaire »
Le niveau d’effort est faible et le déterminisme l’est aussi. De grosses apps comme GitHub se dégradent à cause des déchets générés par l’IA, et c’est encore plus fréquent sur des systèmes moins connus. Même chose dans notre boîte ou dans d’autres SaaS qu’on utilise
Les product managers ne se sont jamais vraiment souciés du code, les engineering managers s’en soucient moins qu’à l’époque où ils étaient ingénieurs. Les directeurs ne s’en préoccupent pas du tout, et les CTO ne savent même plus à quoi ressemble le code aujourd’hui
Nous sommes au bout de la chaîne, et comme nous savions intimement que les bons systèmes reposent sur du bon code, nous étions fiers d’écrire du code utile et maintenable. Mais aujourd’hui, nous nous mettons nous-mêmes en danger, et ceux qui ne se soucient plus du code, ce sont justement nous, les ingénieurs, l’IA ne faisant qu’amplifier ce problème
L’essentiel du temps sert à tester différentes approches puis à les résumer, pour me livrer un diff relativement réduit que je peux relire et corriger
Personnellement, je finis toujours par retoucher d’une manière ou d’une autre ce que produit l’agent. Je me demande s’il faut que j’abandonne ce besoin de contrôle
Ça me fait surtout penser à Vibe Kanban(https://vibekanban.com/), que j’utilise pour gérer les agents de code sur la plupart de mes projets
Malheureusement, les développeurs de Vibe Kanban ont estimé qu’ils ne voyaient pas de voie de monétisation et ont arrêté d’investir dans le projet. Comme c’est open source, on peut toujours l’exécuter en local ou le forker, mais les améliorations se sont arrêtées et il reste encore quelques bugs pénibles à corriger. Je n’ai pas le temps de le maintenir moi-même
J’aurais volontiers payé pour Vibe Kanban, ce qui rend ça d’autant plus dommage. Cela dit, je n’avais pas besoin des fonctions du forfait payant. Avec le recul, j’aurais peut-être dû payer quand même
Je vais aussi essayer Kanbots. Il pourrait sans doute reprendre très librement les fonctionnalités de Vibe Kanban. En particulier, la prise en charge du distant et le bouton « Open in VS Code » sont essentiels pour moi. Dans mon cas, ce bouton ouvre un client VSCode local pointant vers un serveur VSCode distant
Depuis une à deux semaines, je travaille à amener ce nouvel outil au niveau de parité fonctionnelle avec VK, puis à l’améliorer davantage. J’ai aussi posté quelques captures d’écran sur le Discord de Vibe Kanban. J’espère que, quand tout sera prêt pour la sortie, il correspondra aussi bien à votre cas d’usage
Mon outil vise à faire mieux que VK à la fois sur le tableau Kanban et sur l’espace de travail des agents, avec en plus des systèmes comme la gestion des fenêtres du bureau, des plugins, une intégration de VSCode dans le navigateur, et une UI rendue côté serveur à la manière de htmx
L’approche d’accès distant est aussi différente. Au lieu de lancer un serveur web sur un laptop pour accéder à un agent de code distant, j’héberge l’ensemble comme OpenClaw et j’accède à une UI de bureau distant depuis le navigateur
Le fait que ce soit « local first, sans serveur. Tout est dans
.kanbots/à côté du dépôt : base de données SQLite, configuration, worktrees. Aucun compte cloud, aucune télémétrie, aucun serveur HTTP. Ceci est l’édition desktop open source » est une condition de base pour envisager l’adoption d’un outil de ce typeSi l’IA est agentique, je m’attends à ce que n’importe quel product manager puisse discuter une heure avec elle et intégrer Jira à une boucle d’agent
Jira, Trello, Linear et Basecamp ont tous des API, et il doit sûrement exister des CLI utilisables par des agents. Il ne devrait pas falloir de développeur ni de SaaS pour lui faire comprendre qu’au début du travail, le ticket doit être checkout avec ses instructions, puis déplacé en DONE à la fin
Franchement, ça a l’air cool. Mais il y a déjà pas mal d’outils qui ont l’air cool
À l’origine, le mot « Kanban » était utilisé par Toyota pour décrire un système de cartes qui remplissait quelques objectifs essentiels, notamment éviter d’avoir trop de travail en cours en même temps et visualiser le travail
Plus globalement, Kanban servait à gérer le flux de travail pour éviter que les défauts ne passent à travers
Or cet outil ressemble plutôt à « injecter tout le travail imaginable pour en générer un maximum en parallèle ». Il ne gère pas le flux de livrables de qualité, ne limite pas le travail en cours, il balance simplement tout aux agents et brûle des tokens comme un fou
Le fait d’appeler ça « Kanban » m’agace vraiment. J’y vois presque un blasphème
Chaque fois que j’ai essayé de faire tourner des agents sans supervision, j’ai eu plus de frustrations que de réussites
Je crois que la technologie finira par y arriver, mais pour l’instant chaque agent a besoin de son propre IDE et fusionner le travail reste pénible
Je partage ici un projet open source récent. C’est un tableau Kanban avec des agents parallèles
J’essaie encore de l’améliorer avec davantage de fonctionnalités, et toute contribution au dépôt, que ce soit du code ou des idées, est la bienvenue
Ce sera intéressant de suivre son évolution
En gros, ce n’est pas déjà ce que fait Windsurf ? Au final, toutes ces UI ne sont qu’un habillage posé par-dessus des agents
[0] https://windsurf.com/blog/windsurf-2-0
Moi, j’avais besoin d’un flux avec davantage d’intervention humaine. Une approche où l’on délègue à l’agent sans bien voir l’ensemble des changements ni avoir l’occasion de réorienter ne me convient pas
https://www.agentkanban.io relie via une extension le tableau de tâches à GitHub Copilot Chat dans VS Code, afin d’avoir à la fois la gestion des tâches et la capture de contexte du passage du chat au travail. On bénéficie ainsi des atouts de VS Code comme environnement d’exécution supérieur tout en gardant des fonctions de gestion des tâches et de projet
Linear travaille aussi directement dans cette direction
Ce que je ne comprends pas avec ce genre d’outils, c’est comment ils gèrent le démarrage de l’infrastructure entre différentes worktrees
Par exemple, si on a une webapp, chaque worktree doit pouvoir lancer sa propre infra et être accessible via sa propre URL locale unique. Comme ça, on peut visualiser localement les changements de chaque worktree, ou permettre à un agent, via quelque chose comme agent-browser, d’automatiser la vérification visuelle
Aujourd’hui, j’utilise Docker pour l’infra et chaque service tourne dans son propre conteneur. J’ai un script
./app worktree create worktreenamequi crée la worktree « worktreename », puis démarre toute l’infrastructure Docker avec des préfixes du type « WORKTREENAME ». Ainsi, toutes les URL sont accessibles via worktreename.myapp.test, tandis que la worktree principale utilise simplement myapp.testÇa fonctionne bien pour l’instant, mais si l’une de ces apps pouvait s’intégrer à ce concept, je serais content de migrer dessus
Ce CLI renseigne dans le fichier
.envl’URL et la base de données correspondantes à la worktree, puis lance un serveur de développement sur un port unique avec le paquet open source portless de Vercel. On obtient ainsi une URL par worktreeParmi elles, il y a
EMDASH_PORT, un port unique dans une plage de 10 ports. C’est très utile quand on exécute plusieurs services dans un seul monorepoLe script shell trouve un port libre unique parmi toutes les worktrees existantes et l’assigne au
.envlocal lors de la création de la worktree. Quand la worktree est fusionnée puis supprimée, le port est libéréLes secrets qui ne sont pas propres à une worktree ne sont pas stockés dans le
.envlocal, ils sont injectés via le shellHonnêtement, écrire ce genre de scripts locaux pour automatiser le travail de développement a été très simple, et ça s’intègre bien avec tous mes autres outils CLI. Du coup, je n’ai toujours pas essayé d’app GUI. Je ne sais pas si elles pourraient rivaliser avec une configuration locale sur mesure qui fonctionne exactement comme je le veux
N=mod(...)à partir d’un hash du nom de la worktree, puisport=default_port+NIl suffit de demander à Claude de configurer ça. Il le fera en un seul prompt
« ‘kanbots’ est endommagé et ne peut pas être ouvert. Vous devriez le déplacer vers la corbeille »
C’est une erreur trop appropriée pour une première rencontre avec un logiciel de vibe coding
Ce n’est pas tout simplement vibe-kanban ?
https://github.com/BloopAI/vibe-kanban