Appearance
Choose agents and models
Decide which AI harnesses a machine can run, which one handles each ticket state by default, and how a single ticket overrides that.
You need: bakers.build installed and signed in, at least one harness (Claude Code, Codex, Kimi, OpenCode, Pi or Grok) installed, on PATH, and logged in on this machine, and a project checkout. The herdr executor runs the harness through non-interactive sh, so a shell alias is not loaded.
See what the machine offers. Run this in the checkout:
shbakers agentsThe JSON lists each alias with its harness and model, plus
enabled_agents,default_agentandroutes. An alias is one selectable harness and model, such asopusorcodex.bakers agentsneither installs a harness nor checks its login.Name your harnesses in
~/.bakers/machine.config.js. Keep the identity and capacity fields thatbakers initwrote and editaddonsand theagentsobject. A complete file that uses Codex for coding and Claude Opus for review:js// @bakers-schema-version 3 export default { schema_version: 3, machine_id: 'alex-laptop', user_id: 'alex', max_parallel: 1, addons: ['@bakers-build/addon-codex', '@bakers-build/addon-claude'], agents: { enabled: ['codex', 'opus'], default_agent: 'codex', routes: { default: { working: 'codex', review: 'opus', '*': 'codex' }, careful: { '*': 'opus' }, }, }, };addonssupplies candidates (agent harnesses may be listed only in this file),enabledlimits them,default_agentis the last fallback. A route maps workflow states to aliases, and'*'covers every state not named. Thedefaultroute applies to every ticket without a label.Override one ticket with a label, through the ticket's normal label editing:
Label Effect with the file above agent:carefulRoute careful: Opus in every stateagent:opusAlias opusin every stateagent:opus@workingAlias opus, only while the ticket is inworkingA direct alias beats a route, whatever the label order. The route must exist on the machine that actually runs the ticket. The full precedence list is in Machines.
Verify, then run one small ticket:
shbakers config check --scope machine bakers agentsInspect the run's recorded harness and model for the state. If coding and review use different agents, check both.
Done when: bakers agents shows your aliases, default_agent and routes, and a small ticket ran with the harness you chose for its state.
Ask your AI
"Show my installed harnesses with bakers agents, then propose the smallest agents change for Codex on coding and Opus on review."
When loading fails
The conductor and bakers agents fail with one of these messages; bakers config check does not inspect agents.
| Message | Cause and fix |
|---|---|
machine.config.js addons[] must resolve a non-empty catalog of aliased agents | No harness addon. Add one to addons of machine.config.js. |
machine agents.addons is retired: … | An older machine file. Run bakers config upgrade --scope machine, which moves the entries into addons. |
effective agent catalog is empty after agents filters | enabled or disabled removed every alias. |
agents.default_agent names unavailable alias '<alias>' | default_agent is not among the enabled aliases. |
agents.enabled names unknown alias '<alias>' | Typo, or the addon that publishes it is missing. |
A label that names an unknown alias or route only logs a warning and falls back, so check the observed agent instead of trusting the label. Pins, options such as model and effort, catalog overlays and every field are in Machines.