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.