Non-Interactive Mode

cast run sends a single prompt, streams the response to stdout, and exits. Designed for CI/CD, scripting, and piping.

Usage

cast run "what changed in the last commit"
cast run --format json "list all TODO comments"
cast run -c "continue the refactoring"
cast run -m gpt-4o -r medium "explain the session module"

Output Formats

Default

Human-readable output streamed to stdout:

JSON

cast run --format json "analyze this codebase"

Structured JSON events, one per line (JSONL). Each event has:

{
  "type": "token",
  "timestamp": 1720000000000,
  "sessionID": "nd4k8f2x",
  "text": "Hello"
}

Event Types

TypeFieldsDescription
tokentextStreaming text chunk
thinkingtextReasoning/thinking content
assistant_messagecontent, toolCallsComplete assistant message
tool_startid, name, argsTool execution started
tool_endid, name, resultTool execution completed
doom_looptool, attemptsTool blocked after identical calls
usageusage, subagentToken/cost usage update
endreasonRun completed (stop, error, etc.)
errormessageError occurred

Flags

cast run accepts a subset of the main CLI flags:

FlagShortDescription
--continue-cContinue the most recent session
--session <id>-sContinue a specific session
--model <model>-mModel to use
--reasoning <level>-rReasoning level
--persona <name>-pPersona to use
--format <default|json>Output format
--bypass-permissionsSkip bash confirmation
--skill <path>Load extra skill
--no-skillsSkip project/agents/global/plugin/builtin skill discovery
--mcp <path>Load extra MCP config
--no-mcpSkip MCP discovery

The message is everything after the flags (no quoting required for single words, but shell quoting helps for multi-word messages).

Plan Mode

Plan tools are not available in non-interactive mode. However, if you resume a session that has an approved plan (cast run -c "..."), the plan is injected into the build-mode system prompt to steer implementation.

Exit Code

Examples

# Pipe JSON output to jq
cast run --format json "list files in src/" | jq 'select(.type == "token") | .text' -r

# Use in a CI pipeline
cast run --bypass-permissions "run the test suite and report failures"

# Resume and continue
cast run -c "now implement the changes we discussed"