I just open sourced crews: a Claude Code plugin that plans your subagents before they run.
You list the roles a task needs. crews seats each one on the right model and effort, runs them in waves, and blocks any agent that wasn't in the plan.
MIT, free: https://t.co/Ftadws6MSg
@harshalftw Glad the backend is up. One habit that saves that search next time: have each worker end by stating its worktree path and whether it committed, so a fresh session reads a short list instead of hunting through every worktree.
@Kizuno18@jsmasterypro The FIFO queue is the part people skip, and it is what makes a cap of 2 workers usable overnight. For the index.lock collisions, a separate git worktree per worker helps too, so only the merge step touches the main checkout.
@kartikb753@talirezun@nateherk Agreed on the stuck worker. A turn cap per subagent and a tool list limited to what its job needs keep one bad loop from eating the budget, and the plan should state both next to the model so they can be checked too.
@SAKSHAM111 Putting the main session in a /loop that keeps spinning up new agents works best with a hard cap per round. Without one, the review loop can add workers faster than it closes tasks.
@aliceisplaying Loosening the tests is the classic one. Keeping test files out of the worker's write scope, and having a separate checker run the original suite, stops it before it needs flagging.
@blueemi99 Same output for more tokens is what happens when a subagent redoes work the main session could do itself. Where they pay off is long reads and test runs: the main context gets a short hand-back instead of the raw logs.
@wagsify@blueemi99 Task packet in, report.md out is a solid shape. One addition: have a separate agent check that report against the packet's criteria, because the spawned agent writing its own report is still grading its own work.
@jeffarese Showing model and effort per subagent fixes the visibility side. The other side is deciding those before the run, so the live view becomes a check against a plan. That's the part I built crews for: https://t.co/Ftadws7kHO
@MylotechdotIO Nobody choosing which model does what is the fixable part. Deciding it per role before the run (planning on the strong model, reads, edits and tests on a cheaper one) turns the bill into something you set instead of something you discover.
@stretchcloud 300 pushes a day with the full suite on each is the multiplier there. Having agents push once per finished task and running only the affected tests on intermediate commits cuts both the bill and the queue.
@GarudaO7 With 4-5 parallel agents, the first thing to rule out is file collisions. Giving each agent its own git worktree, or at least its own write scope, keeps agents from editing the same files at once.
@talos_os Pinning the model at spawn time closes that: pass an explicit model on every headless claude call so the children stop following whatever the default is this week, and log the model each child reports so a silent change shows up.
@_superoriginal_@wholyv When 1 prompt uses a whole session, it's worth checking that prompt at the subagent level: how many it spawned and which model each ran on. Ones with no model set run on Opus too, so a prompt that fans out can drain the window fast.
@talirezun@nateherk Stating the model per task before delegating is a good addition. That's close to how crews works: the plan fixes each role's model and effort and returns the exact Agent calls, so the run can be checked against it. Agreed on the plan carrying over to the next session.
@talirezun@nateherk The separate context per worker is the underrated part. One trap: a worker with no model set inherits the orchestrator's model, so simple ones to Sonnet only holds if each subagent pins it. Writing the split down as a plan is what kept it from drifting for me.
@franguzmanx On the verbose orchestrator: asking it to end each run with a fixed report (status, files changed, open decisions) and keep the step by step in its log instead of the chat helps a lot.
@RichStoneIO Max thinking on every turn is the expensive part of that setup. Keeping max for the hard steps and running routine edits and searches at medium, or on Sonnet, is the change worth trying before giving up on Opus.
@Mr_RyanLewis@JamesMalsawm If high reasoning burns the weekly cap in a day or two, where the high effort gets spent matters as much as the tier. High for planning and hard bugs, medium or Sonnet for routine edits, and the $20 plan holds up for longer.
@porterstanleyai Since OpenRouter bills per token, the model split matters even more there: a strong model for planning and hard calls, a cheaper one for reading, edits and test runs. A credit limit on the API key also stops a runaway loop early.
@timileyinagba Keep Opus 5.5 on the plan and the hard bugs, and pin subagents to Sonnet: an agent with no model set runs on whatever the main session uses, so file reading quietly lands on Opus too.
@capt_sherman That fix, break, fix loop usually means done was never defined. Put the acceptance check in the prompt (the test or command that must pass) and have a separate reviewer run it, so the agent stops grading its own fix. crews makes that check a blind role: https://t.co/Ftadws7kHO