cascade.yaml reference
The per-project config lives at the root of your repo as cascade.yaml. Created by cascade init.
Full example
Section titled “Full example”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"Fields
Section titled “Fields”version
Section titled “version”Config schema version. Currently always 1. Cascade refuses to load configs with an unknown version.
LLM behavior for this project.
| Field | Type | Default | Description |
|---|---|---|---|
provider | string | anthropic | Which LLM provider to use |
model | string | claude-opus-4-7 | Model identifier |
max_iterations | int | 1 | How many review-comment rounds the agent will run on a PR before giving up |
temperature | float | 0.2 | Sampling temperature; lower is more deterministic |
memory
Section titled “memory”Team memory layer settings.
| Field | Type | Default | Description |
|---|---|---|---|
path | string | team-memory | Directory containing the memory files |
max_chars_per_call | int | 20000 | Truncates politely if memory exceeds this |
What Cascade is allowed to modify.
| Field | Type | Default | Description |
|---|---|---|---|
allowed | list of globs | src/**, tests/**, docs/** | Cascade may write to matching paths |
disallowed | list of globs | .github/**, migrations/**, cascade.yaml, team-memory/** | Cascade never writes here. Deny wins over allow. |
language
Section titled “language”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.
test_command
Section titled “test_command”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 --covtest_command: npm run test:unittest_command: go test -race ./...If null, Cascade uses the language profile’s default.
Precedence
Section titled “Precedence”For each setting, Cascade resolves the value in this order (highest wins):
- CLI flag on the command (e.g.,
--language go) - Project-level
cascade.yaml - User-level
~/.config/cascade/config.yaml - Hardcoded defaults
Where to put what
Section titled “Where to put what”| Setting | Belongs 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 repo | cascade.yaml |
| Path allowlists for this repo | cascade.yaml |
| Test command for this repo | cascade.yaml |
| Per-call overrides | CLI flags |