Default model: add Auto so routine agents run on a cheaper model and the office lasts longer on one plan

Open
#66 1 comment 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 2 days

@agentvivekkumar is already working on this.

Since Oct 10, 2026.

Assessment

This issue has not been assessed yet.

Description

enhancement Require Customer
Problem / motivation

I opened Settings on a fresh install (Windows 11, v0.1.5). Default agent model is one choice for every newly spawned agent, and mine is Opus 5.5 · 1M. The Circuit Breaker budget fields are empty by default, so nothing limits spend either. Every agent I add starts on that same top tier model, including ones that only do routine work.

In the code, the model is picked once when an agent's terminal starts (src/main/index.ts ~L3498-3504):

  • an explicit per agent - model wins;
  • otherwise Michael gets modelForRole(...) (his godModel);
  • otherwise every other agent gets cfg.defaultModel ?? modelForRole(...).

So once defaultModel has a value (it is claude-fable-5 in config.ts, and a model is always highlighted in Settings), the role based tiers in modelForRole (config.ts ~L818) never run for non Michael agents. That function already maps narrow helpers (triage, routing, verify, summarise) to Haiku and general workers to Sonnet. A scheduled job such as "Inbox to zero" runs inside an agent's existing session, so it uses whatever model that agent started with.

A per agent model picker already exists in the Command Center, but it starts every agent on the same default, so an owner has to switch each agent by hand to save usage, and the app's own role based choice (modelForRole) is never used for them.

The office needs a Max plan to run all day, and TODOS.md lists plan-limit handling as P1, so cost per agent matters.

One detail to confirm the Settings text says "Michael included", but index.ts ~L3500 special cases Michael to godModel, so the default may not apply to him.

Proposed solution
  1. Add Auto as a choice in Settings > Default agent model, and make it the default for new offices.
  2. With Auto selected, skip cfg.defaultModel at index.ts ~L3503-3504, so non Michael agents use modelForRole (helpers on Haiku, workers on Sonnet). Michael keeps godModel.
  3. Keep the existing explicit choices working exactly as today, and keep a per agent model choice as the top priority.
  4. Show the resolved model next to each agent in the Command Center ("runs on Sonnet 4.6, from its role"), so the owner can see what Auto picked.

It costs no model usage, adds nothing to Michael's prompt, and only changes which model flag is passed at spawn.

Evidence first, as a separate first PR for each agent spawn, log which model was chosen and why (explicit, default, or role). A week of that shows how many agents run on a top tier model that modelForRole would have put on Sonnet or Haiku, before anything changes.

Plan: two PRs

  1. Measure: one log line per agent spawn with the chosen model and the reason. No behaviour change.
  2. Auto: the Auto choice in Settings, the one line skip of cfg.defaultModel in index.ts, the resolved model label in the Command Center, and node:test cases (helper -> Haiku, worker -> Sonnet, explicit per agent model wins, Michael keeps godModel).

Open question for the owner: a different model for each scheduled job would be more precise, but a job runs inside an existing agent session, so it would need a restart or an in session model switch per run. I'd leave that for later and ship Auto first.

Screenshot, mockup or recording

No response

Alternatives considered
  • Tell owners to choose a cheaper default for everyone but this also downgrades agents that need a stronger model, and puts the tuning on the owner.
  • Let Michael pick models per task and this spends usage on the decision and adds to his prompt.
  • Only show usage numbers which explains the problem but does not reduce it.
Area

Onboarding / config

Pre-flight
  • I attached a screenshot, mockup or recording above.
  • I searched existing issues and discussions, and this isn't a duplicate.
Dominant language
TypeScript
Stars
273
Forks
211
Avg merge
2d 18h
Merged PRs (30d)
385

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from agentvivekkumar/dontbemichael

All issues in agentvivekkumar/dontbemichael

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.