Skip to main content
dotbot is multi-provider by design. You can switch between Claude, Codex, and Gemini from the Settings tab in the dashboard or by editing .bot/.control/settings.json, without changing any workflow files. Each provider has its own model configuration and permission modes. The runtime normalises invocations across all three providers, so your workflow files stay the same regardless of which provider is active.

Supported providers

Claude

Anthropic’s Claude CLI.
PropertyValue
Setting valueclaude
Permission modesbypass, auto
Session supportYes — sessions are maintained across turns for continuity
Permission modes:
  • bypass — Passes --dangerously-skip-permissions to the CLI. The agent operates without any permission prompts.
  • auto — AI-classified safety mode. The agent requests permission before potentially destructive operations.

Codex

OpenAI’s Codex CLI.
PropertyValue
Setting valuecodex
Permission modesbypass, full-auto
Session supportNo — each invocation is stateless
Permission modes:
  • bypass — Runs with permissions bypassed.
  • full-auto — Fully autonomous mode; the agent does not pause for confirmation.

Gemini

Google’s Gemini CLI.
PropertyValue
Setting valuegemini
Permission modesyolo, auto-edit
Session supportNo — each invocation is stateless
Permission modes:
  • yolo — No permission checks; the agent operates freely.
  • auto-edit — The agent automatically applies edits without prompting.

Per-task model selection

Individual tasks can override the process-level model by setting the model field in task_create or in the workflow’s tasks array. This lets you use cheaper models for simple tasks and reserve more capable models for complex architectural work.
{
  "name": "Generate boilerplate controllers",
  "description": "Scaffold standard CRUD controllers from the entity model.",
  "model": "Sonnet"
}
The model field accepts a provider alias (Sonnet, Opus, Haiku for Claude). dotbot maps the alias to the provider’s full model ID at invocation time.
Model aliases are provider-specific. Opus means Claude Opus for the Claude provider, but is meaningless for Codex or Gemini. Check the Settings tab in the dashboard for the list of valid model aliases for each provider.

Provider detection in the dashboard

The Settings tab automatically detects installed AI CLIs by scanning the system PATH. For each provider it reports:
  • Whether the CLI is installed.
  • The detected version.
  • Authentication status (logged in / API key present / not authenticated).
This detection runs when the Settings tab is first opened, giving you immediate visibility into which providers are available before starting a workflow.

Switching providers

You can switch providers in two ways: Via the Settings tab: Open the dashboard, go to the Settings tab, and select a provider from the Provider dropdown. The change is written to .bot/.control/settings.json and takes effect immediately for the next workflow run. Via settings.json directly: Edit .bot/.control/settings.json:
{
  "provider": "gemini"
}
Valid values: claude, codex, gemini.
Switching providers mid-workflow is supported but may produce inconsistent results if the new provider’s models have different context window sizes or capability profiles. Complete or pause the current workflow before switching providers.