Over the past 10 months I've been using Claude Code heavily, and one limitation kept coming up: you can really only run one coding agent at a time.
While one agent is refactoring something, the rest of the repo is basically blocked unless you start manually juggling branches and working directories.
The core issue is that AI coding agents operate directly in your filesystem. If two agents run in the same working directory they quickly start stepping on each other’s changes.
Git worktrees turned out to be a surprisingly good primitive for solving this.
So I built ChatML, a Desktop app that runs multiple Claude Code sessions in parallel, each isolated in its own git worktree.
Each task gets its own branch, working directory and runs Claude Code session using Agent SDK
That lets one agent write tests while another builds a feature or investigates a bug — all in the same repo without conflicts.
We ended up building most of ChatML itself using this workflow and merged 750+ pull requests generated through parallel agent sessions. That experiment convinced me the model actually works.
More about that experience building here: https://chatml.com/blog/we-built-entire-product-with-ai-750-...
GitHub https://github.com/chatml/chatml
Website https://chatml.com
The project is open source and currently macOS-focused.
I’d especially appreciate help from anyone interested in bringing it to Windows and Linux. If you’ve worked on cross-platform desktop apps, packaging, or filesystem/watchers issues across platforms, contributions or advice would be very welcome. We have it running but with a few bugs.
For context, I previously co-founded KnowBe4, now co-founder of ReadingMinds.ai and for the past few years have explored developer tools around AI-assisted software engineering. Our engineers in several companies I am involved with are using ChatML and we have received great feedback, bugs and security issues.
Happy to answer questions about the architecture, the git worktree model, or how parallel agent workflows feel in practice.
I am using this tool for ALL of my development, and I am happy to share with the community.
-Marcio
rafaelkona•10h ago
mcastilho•10h ago
It was then I realized I had to build ChatML. The first commit was on January 17, so it took about 45 days to get this out, so people can use...
One weekend I closed 120 PR's with on average 10-15 Worktree sessions at any given time. The hardest was to learn how to context-switch in your mind. I built some MacOS Notifications and audible alerts to catch my attention when new plan was proposed in a session, an agent asking questions, etc....
It worked really well for ChatML, since I developed ChatML with ChatML. 750+ Pull Request done 100% by AI.