Skip to content

cascade.yaml reference

The per-project config lives at the root of your repo as cascade.yaml. Created by cascade init.

version: 1
agent:
provider: anthropic # anthropic | openai | google | claude_code | ollama
model: claude-opus-4-7
max_iterations: 1 # 0-5; how many PR-comment iteration rounds
temperature: 0.2 # 0.0-2.0
memory:
path: team-memory # relative to repo root
max_chars_per_call: 20000 # cap on team-memory chars per LLM call
paths:
allowed: # globs Cascade IS allowed to write
- "src/**"
- "tests/**"
- "docs/**"
disallowed: # globs Cascade is NEVER allowed to write (deny wins)
- ".github/**"
- "migrations/**"
- "cascade.yaml"
- "team-memory/**"
language: null # null = auto-detect; or python/typescript/go/...
test_command: null # null = use language profile's default; or "pytest -xvs"

Config schema version. Currently always 1. Cascade refuses to load configs with an unknown version.

LLM behavior for this project.

FieldTypeDefaultDescription
providerstringanthropicWhich LLM provider to use
modelstringclaude-opus-4-7Model identifier
max_iterationsint1How many review-comment rounds the agent will run on a PR before giving up
temperaturefloat0.2Sampling temperature; lower is more deterministic

Team memory layer settings.

FieldTypeDefaultDescription
pathstringteam-memoryDirectory containing the memory files
max_chars_per_callint20000Truncates politely if memory exceeds this

What Cascade is allowed to modify.

FieldTypeDefaultDescription
allowedlist of globssrc/**, tests/**, docs/**Cascade may write to matching paths
disallowedlist of globs.github/**, migrations/**, cascade.yaml, team-memory/**Cascade never writes here. Deny wins over allow.

Optional explicit language override. If null (or omitted), Cascade auto-detects from marker files in the repo root.

Supported: python, typescript, javascript, go, rust, java, ruby, csharp.

Optional override for the language profile’s default test command. Useful if your project uses a non-standard test runner.

Examples:

test_command: pytest -xvs --cov
test_command: npm run test:unit
test_command: go test -race ./...

If null, Cascade uses the language profile’s default.

For each setting, Cascade resolves the value in this order (highest wins):

  1. CLI flag on the command (e.g., --language go)
  2. Project-level cascade.yaml
  3. User-level ~/.config/cascade/config.yaml
  4. Hardcoded defaults
SettingBelongs in
API keys, tokens~/.config/cascade/config.yaml (managed via cascade configure)
Default LLM provider for this user~/.config/cascade/config.yaml
Language override for this repocascade.yaml
Path allowlists for this repocascade.yaml
Test command for this repocascade.yaml
Per-call overridesCLI flags