CLI Reference
Claude Code provides a powerful command-line interface (CLI) that lets you interact with Claude directly from the terminal. This guide details all available CLI commands and options.
Installation and Setup
Install CLI
bash
# Install globally with npm
npm install -g @anthropic-ai/claude-code
# Or with yarn
yarn global add @anthropic-ai/claude-code
# Verify installation
claude --versionInitialize Configuration
bash
# Configure API key on first run
claude init
# Specify configuration file path
claude init --config ~/.claude/config.jsonCore Commands
claude chat
Start an interactive conversation session.
bash
# Basic usage
claude chat
# Specify model
claude chat --model claude-sonnet-4
# Use system prompt
claude chat --system "You are a Python expert"
# Load context from files
claude chat --context ./src/**/*.pyOptions:
--model, -m <model>- Specify model to use (default: claude-sonnet-4)--system, -s <prompt>- Set system prompt--context, -c <pattern>- Load files as context--max-tokens <number>- Set max output tokens--temperature <number>- Set temperature parameter (0.0-1.0)--stream- Enable streaming output (default on)--no-stream- Disable streaming output
claude ask
Send a single query and get a response.
bash
# Basic query
claude ask "How to read a JSON file in Python?"
# Include file context
claude ask "What's wrong with this code?" --file ./src/main.py
# Use pipe input
cat error.log | claude ask "Analyze this error log"
# Output to file
claude ask "Generate a React component" > Component.jsxOptions:
--file, -f <path>- Include file content as context--output, -o <path>- Save response to file--json- Output response in JSON format--quiet, -q- Quiet mode, only output response content
claude code
Work in codebase context.
bash
# Start code session in current directory
claude code
# Specify project directory
claude code --project ./my-app
# Auto-analyze codebase
claude code --analyze
# Execute specific task
claude code --task "Refactor auth module"Options:
--project, -p <path>- Specify project root directory--analyze- Auto-analyze codebase structure--task, -t <description>- Execute specific task--watch- Watch file changes--exclude <pattern>- Exclude file patterns
claude review
Code review functionality.
bash
# Review a single file
claude review ./src/api.ts
# Review entire directory
claude review ./src --recursive
# Review Git changes
claude review --git-diff
# Generate review report
claude review ./src --output review-report.mdOptions:
--recursive, -r- Recursively review subdirectories--git-diff- Review uncommitted Git changes--severity <level>- Set report severity level (info/warning/error)--format <type>- Output format (text/json/markdown)
claude test
Generate and run tests.
bash
# Generate tests for a file
claude test generate ./src/utils.ts
# Run tests and analyze failures
claude test analyze
# Fix failed tests
claude test fix --file ./tests/api.test.tsOptions:
generate- Generate test casesanalyze- Analyze test resultsfix- Fix failed tests--framework <name>- Specify test framework (jest/vitest/mocha)
claude refactor
Code refactoring tool.
bash
# Refactor function
claude refactor --function calculateTotal --file ./src/cart.ts
# Extract component
claude refactor --extract-component UserProfile --file ./src/App.tsx
# Rename variable
claude refactor --rename oldName:newName --file ./src/index.tsOptions:
--function <name>- Refactor specified function--extract-component <name>- Extract React component--rename <old:new>- Rename symbol--dry-run- Preview changes without applying
Configuration Management
claude config
Manage CLI configuration.
bash
# View current configuration
claude config list
# Set configuration item
claude config set api_key YOUR_API_KEY
claude config set default_model claude-sonnet-4
# Get configuration item
claude config get api_key
# Delete configuration item
claude config unset api_key
# Reset all configuration
claude config resetCommon configuration items:
api_key- Anthropic API keydefault_model- Default model to usemax_tokens- Default max tokenstemperature- Default temperature parametereditor- Preferred editortheme- CLI theme (light/dark)
Configuration File Locations
bash
# macOS/Linux
~/.config/claude/config.json
# Windows
%APPDATA%\claude\config.json
# Custom location
export CLAUDE_CONFIG_PATH=/path/to/config.jsonAdvanced Features
Using Prompt Templates
bash
# Create prompt template
claude template create code-review
# Use template
claude ask --template code-review --file ./src/api.ts
# List all templates
claude template list
# Edit template
claude template edit code-reviewSession Management
bash
# Save session
claude chat --save-session my-session
# Load session
claude chat --load-session my-session
# List all sessions
claude session list
# Delete session
claude session delete my-session
# Export session
claude session export my-session --output session.jsonBatch Processing Mode
bash
# Read multiple queries from file
claude batch --input queries.txt
# Parallel processing
claude batch --input queries.txt --parallel 5
# Output to directory
claude batch --input queries.txt --output-dir ./resultsEnvironment Variables
bash
# API key
export ANTHROPIC_API_KEY=your_api_key
# Custom configuration path
export CLAUDE_CONFIG_PATH=/path/to/config.json
# Default model
export CLAUDE_DEFAULT_MODEL=claude-sonnet-4
# Log level
export CLAUDE_LOG_LEVEL=debug
# Proxy settings
export HTTPS_PROXY=http://proxy.example.com:8080Output Formats
JSON Output
bash
# Get JSON format response
claude ask "What is a REST API?" --json
# Output example
{
"id": "msg_123",
"model": "claude-sonnet-4",
"content": "REST API is...",
"usage": {
"input_tokens": 15,
"output_tokens": 250
}
}Markdown Output
bash
# Generate Markdown documentation
claude ask "Create API documentation" --format markdown > API.mdDebugging and Logging
Enable Verbose Logging
bash
# Debug mode
claude --debug chat
# Specify log level
claude --log-level debug ask "Test query"
# Save logs to file
claude --log-file ./claude.log chatView Request Details
bash
# Show API request details
claude --verbose ask "Test"
# Output includes:
# - Request parameters
# - Response headers
# - Token usage
# - Response timePlugin System
Install Plugins
bash
# Install official plugin
claude plugin install @claude/git-tools
# Install community plugin
claude plugin install claude-plugin-docker
# Install from local
claude plugin install ./my-pluginManage Plugins
bash
# List installed plugins
claude plugin list
# Enable/disable plugins
claude plugin enable git-tools
claude plugin disable git-tools
# Update plugins
claude plugin update git-tools
# Uninstall plugins
claude plugin uninstall git-toolsPractical Examples
Code Generation Workflow
bash
# 1. Analyze requirements
claude ask "I need a user authentication API" --save-context
# 2. Generate code
claude code --task "Implement JWT authentication" --output ./src/auth
# 3. Generate tests
claude test generate ./src/auth/*.ts
# 4. Review code
claude review ./src/auth --format markdown > review.mdGit Integration Workflow
bash
# 1. Review changes
claude review --git-diff
# 2. Generate commit message
git diff | claude ask "Generate commit message" --quiet
# 3. Code review
claude review --git-diff --severity errorDocumentation Generation
bash
# Generate README
claude ask "Generate README for this project" \
--context "./src/**/*.ts" \
--output README.md
# Generate API documentation
claude ask "Generate API documentation" \
--file ./src/api.ts \
--format markdown \
--output API.mdPerformance Optimization
Caching Strategy
bash
# Enable prompt caching
claude chat --cache-prompts
# Set cache TTL
claude config set cache_ttl 3600Concurrency Control
bash
# Limit concurrent requests
claude batch --parallel 3 --input queries.txt
# Set request interval
claude batch --delay 1000 --input queries.txtTroubleshooting
Common Issues
API key error:
bash
# Verify API key
claude config get api_key
# Reset
claude config set api_key YOUR_NEW_KEYNetwork issues:
bash
# Use proxy
export HTTPS_PROXY=http://proxy.example.com:8080
claude chat
# Increase timeout
claude --timeout 60000 ask "query"Permission issues:
bash
# Check configuration file permissions
ls -la ~/.config/claude/
# Fix permissions
chmod 600 ~/.config/claude/config.jsonBest Practices
- Use configuration files: Save common settings to configuration files
- Leverage templates: Create prompt templates for repetitive tasks
- Session management: Save important conversations for future reference
- Context optimization: Only include relevant files to reduce token usage
- Batch processing: Use batch mode for multiple similar tasks
- Version control: Include generated code in version control
- Security: Don't expose API keys directly in command line
Update and Maintenance
bash
# Check for updates
claude --version
npm outdated -g @anthropic-ai/claude-code
# Update to latest version
npm update -g @anthropic-ai/claude-code
# Clear cache
claude cache clearGetting Help
bash
# View help
claude --help
# View specific command help
claude chat --help
claude ask --help
# View version info
claude --version
# View diagnostic info
claude doctor