workflow.yaml. Each provider ships with its own CLI wrapper and stream parser, so the rest of the workflow engine stays unchanged regardless of which provider you choose.
Supported providers
The three supported providers each expose different permission modes that control how autonomous the AI is during execution.| Provider | CLI binary | Permission modes | Notes |
|---|---|---|---|
| Claude | claude | bypass, auto | auto uses AI-classified safety checks; bypass skips all permission prompts |
| Codex | codex | bypass, full-auto | full-auto runs without any confirmation steps |
| Gemini | gemini | YOLO, auto-edit | YOLO grants full file-system access with no confirmation |
Switching providers
Open the web dashboard and go to the Settings tab. Select your preferred provider from the Provider dropdown. The change takes effect for the next task that starts — running tasks are not interrupted. You can also set the provider directly insettings.default.json:
settings.default.json
permission_mode to a valid value from the table above to override the provider’s default. Leave it null to use each provider’s own default mode.
Per-task model overrides
Individual tasks inworkflow.yaml can specify a model that overrides the process-level default set in settings.default.json. This is the primary way to reduce costs — use a lighter model for straightforward tasks and reserve a larger model for complex reasoning.
workflow.yaml
Setting analysis and execution models separately
Theanalysis.model and execution.model fields in settings.default.json set the baseline for all tasks that do not declare their own model. You can point analysis and execution at different models to balance cost and quality across phases:
settings.default.json
model field takes precedence over both of these baseline values.
Model resolution order
When dotbot resolves which model to use for a task, it evaluates the following sources in order, from highest to lowest priority:- The
modelfield on the individual task inworkflow.yaml - The
execution.model(oranalysis.model) field insettings.default.json - The provider’s built-in default
Provider detection in the dashboard
When you open the Settings tab, dotbot runs a detection pass for each known provider:- Installed — checks whether the CLI executable is on your
PATH. - Version — calls the CLI’s version flag and parses the output.
- Auth status — verifies that the expected environment variable (
ANTHROPIC_API_KEY,OPENAI_API_KEY, orGEMINI_API_KEY) is present and that the provider responds to a lightweight probe.
Authentication is validated against environment variables at detection time. If you update a key, reopen the Settings tab to trigger a fresh detection pass.