4 pointsby mcastilho2 days ago6 comments
  • malshea day ago
    What's the advantage over just using claude --worktree? (https://code.claude.com/docs/en/common-workflows)
    • mcastilhoa day ago
      claude --worktree is great for isolating a single session, but you're still juggling terminal tabs manually — starting each one, switching between them to check progress, reviewing diffs by hand.

      ChatML is basically the management layer on top of that. You get a dashboard where you can run 3-5 agents at once, each in its own worktree, and see what they're all doing without tab-switching. It also handles the worktree lifecycle for you (creation, branching, cleanup), has a built-in diff viewer with code review, tracks cost per session, and lets you open PRs directly.

      Closest analogy: running containers manually vs. having Compose manage them. Same underlying primitive, but the orchestration matters once you're doing it regularly.

      • malshe21 hours ago
        Got it. I will try it out.
  • rafaelkona2 days ago
    Marcio, this is genuinely brilliant. The git worktree idea is one of those "why didn't anyone do this sooner" moments. Love that you dogfooded it hard enough to merge 750+ PRs... that's the best proof of concept possible. Rooting for this one!
    • mcastilho2 days ago
      Yes. In November/December timeframe when Opus 4.5 came out, I realized I was trusting it to write the code. I was doing light reviews. I had tried a few MacOS products that does this orchestration, but I was needing more and they weren't answering my emails.

      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.

  • mekaoroa day ago
    Okay this is very cool, Had the same issue, will definitely give it a try.
    • mcastilhoa day ago
      That's awesome. Let me know if you have any questions setting it up.
  • h4mp3ra day ago
    have mostly been using the vscode extension but this looks cool. if you're testing ui changes do you spin up a different process for each worktree to test changes?
    • mcastilhoa day ago
      Yes. Each session get it's up to 5 Terminal sessions. So if I want to test a particular session I was just spinning servers for that session. I had to prepare the code in development to attempt to use multiple ports in case we had another session running.... But I had no problems.... I am writing a feature that you can configure init and tear tasks, so you can do things like "npm install", "docker-compose up", etc.... I had it working, but needed more test, so I commented out from the initial release. I will be adding that shortly after some more testing.
  • nwyina day ago
    very cool! I had a similar idea a few weeks back and built something much smaller scoped and shaped to my personal idiosyncrasies. my approach was giving claude a CLI interface to manage worktrees and spin up other claude instances to work in them, but have all the orchestration handled via a daemon rather than trying to prompt claude to do everything.

    chatml looks very polished and promising. good luck with the project and hope it succeeds.

    • mcastilhoa day ago
      Thanks. Let me know what you think.
  • jlongo78a day ago
    [dead]