SKILL.md
CLI Reference
Complete reference for Claude Code command-line interface.
When to Use
- "What CLI flags are available?"
- "How do I use headless mode?"
- "Claude in automation/CI/CD"
- "Output format options"
- "System prompt via CLI"
- "How do I spawn agents properly?"
Core Commands
Command
Description
Example
claude
Start interactive REPL
claude
claude "query"
REPL with initial prompt
claude "explain this project"
claude -p "query"
Headless mode (SDK)
claude -p "explain function"
cat file | claude -p
Process piped content
cat logs.txt | claude -p "explain"
claude -c
Continue most recent
claude -c
claude -c -p "query"
Continue via SDK
claude -c -p "check types"
claude -r "id" "query"
Resume session
claude -r "auth" "finish PR"
claude update
Update version
claude update
claude mcp
Configure MCP servers
See MCP docs
Session Control
Flag
Description
Example
--continue, -c
Load most recent conversation
claude --continue
--resume, -r
Resume session by ID/name
claude --resume auth-refactor
--session-id
Use specific UUID
claude --session-id "550e8400-..."
--fork-session
Create new session on resume
claude --resume abc --fork-session
Headless Mode (Critical for Agents)
Flag
Description
Example
--print, -p
Non-interactive, exit after
claude -p "query"
--output-format
text, json, stream-json
claude -p --output-format json
--max-turns
Limit agentic turns
claude -p --max-turns 100 "query"
--verbose
Full turn-by-turn output
claude --verbose
--dangerously-skip-permissions
Skip permission prompts
claude -p --dangerously-skip-permissions
--include-partial-messages
Include streaming events
claude -p --output-format stream-json --include-partial-messages
--input-format
Input format (text/stream-json)
claude -p --input-format stream-json
Tool Control
Flag
Description
Example
--allowedTools
Auto-approve these tools
"Bash(git log:*)" "Read"
--disallowedTools
Block these tools
"Bash(rm:*)" "Edit"
--tools
Only allow these tools
--tools "Bash,Edit,Read"
Subagent Definition (--agents flag)
Define custom subagents inline via JSON:
claude --agents '{
"code-reviewer": {
"description": "Expert code reviewer. Use proactively after code changes.",
"prompt": "You are a senior code reviewer. Focus on code quality and security.",
"tools": ["Read", "Grep", "Glob", "Bash"],
"model": "sonnet"
},
"debugger": {
"description": "Debugging specialist for errors and test failures.",
"prompt": "You are an expert debugger. Analyze errors and provide fixes."
}
}'
Agent Fields
Field
Required
Description
description
Yes
When to invoke this agent
prompt
Yes
System prompt for behavior
tools
No
Allowed tools (inherits all if omitted)
model
No
sonnet, haiku, or claude-opus-4-5-20251101
Key Insight
When Lead uses Task tool, it auto-spawns from these definitions. No manual spawn needed.
System Prompt Customization
Flag
Behavior
Modes
--system-prompt
Replace entire prompt
Interactive + Print
--system-prompt-file
Replace from file
Print only
--append-system-prompt
Append to default (recommended)
Interactive + Print
**Use --append-system-prompt** for most cases - preserves Claude Code capabilities.
Model Selection
Flag
Description
Example
--model
Set model for session
--model claude-sonnet-4-5
--fallback-model
Fallback if default overloaded
--fallback-model sonnet
Aliases: sonnet, opus, haiku
MCP Configuration
Flag
Description
Example
--mcp-config
Load MCP servers from JSON
--mcp-config ./mcp.json
--strict-mcp-config
Only use these MCP servers
--strict-mcp-config --mcp-config ./mcp.json
Advanced Flags
Flag
Description
Example
--add-dir
Add working directories
--add-dir ../apps ../lib
--agent
Specify agent for session
--agent my-custom-agent
--permission-mode
Start in permission mode
--permission-mode plan
--permission-prompt-tool
MCP tool for permissions
--permission-prompt-tool mcp_auth
--plugin-dir
Load plugins from directory
--plugin-dir ./my-plugins
--settings
Load settings from file/JSON
--settings ./settings.json
--setting-sources
Which settings to load
--setting-sources user,project
--betas
Beta API headers
--betas interleaved-thinking
--debug
Enable debug mode
--debug "api,hooks"
--ide
Auto-connect to IDE
--ide
--chrome
Enable Chrome integration
--chrome
--no-chrome
Disable Chrome for session
--no-chrome
--enable-lsp-logging
Verbose LSP debugging
--enable-lsp-logging
--version, -v
Output version
claude -v
Output Formats
JSON (for parsing)
claude -p "query" --output-format json
# {"result": "...", "session_id": "...", "usage": {...}}
Streaming (for real-time monitoring)
claude -p "query" --output-format stream-json
# Newline-delimited JSON events
Structured Output (schema validation)
claude -p "Extract data" \
--output-format json \
--json-schema '{"type":"object","properties":{...}}'
Headless Agent Pattern (CRITICAL)
Proper headless agent spawn:
claude -p "$TASK_PROMPT" \
--session-id "$UUID" \
--dangerously-skip-permissions \
--max-turns 100 \
--output-format stream-json \
--agents '{...}' \
--append-system-prompt "Context: ..."
Missing any of these causes hangs:
--session-id- Track the session
--dangerously-skip-permissions- Headless requires this
--max-turns- Prevents infinite loops
Common Patterns
CI/CD Automation
claude -p "Run tests and fix failures" \
--dangerously-skip-permissions \
--max-turns 50 \
--output-format json | jq '.result'
Piped Input
cat error.log | claude -p "Find root cause"
gh pr diff | claude -p "Review for security"
Multi-turn Session
id=$(claude -p "Start task" --output-format json | jq -r '.session_id')
claude -p "Continue" --resume "$id"
Stream Monitoring
claude -p "Long task" \
--output-format stream-json \
--include-partial-messages | while read -r line; do
echo "$line" | jq '.type'
done
Keyboard Shortcuts (Interactive)
Shortcut
Action
Ctrl+C
Cancel current
Ctrl+D
Exit
Ctrl+R
Reverse search history
Esc Esc
Rewind changes
Shift+Tab
Toggle permission mode
Quick Commands
Prefix
Action
/
Slash command
!
Bash mode
#
Add to memory
@
File mention