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​