Skip to content

CLI commands

Terminal window
cascade [GLOBAL OPTIONS] COMMAND [COMMAND OPTIONS]
OptionDescription
--versionPrint the version and exit
-v, --verboseEnable debug-level logs (stderr)
-q, --quietSuppress animated progress output. Useful in CI and scripted runs.
--helpShow help and exit

Scaffold cascade.yaml and the team-memory/ directory in the current repo. Run this once per project.

Terminal window
cascade init [--force] [--no-seed]
OptionDescription
--forceOverwrite existing files if present
--no-seedUse bare templates instead of language-aware seeded content. By default, team-memory files are pre-seeded based on the detected language.

Manage credentials and defaults at ~/.config/cascade/config.yaml.

Terminal window
cascade configure show
cascade configure llm <provider> [OPTIONS]
cascade configure vcs <provider> [OPTIONS]
cascade configure issue <provider> [OPTIONS]

configure show prints the effective config with secrets masked. Safe to share for debugging.

configure llm <provider> sets up an LLM provider.

OptionDescription
--key TEXTAPI key for the provider
--model TEXTDefault model identifier
--base-url URLOverride the API base URL (for Azure, self-hosted, OpenRouter)
--set-defaultMake this the default LLM provider for all commands

Supported providers: anthropic, openai, google, claude_code, ollama.

configure vcs <provider> sets up a version control provider.

OptionDescription
--token TEXTAccess token
--base-url URLOverride the API base URL (for self-hosted GitHub Enterprise, GitLab)
--organization TEXTOrganization name (required for Azure DevOps)
--set-defaultMake this the default VCS provider

Supported providers: github, gitlab, bitbucket, azure_devops.

configure issue <provider> sets up an issue tracker.

OptionDescription
--token TEXTAccess token
--base-url URLAPI base URL (required for Jira)
--user TEXTUsername or email (required for Jira)
--set-defaultMake this the default issue source

Supported providers: github, jira, linear, azure_devops, gitlab.

Health-check the install and report status of every component.

Terminal window
cascade doctor [--repo-root PATH]
OptionDescription
--repo-root PATHRepo to check. Defaults to the current directory.

Runs roughly eleven checks: Python version, optional extras (whisper, ollama-sdk, etc.), git, cascade.yaml, team memory files, language detection, LLM credentials, VCS credentials, test runner availability. Reports each as OK / WARN / FAIL with an actionable suggestion for anything not OK.

Exit codes:

  • 0 if all checks passed (warnings allowed)
  • 1 if one or more checks failed

Run the built-in toy story end-to-end to verify the install works. Creates a disposable Python project in a temp directory, asks Cascade to add a hello() function and a test, runs the test, reports the result. Touches nothing in your real repos.

Terminal window
cascade try [--keep-workspace]
OptionDescription
--keep-workspaceDo not delete the temp directory after the run. Useful for inspecting what Cascade generated.

This is the recommended thing to run right after cascade configure to verify your setup will work before you bet a real repo on it. Takes ~30 seconds; costs a few cents on a paid LLM.

Exit codes:

  • 0 if the toy run passed (LLM call worked, tests passed)
  • 1 if anything failed

Transcribe an audio or video file into a structured transcript YAML. Requires the [ingest] extra (pip install "cascade-agent[ingest]").

Terminal window
cascade ingest <source> [OPTIONS]
OptionDescription
-o, --output FILEWhere to write the transcript. Defaults to transcripts/{meeting_id}.yaml.
--backend NAMEauto (default), faster-whisper, local-whisper, openai-api
--model SIZEWhisper model size (tiny, base, small, medium, large). Default base.
--language CODEISO 639-1 language code (en, es, fr, etc.) to force, or omit for auto-detect
--no-diarizationSkip speaker identification (faster; all turns labeled “Speaker”)
--meeting-id TEXTOverride the generated meeting ID. Default: slug of the file name.

Extract user stories from a transcript YAML.

