Skip to content

API Commands Reference

Complete reference for Claude API commands and parameters.

Messages API

Basic Message Creation

python
from anthropic import Anthropic

client = Anthropic()
message = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1024,
    temperature=0.7,
    system="You are a helpful assistant.",
    messages=[
        {
            "role": "user",
            "content": "Your prompt here"
        }
    ]
)

Parameters

ParameterTypeRequiredDescriptionDefault
modelstringModel identifier-
messagesarrayConversation messages-
max_tokensintegerMaximum response tokens-
systemstringSystem promptNone
temperaturefloatRandomness (0-1)1.0
top_pfloatNucleus sampling1.0
top_kintegerTop-k samplingNone
stop_sequencesarrayStop generation triggersNone
streambooleanStream responsesFalse
metadataobjectRequest metadataNone

Message Roles

python
messages = [
    {"role": "user", "content": "Hello"},
    {"role": "assistant", "content": "Hi! How can I help?"},
    {"role": "user", "content": "Tell me about Python"}
]

Streaming

Basic Streaming

python
with client.messages.stream(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Write a story"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="")

Stream Events

python
stream = client.messages.stream(...)

# Event handlers
stream.on("message_start", lambda msg: print("Started"))
stream.on("content_block_delta", lambda delta: print(delta.text))
stream.on("message_stop", lambda: print("Done"))

Vision API

Image Input

python
import base64

with open("image.jpg", "rb") as f:
    image_data = base64.b64encode(f.read()).decode()

message = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": "image/jpeg",
                        "data": image_data
                    }
                },
                {
                    "type": "text",
                    "text": "What's in this image?"
                }
            ]
        }
    ]
)

Tool Use (Function Calling)

Define Tools

python
tools = [
    {
        "name": "get_weather",
        "description": "Get weather for a location",
        "input_schema": {
            "type": "object",
            "properties": {
                "location": {
                    "type": "string",
                    "description": "City name"
                }
            },
            "required": ["location"]
        }
    }
]

message = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1024,
    tools=tools,
    messages=[
        {"role": "user", "content": "What's the weather in Paris?"}
    ]
)

Handle Tool Calls

python
if message.stop_reason == "tool_use":
    tool_use = message.content[-1]
    if tool_use.name == "get_weather":
        # Execute tool
        weather = get_weather(tool_use.input["location"])
        
        # Continue conversation
        messages.append({"role": "assistant", "content": message.content})
        messages.append({
            "role": "user",
            "content": [
                {
                    "type": "tool_result",
                    "tool_use_id": tool_use.id,
                    "content": str(weather)
                }
            ]
        })

Claude Code CLI Commands

Basic Commands

bash
# Simple queries
claude-code "What's in this directory?"
claude-code "Explain this code"
claude-code "Fix this error"

# File operations
claude-code read file.py
claude-code edit file.py
claude-code write new_file.py

# Code operations
claude-code review main.py
claude-code test module.py
claude-code refactor function.py
claude-code document class.py

Command Options

bash
# Model selection
claude-code --model claude-3-5-haiku-20241022 "Quick task"
claude-code --model claude-3-5-opus-20241022 "Complex analysis"

# Output control
claude-code --max-tokens 2000 "Long response"
claude-code --temperature 0.2 "Precise output"
claude-code --stream "Generate story"

# Context control
claude-code --max-files 20 "Analyze project"
claude-code --include "*.py" "Python files only"
claude-code --exclude "test_*" "Skip tests"

Special Commands

bash
# Thinking modes
claude-code think "Basic reasoning"
claude-code "think hard" "Extended reasoning"
claude-code "think harder" "Deep analysis"
claude-code ultrathink "Maximum reasoning"

# Git operations
claude-code commit "Create commit message"
claude-code pr "Create pull request"
claude-code review-pr "Review pull request"

# Project operations
claude-code init "Initialize project"
claude-code plan "Create project plan"
claude-code implement "Implement feature"

Configuration Commands

Setup

bash
# API key
claude-code config set api_key sk-ant-api03-...

# Default model
claude-code config set model claude-3-5-sonnet-20241022

# Editor
claude-code config set editor vscode

View Configuration

bash
# List all settings
claude-code config list

# Get specific setting
claude-code config get api_key

# Verify setup
claude-code diagnose

Reset

bash
# Reset single setting
claude-code config reset model

# Reset all settings
claude-code config reset --all

MCP Commands

Server Management

bash
# Add MCP server
claude-code mcp add filesystem
claude-code mcp add git
claude-code mcp add web

# List servers
claude-code mcp list

# Remove server
claude-code mcp remove filesystem

# Update server
claude-code mcp update git

Server Configuration

bash
# Configure server
claude-code mcp config filesystem --path /home/user
claude-code mcp config git --repo /path/to/repo

# Test server
claude-code mcp test filesystem

Utility Commands

Help & Documentation

bash
# General help
claude-code --help
claude-code help

# Command help
claude-code help review
claude-code help config

# Version info
claude-code --version

Diagnostics

bash
# Full diagnostic
claude-code diagnose

# Connection test
claude-code test-connection

# Performance test
claude-code benchmark

Cache Management

bash
# Clear cache
claude-code cache clear

# View cache size
claude-code cache size

# Set cache limit
claude-code cache limit 1000

Environment Variables

bash
# Essential
export ANTHROPIC_API_KEY='sk-ant-api03-...'

# Model defaults
export ANTHROPIC_MODEL='claude-3-5-sonnet-20241022'
export ANTHROPIC_MAX_TOKENS=4096
export ANTHROPIC_TEMPERATURE=0.7

# API configuration
export ANTHROPIC_BASE_URL='https://api.anthropic.com'
export ANTHROPIC_API_VERSION='2024-10-22'
export ANTHROPIC_TIMEOUT=30

# Claude Code specific
export CLAUDE_CODE_EDITOR='vscode'
export CLAUDE_CODE_CONTEXT_SIZE=50
export CLAUDE_CODE_AUTO_COMMIT=false

Python SDK Methods

Client Methods

python
# Initialize
client = Anthropic(
    api_key="...",
    base_url="...",
    timeout=30.0,
    max_retries=3
)

# Create message
response = client.messages.create(...)

# Stream message
stream = client.messages.stream(...)

# Count tokens
count = client.count_tokens(text="...")

Response Objects

python
# Message response
message.id           # Message ID
message.content      # Content array
message.model        # Model used
message.role         # Role (assistant)
message.stop_reason  # Why generation stopped
message.stop_sequence # Stop sequence hit
message.usage        # Token usage

# Content block
content.type         # 'text' or 'tool_use'
content.text         # Text content
content.name         # Tool name
content.input        # Tool input

Error Handling

python
from anthropic import (
    APIError,
    APIConnectionError,
    APITimeoutError,
    RateLimitError,
    AuthenticationError
)

try:
    response = client.messages.create(...)
except RateLimitError as e:
    print(f"Rate limited: {e}")
except AuthenticationError as e:
    print(f"Auth failed: {e}")
except APIError as e:
    print(f"API error: {e}")

cURL Examples

Basic Request

bash
curl -X POST https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2024-10-22" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-3-5-sonnet-20241022",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Hello, Claude"}
    ]
  }'

Streaming Request

bash
curl -X POST https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2024-10-22" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-3-5-sonnet-20241022",
    "max_tokens": 1024,
    "stream": true,
    "messages": [
      {"role": "user", "content": "Tell me a story"}
    ]
  }'

See Also: Error Codes | Troubleshooting | Best Practices

Claude Code Documentation Hub