Skip to content

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:

claudio config init

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
completion:
  default_action: prompt

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
tui:
  auto_focus_on_input: true
  max_output_lines: 1000
  sidebar_width: 36
  theme: default

Color Themes

Claudio includes 14 built-in color themes. Set your theme via config:

tui:
  theme: dracula  # or: monokai, nord, claude-code, etc.

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)

branch:
  prefix: claudio
  include_id: true

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
pr:
  template: |
    ## Summary
    {{.Summary}}

    ## Changes
    {{.Changes}}

    ## Testing
    {{.Testing}}

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
logging:
  enabled: true
  level: info
  max_size_mb: 10
  max_backups: 3

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
cleanup:
  warn_on_stale: true
  keep_remote_branches: true

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
session:
  auto_start_on_add: true

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

ultraplan:
  max_parallel: 3
  notifications:
    enabled: true
    use_sound: false
    sound_path: ""

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
tripleshot:
  auto_approve: false
  adversarial: false

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
adversarial:
  max_iterations: 10
  min_passing_score: 8

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.