Configuration Reference¶
Complete reference for all Claudio configuration options.
Config File¶
Claudio reads configuration from YAML files in this order: 1. Path specified via --config flag 2. ~/.config/claudio/config.yaml 3. ./config.yaml
Create a config file:
Configuration Options¶
completion¶
Controls what happens when an instance completes its task.
| Key | Type | Default | Description |
|---|---|---|---|
completion.default_action | string | "prompt" | Action on completion |
default_action values:
| Value | Description |
|---|---|
prompt | Ask what to do (interactive) |
keep_branch | Keep the branch, don't merge |
merge_staging | Auto-merge to staging branch |
merge_main | Auto-merge to main branch |
auto_pr | Automatically create a pull request |
tui¶
Controls the Terminal UI behavior.
| Key | Type | Default | Description |
|---|---|---|---|
tui.auto_focus_on_input | bool | true | Auto-focus new instances for input |
tui.max_output_lines | int | 1000 | Maximum output lines to display |
tui.sidebar_width | int | 30 | Width of the sidebar in characters |
tui.theme | string | "default" | Color theme for the TUI |
Color Themes¶
Claudio includes 14 built-in color themes. Set your theme via config:
Built-in themes:
| Theme | Description |
|---|---|
default | Original purple/green |
monokai | Classic Monokai editor colors |
dracula | Dracula theme |
nord | Cool blue-gray Nord theme |
claude-code | Claude Code inspired orange/coral |
solarized-dark | Solarized Dark |
solarized-light | Solarized Light |
one-dark | Atom One Dark |
github-dark | GitHub Dark mode |
gruvbox | Retro groove |
tokyo-night | Modern Tokyo nights |
catppuccin | Catppuccin Mocha pastel |
synthwave | Synthwave '84 retro neon |
ayu | Ayu Dark |
Custom themes:
Create custom themes in ~/.config/claudio/themes/:
# Generate a template
claudio config theme create my-theme
# Export an existing theme for customization
claudio config theme export dracula > ~/.config/claudio/themes/my-dracula.yaml
# List all available themes
claudio config theme list
Custom theme files are automatically discovered and available when running claudio config.
instance¶
Controls instance process behavior.
| Key | Type | Default | Description |
|---|---|---|---|
instance.output_buffer_size | int | 100000 | Output buffer size in bytes (100KB) |
instance.capture_interval_ms | int | 100 | tmux capture interval in milliseconds |
instance.tmux_width | int | 200 | tmux pane width |
instance.tmux_height | int | 50 | tmux pane height |
instance.activity_timeout_minutes | int | 30 | Minutes of inactivity before marking stale |
instance.completion_timeout_minutes | int | 60 | Minutes to wait for completion detection |
instance:
output_buffer_size: 100000
capture_interval_ms: 100
tmux_width: 200
tmux_height: 50
activity_timeout_minutes: 30
completion_timeout_minutes: 60
Timeout Behavior: - activity_timeout: If an instance produces no output for this duration, it may be marked as stale - completion_timeout: Maximum time to wait for the .claudio-task-complete.json sentinel file
ai¶
Selects and configures the AI backend used for instances and AI-assisted workflows.
| Key | Type | Default | Description |
|---|---|---|---|
ai.backend | string | "claude" | Backend to use (claude or codex) |
ai.claude.command | string | "claude" | Claude CLI command name/path |
ai.claude.skip_permissions | bool | true | Add --dangerously-skip-permissions when starting Claude |
ai.codex.command | string | "codex" | Codex CLI command name/path |
ai.codex.approval_mode | string | "full-auto" | Codex approval mode: bypass, full-auto, or default |
ai:
backend: claude
claude:
command: claude
skip_permissions: true
codex:
command: codex
approval_mode: full-auto
branch¶
Controls branch naming conventions.
| Key | Type | Default | Description |
|---|---|---|---|
branch.prefix | string | "claudio" | Branch name prefix |
branch.include_id | bool | true | Include instance ID in branch name |
Branch name format: - With ID: <prefix>/<id>-<task-slug> (e.g., claudio/abc123-fix-bug) - Without ID: <prefix>/<task-slug> (e.g., claudio/fix-bug)
pr¶
Controls pull request creation behavior.
| Key | Type | Default | Description |
|---|---|---|---|
pr.draft | bool | false | Create PRs as drafts |
pr.auto_rebase | bool | true | Rebase on main before PR |
pr.use_ai | bool | true | Use the configured backend for PR title/description |
pr.auto_pr_on_stop | bool | false | Auto-create PR when stopping with 'x' |
pr.template | string | "" | Custom PR body template |
pr.labels | []string | [] | Default labels for all PRs |
pr.reviewers.default | []string | [] | Default reviewers |
pr.reviewers.by_path | map | {} | Path-based reviewer assignment |
pr:
draft: false
auto_rebase: true
use_ai: true
auto_pr_on_stop: false
template: ""
labels:
- automated
reviewers:
default:
- tech-lead
by_path:
"src/api/**": [backend-team]
"*.md": [docs-team]
PR Template Variables¶
Use Go text/template syntax:
| Variable | Description |
|---|---|
{{.Summary}} | AI-generated summary |
{{.Changes}} | List of changed files |
{{.Testing}} | AI-generated test plan |
{{.Branch}} | Branch name |
{{.Task}} | Original task description |
Path-Based Reviewers¶
Glob patterns are supported:
| Pattern | Matches |
|---|---|
*.ts | All .ts files in root |
**/*.ts | All .ts files anywhere |
src/api/** | All files under src/api/ |
src/api/*.ts | .ts files directly in src/api/ |
paths¶
Controls where Claudio stores data.
| Key | Type | Default | Description |
|---|---|---|---|
paths.worktree_dir | string | "" | Directory for git worktrees |
paths.sparse_checkout.enabled | bool | false | Enable sparse checkout for monorepos |
paths.sparse_checkout.directories | []string | [] | Directories to include in worktrees |
paths.sparse_checkout.always_include | []string | [] | Files/dirs to always include |
paths.sparse_checkout.cone_mode | bool | true | Use git sparse-checkout cone mode (faster) |
worktree_dir behavior: - Empty string (default): Uses .claudio/worktrees relative to repository root - Absolute path: Uses the path as-is (e.g., /fast-drive/worktrees) - Relative path: Resolved relative to repository root (e.g., .worktrees) - Home expansion: Supports ~ prefix (e.g., ~/claudio-worktrees)
Use cases: - Store worktrees on a faster drive for better performance - Keep worktrees outside the repository to avoid cluttering project directory - Use a different directory convention (e.g., .worktrees/ instead of .claudio/worktrees/)
paths:
# Use default (.claudio/worktrees relative to repo root)
worktree_dir: ""
# Or use a custom location:
# worktree_dir: ~/claudio-worktrees
# worktree_dir: /fast-ssd/worktrees
# worktree_dir: .worktrees
Sparse Checkout (Monorepos)¶
For large monorepos, sparse checkout creates partial worktrees containing only specified directories:
paths:
sparse_checkout:
enabled: true
directories:
- "services/api/"
- "shared/utils/"
- "packages/common/"
always_include:
- ".github/"
- "scripts/"
- "Makefile"
cone_mode: true
Benefits: - Faster worktree creation - Less disk space usage - Backend only sees relevant code
cone_mode: - true (default): Uses git's cone mode for faster sparse-checkout operations - false: Uses non-cone mode for complex patterns (slower but more flexible)
logging¶
Controls debug logging behavior.
| Key | Type | Default | Description |
|---|---|---|---|
logging.enabled | bool | true | Enable/disable logging |
logging.level | string | "info" | Minimum log level (debug/info/warn/error) |
logging.max_size_mb | int | 10 | Max file size before rotation |
logging.max_backups | int | 3 | Number of backup files to keep |
Log Levels: | Level | Description | |-------|-------------| | debug | Verbose output for detailed troubleshooting | | info | General operational messages (default) | | warn | Warning conditions that may need attention | | error | Error conditions that affect functionality |
Log Location: .claudio/sessions/<session-id>/debug.log
Viewing Logs:
# Recent logs
claudio logs
# Follow in real-time
claudio logs -f
# Filter by level
claudio logs --level warn
# Search pattern
claudio logs --grep "conflict"
cleanup¶
Controls cleanup behavior.
| Key | Type | Default | Description |
|---|---|---|---|
cleanup.warn_on_stale | bool | true | Warn on startup if stale resources exist |
cleanup.keep_remote_branches | bool | true | Don't delete branches that exist on remote |
resources¶
Controls resource monitoring and cost tracking.
| Key | Type | Default | Description |
|---|---|---|---|
resources.cost_warning_threshold | float | 5.00 | Warn when cost exceeds this (USD) |
resources.cost_limit | float | 0 | Pause all instances at this cost (0 = no limit) |
resources.token_limit_per_instance | int | 0 | Token limit per instance (0 = no limit) |
resources.show_metrics_in_sidebar | bool | true | Show metrics in TUI sidebar |
resources:
cost_warning_threshold: 5.00
cost_limit: 0
token_limit_per_instance: 0
show_metrics_in_sidebar: true
session¶
Controls session behavior.
| Key | Type | Default | Description |
|---|---|---|---|
session.auto_start_on_add | bool | true | Automatically start instances when added via TUI |
When enabled, instances added via :a in the TUI will automatically start instead of remaining in pending state. Disable this if you prefer to manually start instances with :s.
ultraplan¶
Controls ultra-plan mode behavior.
| Key | Type | Default | Description |
|---|---|---|---|
ultraplan.max_parallel | int | 3 | Maximum concurrent child sessions (0 = unlimited) |
ultraplan.notifications.enabled | bool | true | Play notifications when user input needed |
ultraplan.notifications.use_sound | bool | false | Use system sound (macOS only) |
ultraplan.notifications.sound_path | string | "" | Custom sound file path (macOS only) |
Why limit parallelism? - Anthropic API rate limits can throttle many parallel requests - Each parallel session incurs API costs - More sessions = higher merge conflict risk during consolidation - Easier to monitor fewer concurrent sessions
tripleshot¶
Controls TripleShot mode behavior.
| Key | Type | Default | Description |
|---|---|---|---|
tripleshot.auto_approve | bool | false | Automatically apply the winning solution |
tripleshot.adversarial | bool | false | Enable adversarial review for each implementer |
adversarial mode:
When tripleshot.adversarial is enabled, each of the three implementers is paired with a critical reviewer. An implementation isn't considered complete until its reviewer approves the work (score >= 8/10). This creates higher-quality solutions but takes longer and uses more API calls.
adversarial¶
Controls adversarial review mode behavior.
| Key | Type | Default | Description |
|---|---|---|---|
adversarial.max_iterations | int | 10 | Maximum implement-review cycles (0 = unlimited) |
adversarial.min_passing_score | int | 8 | Minimum score (1-10) required for approval |
plan¶
Controls Plan mode behavior.
| Key | Type | Default | Description |
|---|---|---|---|
plan.output_format | string | "issues" | Output format: json, issues, or both |
plan.multi_pass | bool | false | Enable multi-pass planning by default |
plan.labels | []string | [] | Default labels for GitHub Issues |
plan.output_file | string | ".claudio-plan.json" | Default output filename |
plan:
output_format: issues
multi_pass: false
labels:
- claudio-generated
output_file: .claudio-plan.json
experimental¶
Controls experimental features that may change or be removed. These features are disabled by default.
| Key | Type | Default | Description |
|---|---|---|---|
experimental.intelligent_naming | bool | false | Use Claude (Anthropic API) to generate short, descriptive instance names |
experimental.triple_shot | bool | false | Spawn three parallel instances and select the best solution |
experimental.inline_plan | bool | false | Enable :multiplan command in the TUI (:plan is always available) |
experimental.inline_ultraplan | bool | false | Enable :ultraplan command in the TUI |
experimental.grouped_instance_view | bool | false | Enable visual group organization in the sidebar |
Feature descriptions:
| Feature | Description |
|---|---|
intelligent_naming | Uses Claude (Anthropic API) to generate short, descriptive instance names for the sidebar based on the task and Claude's initial output. Requires ANTHROPIC_API_KEY. |
triple_shot | Spawns three parallel instances working on the same problem, then uses a judge instance to evaluate and select the best solution. |
inline_plan | Enables the :multiplan command in the standard TUI for multi-pass planning with 3 planners + assessor. The :plan command is always available without this setting. |
inline_ultraplan | Enables the :ultraplan command in the standard TUI, allowing you to start an UltraPlan workflow with parallel task execution. |
grouped_instance_view | Organizes instances visually by execution group in the TUI sidebar. Related tasks are grouped together, with sub-groups for dependency chains. |
experimental:
intelligent_naming: false
triple_shot: false
inline_plan: false # enables :multiplan; :plan is always available
inline_ultraplan: false
grouped_instance_view: false
See the Inline Planning Guide for detailed usage of inline planning features.
Environment Variables¶
All options can be set via environment variables:
Format: CLAUDIO_<SECTION>_<KEY>
Replace dots with underscores and use uppercase:
| Config Key | Environment Variable |
|---|---|
completion.default_action | CLAUDIO_COMPLETION_DEFAULT_ACTION |
branch.prefix | CLAUDIO_BRANCH_PREFIX |
branch.include_id | CLAUDIO_BRANCH_INCLUDE_ID |
pr.draft | CLAUDIO_PR_DRAFT |
pr.use_ai | CLAUDIO_PR_USE_AI |
resources.cost_limit | CLAUDIO_RESOURCES_COST_LIMIT |
ultraplan.max_parallel | CLAUDIO_ULTRAPLAN_MAX_PARALLEL |
paths.worktree_dir | CLAUDIO_PATHS_WORKTREE_DIR |
experimental.inline_plan | CLAUDIO_EXPERIMENTAL_INLINE_PLAN |
experimental.inline_ultraplan | CLAUDIO_EXPERIMENTAL_INLINE_ULTRAPLAN |
experimental.grouped_instance_view | CLAUDIO_EXPERIMENTAL_GROUPED_INSTANCE_VIEW |
Priority: Environment variables override config file values.
iOS Development Example¶
Recommended configuration for iOS projects using Xcode:
# ~/.config/claudio/config.yaml
# iOS builds can take a while - extend timeout
instance:
activity_timeout_minutes: 45
completion_timeout_minutes: 120
# Parallel instances can overwhelm Xcode builds
ultraplan:
max_parallel: 2
# iOS PRs often need specific reviewers
pr:
reviewers:
default: [ios-lead]
by_path:
"*.swift": [ios-team]
"*.xib": [ios-team]
"*.storyboard": [ios-team]
"*.xcconfig": [ios-team, devops]
"Podfile*": [ios-team, devops]
"Package.swift": [ios-team]
# iOS builds are resource-intensive
resources:
cost_warning_threshold: 10.00
# Optional: Use fast SSD for worktrees (faster builds)
# paths:
# worktree_dir: /Volumes/FastSSD/claudio-worktrees
# Optional: Sparse checkout for iOS in a large monorepo
# paths:
# sparse_checkout:
# enabled: true
# directories:
# - "ios/"
# - "shared/"
# always_include:
# - "scripts/"
# - ".github/"
# cone_mode: true
See the iOS Development Tutorial for comprehensive guidance.
Complete Example¶
# ~/.config/claudio/config.yaml
# What to do when instance completes
completion:
default_action: prompt
# TUI settings
tui:
auto_focus_on_input: true
max_output_lines: 1000
# Instance process settings
instance:
output_buffer_size: 100000
capture_interval_ms: 100
tmux_width: 200
tmux_height: 50
# Branch naming
branch:
prefix: claudio
include_id: true
# Pull request settings
pr:
draft: false
auto_rebase: true
use_ai: true
auto_pr_on_stop: false
labels:
- ai-generated
reviewers:
default: []
by_path:
"src/api/**": [backend-team]
"src/frontend/**": [frontend-team]
# File paths
paths:
worktree_dir: "" # Default: .claudio/worktrees
# Cleanup behavior
cleanup:
warn_on_stale: true
keep_remote_branches: true
# Resource limits
resources:
cost_warning_threshold: 5.00
cost_limit: 0
token_limit_per_instance: 0
show_metrics_in_sidebar: true
# Ultra-plan settings
ultraplan:
max_parallel: 3
notifications:
enabled: true
use_sound: false
# Experimental features (disabled by default)
experimental:
intelligent_naming: false
triple_shot: false
inline_plan: false
inline_ultraplan: false
grouped_instance_view: false
Validation¶
View and validate your configuration:
# Show current config (validates syntax)
claudio config show
# Check config file path
claudio config path
If configuration is invalid, Claudio falls back to defaults and shows an error.