cli-reference

Claude Code CLI commands, flags, headless mode, and automation patterns

INSTALLATION
npx skills add https://github.com/parcadei/continuous-claude-v3 --skill cli-reference
Run in your project or agent environment. Adjust flags if your CLI version differs.

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

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card