8.6 KiB
8.6 KiB
Claude Code CLI Startup Flags Reference
A comprehensive reference of all available command-line flags when launching Claude Code from the terminal.
| ← Back to Claude Code Best Practice |
Table of Contents
- Session Management
- Model & Configuration
- Permissions & Security
- Output & Format
- System Prompt
- Agent & Subagent
- MCP & Plugins
- Directory & Workspace
- Budget & Limits
- Integration
- Initialization & Maintenance
- Debug & Diagnostics
- Settings Override
- Version & Help
- Subcommands
- Environment Variables
Session Management
| Flag | Short | Description |
|---|---|---|
--continue |
-c |
Continue the most recent conversation in the current directory |
--resume |
-r |
Resume a specific session by ID or name, or show interactive picker |
--from-pr <NUMBER|URL> |
Resume sessions linked to a specific GitHub PR | |
--fork-session |
Create a new session ID when resuming (use with --resume or --continue) |
|
--session-id <UUID> |
Use a specific session ID (must be valid UUID) | |
--no-session-persistence |
Disable session persistence (print mode only) | |
--remote |
Create a new web session on claude.ai | |
--teleport |
Resume a web session in your local terminal |
Model & Configuration
| Flag | Short | Description |
|---|---|---|
--model <NAME> |
Set model with alias (sonnet, opus, haiku) or full model ID |
|
--fallback-model <NAME> |
Auto-fallback model when default is overloaded (print mode only) | |
--betas <LIST> |
Beta headers to include in API requests (API key users only) |
Permissions & Security
| Flag | Short | Description |
|---|---|---|
--dangerously-skip-permissions |
Skip ALL permission prompts. Use with extreme caution | |
--allow-dangerously-skip-permissions |
Enable permission bypassing as an option without activating it | |
--permission-mode <MODE> |
Begin in specified permission mode: default, plan, acceptEdits, bypassPermissions |
|
--allowedTools <TOOLS> |
Tools that execute without prompting (permission rule syntax) | |
--disallowedTools <TOOLS> |
Tools removed from model context entirely | |
--tools <TOOLS> |
Restrict which built-in tools Claude can use (use "" to disable all) |
|
--permission-prompt-tool <TOOL> |
Specify MCP tool to handle permission prompts in non-interactive mode |
Output & Format
| Flag | Short | Description |
|---|---|---|
--print |
-p |
Print response without interactive mode (headless/SDK mode) |
--output-format <FORMAT> |
Output format: text, json, stream-json |
|
--input-format <FORMAT> |
Input format: text, stream-json |
|
--json-schema <SCHEMA> |
Get validated JSON matching schema (print mode only) | |
--include-partial-messages |
Include partial streaming events (requires --print and --output-format=stream-json) |
|
--verbose |
Enable verbose logging with full turn-by-turn output |
System Prompt
| Flag | Short | Description |
|---|---|---|
--system-prompt <TEXT> |
Replace entire system prompt with custom text | |
--system-prompt-file <PATH> |
Load system prompt from file, replacing default (print mode only) | |
--append-system-prompt <TEXT> |
Append custom text to default system prompt | |
--append-system-prompt-file <PATH> |
Append file contents to default prompt (print mode only) |
Agent & Subagent
| Flag | Short | Description |
|---|---|---|
--agent <NAME> |
Specify an agent for the current session | |
--agents <JSON> |
Define custom subagents dynamically via JSON | |
--teammate-mode <MODE> |
Set agent team display: auto, in-process, tmux |
MCP & Plugins
| Flag | Short | Description |
|---|---|---|
--mcp-config <PATH|JSON> |
Load MCP servers from JSON file or string | |
--strict-mcp-config |
Only use MCP servers from --mcp-config, ignore all others |
|
--plugin-dir <PATH> |
Load plugins from directory for this session only (repeatable) |
Directory & Workspace
| Flag | Short | Description |
|---|---|---|
--add-dir <PATH> |
Add additional working directories for Claude to access | |
--worktree |
-w |
Start Claude in an isolated git worktree (branched from HEAD) |
Budget & Limits
| Flag | Short | Description |
|---|---|---|
--max-budget-usd <AMOUNT> |
Maximum dollar amount for API calls before stopping (print mode only) | |
--max-turns <NUMBER> |
Limit number of agentic turns (print mode only) |
Integration
| Flag | Short | Description |
|---|---|---|
--chrome |
Enable Chrome browser integration for web automation | |
--no-chrome |
Disable Chrome browser integration for this session | |
--ide |
Automatically connect to IDE on startup if exactly one valid IDE available |
Initialization & Maintenance
| Flag | Short | Description |
|---|---|---|
--init |
Run initialization hooks and start interactive mode | |
--init-only |
Run initialization hooks and exit (no interactive session) | |
--maintenance |
Run maintenance hooks and exit |
Debug & Diagnostics
| Flag | Short | Description |
|---|---|---|
--debug <CATEGORIES> |
Enable debug mode with optional category filtering (e.g., "api,hooks") |
Settings Override
| Flag | Short | Description |
|---|---|---|
--settings <PATH|JSON> |
Path to settings JSON file or JSON string to load | |
--setting-sources <LIST> |
Comma-separated list of sources to load: user, project, local |
|
--disable-slash-commands |
Disable all skills and slash commands for this session |
Version & Help
| Flag | Short | Description |
|---|---|---|
--version |
-v |
Output the version number |
--help |
-h |
Show help information |
Subcommands
These are not flags but top-level subcommands run as claude <subcommand>:
| Subcommand | Description |
|---|---|
claude |
Start interactive REPL |
claude "query" |
Start REPL with initial prompt |
claude update |
Update to latest version |
claude mcp |
Configure MCP servers (add, remove, list, get, enable) |
claude doctor |
Run diagnostics from the command line |
Environment Variables
These environment variables modify Claude Code behavior at startup:
| Variable | Description |
|---|---|
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 |
Enable experimental agent teams |
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
Disable experimental beta features |
CLAUDE_CODE_TMPDIR |
Override temp directory for internal files |
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS |
Disable background task functionality |
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 |
Enable additional directory CLAUDE.md loading |
DISABLE_AUTOUPDATER=1 |
Disable auto-updates |
MAX_THINKING_TOKENS |
Limit thinking token budget (set to 0 to disable) |
CLAUDE_CODE_EFFORT_LEVEL |
Control thinking depth: low, medium, high |
USE_BUILTIN_RIPGREP=0 |
Use system ripgrep instead of built-in (Alpine Linux) |
CLAUDE_CODE_ENABLE_TASKS=false |
Disable new task management system, revert to old todos |
CLAUDE_CODE_SHELL |
Override automatic shell detection |
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS |
Override default file read token limit |
CLAUDE_CODE_EXIT_AFTER_STOP_DELAY |
Auto-exit SDK mode after idle duration (ms) |
CLAUDE_CODE_SIMPLE |
Enable simple mode (Bash + Edit tools only) |
CLAUDE_BASH_NO_LOGIN=1 |
Skip login shell for BashTool |