Skip to content

Config Schema

Complete reference for workstream.yaml.

Top-Level Structure

yaml
agent:       # Required — agent configuration
workstreams: # Optional — workstream definitions

agent

FieldTypeRequiredDefaultDescription
commandstringYesAgent binary name or absolute path
argsstring[]No[]Arguments passed before the prompt
envRecord<string, string>No{}Environment variables for the agent process
timeoutnumberNoKill agent after this many seconds
acceptAllbooleanNotrueAuto-inject accept flags for known agents

Auto-Injected Flags by Agent

CommandFlags
claude--dangerously-skip-permissions --output-format stream-json --verbose
codex--full-auto
aider--yes
Any otherNone

workstreams

Accepts either map or array format.

Map Format

yaml
workstreams:
  my-workstream:
    prompt: "Do something"
    base_branch: main

The map key becomes the workstream name.

Array Format

yaml
workstreams:
  - name: my-workstream
    prompt: "Do something"
    base_branch: main

Workstream Fields

FieldTypeRequiredDefaultDescription
namestringYes (array) / No (map)Map keyUnique identifier. Branch: ws/<name>
promptstringNoInstructions for the agent. Omit for manual workspace
base_branchstringNoHEADGit ref to base the worktree on
baseBranchstringNoHEADAlias for base_branch

Minimal Config

yaml
agent:
  command: claude

workstreams:
  my-task:
    prompt: "Implement the feature"

Full Config

yaml
agent:
  command: claude
  args: [-p]
  env:
    ANTHROPIC_MODEL: claude-sonnet-4-20250514
  timeout: 600
  acceptAll: true

workstreams:
  add-tests:
    prompt: "Add unit tests for src/api/"
    base_branch: main
  dark-mode:
    prompt: "Implement dark mode toggle"
    base_branch: develop
  sandbox:
    # No prompt — workspace only

Validation Rules

  • agent.command must be present and non-empty
  • Workstream names must be non-empty strings
  • No duplicate workstream names allowed
  • Empty workstream entries (e.g., sandbox: with no fields) create prompt-less workspaces

Built with VitePress