Terminal window
cascade extract <transcript_path> [OPTIONS]
OptionDescription
-o, --output FILEWhere to write the stories YAML. Default: stories/{meeting_id}.yaml.
--model TEXTOverride the configured LLM model for this call.

Walk through extracted stories interactively (accept / edit / reject / skip / quit).

Terminal window
cascade review <batch_path>

Decisions are saved after every action; safe to quit any time with Ctrl-C and resume later. The web equivalent is cascade ui.

Build directly from an ad-hoc prompt. The prompt is treated as an automatically-approved story.

Terminal window
cascade prompt "<text>" [OPTIONS]
OptionDescription
--language TEXTOverride the language profile (python, typescript, etc.)
--base-branch TEXTBranch to create the PR against. Default main.
--no-prStop after the local commit; do not push or open a PR. Useful for inspecting before pushing.
--repo-root PATHTarget repo path. Default: current directory.
--max-cost USDMaximum cumulative LLM cost before aborting. Has no effect on free providers (Claude Code, Ollama).
--model TEXTOverride the configured model for this call.

Build from a tracker ticket.

Terminal window
cascade ticket <provider:identifier> [OPTIONS]
OptionDescription
--language TEXTOverride the language profile
--base-branch TEXTBranch to create the PR against. Default main.
--no-prStop after the local commit
--repo-root PATHTarget repo path
--max-cost USDCost ceiling (see cascade prompt)

Run the full pipeline (plan, code, test, PR) on every approved story in a batch.

Terminal window
cascade build <batch_path> [OPTIONS]
OptionDescription
--story NBuild only the N-th approved story (1-indexed)
--language TEXTOverride the language profile
--base-branch TEXTBranch to create the PR against
--no-prStop after the local commit
--repo-root PATHTarget repo path
--max-cost USDCumulative cost ceiling across all stories in the batch

Show the pipeline state for the current repo (transcripts and story batches counted).

Terminal window
cascade status

Launch Cascade Studio (the bundled web dashboard) and open it in your browser.

Terminal window
cascade ui [--host HOST] [--port PORT] [--no-browser]
OptionDescription
--host TEXTHost to bind. Default 127.0.0.1. Use 0.0.0.0 to allow connections from other machines (no auth; only do this on a trusted network).
--port INTPort to bind. Default 8000.
--no-browserDo not auto-open a browser window.

Requires the [studio] extra (pip install "cascade-agent[studio]").

CodeMeaning
0Success
1Generic failure (CascadeError or unrecoverable error in a stage)
2cascade build aborted because --max-cost was exceeded
130Interrupted (Ctrl-C)

Cascade reads a small number of environment variables, mostly as fallbacks if a value is not in ~/.config/cascade/config.yaml.

VariableUsed forNotes
ANTHROPIC_API_KEYAnthropic providerFallback if not configured via cascade configure llm anthropic
OPENAI_API_KEYOpenAI providerFallback
GOOGLE_API_KEY or GEMINI_API_KEYGoogle GeminiFallback (either name works)
GITHUB_TOKEN or GH_TOKENGitHub VCS / issuesFallback
XDG_CONFIG_HOMEWhere cascade/config.yaml livesDefault: ~/.config
CASCADE_DEBUGSet to 1 to enable debug logging without -vUseful in CI when you cannot pass flags
Terminal window
cascade ingest recordings/standup.mp3
cascade extract transcripts/standup.yaml
cascade review stories/standup.yaml
cascade build stories/standup.yaml
Terminal window
cascade prompt "Add /health endpoint" --no-pr
git diff HEAD~1 HEAD
# happy with it:
git push -u origin $(git branch --show-current)
gh pr create --fill
# not happy:
git checkout main && git branch -D cascade/add-health-endpoint
Terminal window
for ticket in PROJ-{101..110}; do
cascade ticket "jira:$ticket" --max-cost 1.50 || break
done
Terminal window
cascade doctor
cascade try

Every command supports --help:

Terminal window
cascade --help
cascade build --help
cascade configure llm --help