Skip to main content

CLI Reference

Complete reference for Claude Code command-line interface.

Global Options

Options available for all commands:

OptionDescriptionDefault
--versionShow version number-
--helpShow help-
--verboseEnable verbose outputfalse
--quietSuppress non-error outputfalse
--no-colorDisable colored outputfalse
--config <path>Use custom config file~/.claude/settings.json

Starting Claude

Basic Usage

claude [options]

Options

OptionDescriptionExample
-p, --prompt <text>Start with a promptclaude -p "Review this code"
-m, --model <model>Set modelclaude -m opus
--dangerously-skip-permissionsSkip all permission promptsclaude --dangerously-skip-permissions
--allowed-tools <tools>Pre-allow toolsclaude --allowed-tools Edit,Bash
--add-dir <path>Add additional directoryclaude --add-dir ../shared
--no-cacheDisable context cachingclaude --no-cache
--output-format <format>Set output formatclaude --output-format json

Examples

# Start with a specific model
claude --model sonnet

# Start with pre-allowed tools
claude --allowed-tools "Edit,Read,Bash(git:*)"

# Non-interactive mode
claude -p "Fix all ESLint errors" --output-format stream-json

Slash Commands

Commands available during a Claude session:

Session Management

CommandDescriptionUsage
/helpShow all commands/help
/clearClear conversation context/clear
/exitExit Claude Code/exit
/restartRestart Claude session/restart

Model & Configuration

CommandDescriptionUsage
/model [model]Show/change model/model opus
/modelsList available models/models
/configShow configuration/config
/settingsEdit settings/settings

Permissions

CommandDescriptionUsage
/permissionsManage tool permissions/permissions
/allow <tool>Allow a tool/allow Edit
/deny <tool>Deny a tool/deny Bash
/reset-permissionsReset all permissions/reset-permissions

Context Management

CommandDescriptionUsage
/contextShow context usage/context
/memoryManage CLAUDE.md files/memory
/memory loadReload memory files/memory load
/memory editEdit memory inline/memory edit

Directory Management

CommandDescriptionUsage
/add-dir <path>Add directory/add-dir ../lib
/remove-dir <path>Remove directory/remove-dir ../lib
/dirsList directories/dirs

MCP Servers

CommandDescriptionUsage
/mcp listList MCP servers/mcp list
/mcp add <name>Add MCP server/mcp add github
/mcp remove <name>Remove MCP server/mcp remove github
/mcp restart <name>Restart MCP server/mcp restart think-tool

Advanced Commands

CommandDescriptionUsage
/install-github-appInstall GitHub integration/install-github-app
/exportExport conversation/export conversation.md
/importImport conversation/import saved-chat.json
/statsShow session statistics/stats

MCP Management

List Servers

claude mcp list

Output:

Available MCP servers:
✓ filesystem (local)
✓ github (http)
✗ think-tool (not installed)

Add Server

claude mcp add [options] <name> <command...>

Options:

  • --transport <type> - Transport type (local/http)
  • --env <key=value> - Environment variables

Examples:

# Local server
claude mcp add sequential-thinking npx @modelcontextprotocol/server-sequential-thinking

# HTTP server
claude mcp add --transport http github https://api.githubcopilot.com/mcp/

# With environment variables
claude mcp add --env API_KEY=$SECRET_KEY custom-server ./server.js

Remove Server

claude mcp remove <name>

Configure Server

claude mcp config <name> [key] [value]

Examples:

# Show config
claude mcp config github

# Set value
claude mcp config github timeout 30000

Configuration Management

View Configuration

claude config show [key]

Examples:

# Show all config
claude config show

# Show specific key
claude config show defaultModel

Set Configuration

claude config set <key> <value>

Examples:

claude config set defaultModel opus
claude config set autoSave true
claude config set theme dark

Reset Configuration

claude config reset [key]

Tool Permission Syntax

Basic Syntax

ToolName
ToolName(command:pattern)

Examples

PermissionDescription
EditAllow all file edits
ReadAllow all file reads
BashAllow all bash commands
Bash(ls:*)Allow only ls commands
Bash(git:*)Allow only git commands
Bash(npm install:*)Allow only npm install
Write(*.md)Allow writing markdown files
Edit(src/*:*)Allow editing files in src/

Complex Patterns

# Multiple patterns
claude --allowed-tools "Bash(ls:*),Bash(cat:*),Edit(*.js)"

# Glob patterns
claude --allowed-tools "Edit(src/**/*.ts)"

# Negation
claude --allowed-tools "Edit,!Edit(*.env)"

Environment Variables

VariableDescriptionDefault
ANTHROPIC_API_KEYAPI keyRequired
CLAUDE_MODELDefault modelsonnet
CLAUDE_NO_COLORDisable colorsfalse
CLAUDE_CACHE_DIRCache directory~/.claude/cache
CLAUDE_LOG_LEVELLog levelinfo
CLAUDE_TIMEOUTRequest timeout300000
HTTP_PROXYHTTP proxy-
HTTPS_PROXYHTTPS proxy-

Output Formats

Stream (Default)

Normal interactive output.

JSON

claude -p "List files" --output-format json

Output:

{
"messages": [...],
"tools_used": ["LS"],
"result": "success"
}

Stream JSON

claude -p "Write a function" --output-format stream-json

Outputs newline-delimited JSON events.

Error Codes

CodeDescriptionSolution
1General errorCheck error message
2Authentication failedVerify API key
3Network errorCheck connection
4Permission deniedCheck file permissions
5Tool blockedReview permissions
6Context overflowClear context
7Model unavailableTry different model

Keyboard Shortcuts

ShortcutAction
TabAutocomplete
Shift+TabToggle Plan Mode
Ctrl+CCancel current operation
Ctrl+DExit Claude
Ctrl+LClear screen
Ctrl+RSearch history
EscInterrupt Claude
Esc EscEdit last prompt
↑/↓Navigate history

Advanced Usage

Piping Input

# Pipe file content
cat script.js | claude -p "Explain this code"

# Pipe command output
git diff | claude -p "Summarize these changes"

Scripting

#!/bin/bash
# Automated code review
git diff main | claude -p "Review these changes for:
- Security issues
- Performance problems
- Best practices"

Headless Mode

# Run without interaction
claude -p "Generate README.md for this project" \
--dangerously-skip-permissions \
--output-format json \
> result.json

Next Steps