How shanthropic/claude-adapter works
Claude Adapter is a local authenticated proxy that lets Claude Code use OpenAI-compatible models. The standalone CLI guides setup, persists provider/model/tool-format configuration, starts the loopback server, and can update Claude Code settings. The request handler authenticates and validates Anthropic Messages requests, converts them for the configured provider, and returns either converted responses or translated SSE. The graph includes documented setup and protocol capabilities; some utility wiring is omitted where sampled source does not establish it.
Main entry points: handlers.ts Message Handler · cli.ts Setup CLI · request.ts Request Conversion · streaming.ts SSE Conversion
Components 21
Setup and Configuration
- Setup CLI
src/cli.ts - Config and Settings
src/utils/config.ts - Adapter Metadata
src/utils/metadata.ts
Local Proxy
- HTTP Server
src/server/index.ts - Message Handler
src/server/handlers.ts - Request Validation
src/utils/validation.ts - Anthropic Types
src/types/anthropic.ts - Provider Detection
src/utils/provider.ts
Protocol Translation
- Request Conversion
src/converters/request.ts - Tool Conversion
src/converters/tools.ts - XML Tool Prompts
src/converters/xmlPrompt.ts - Response Conversion
src/converters/response.ts - SSE Conversion
src/converters/streaming.ts - XML Stream Conversion
src/converters/xmlStreaming.ts
Usage and Diagnostics
- Token Usage
src/utils/tokenUsage.ts - Error Logging
src/utils/errorLog.ts - Private File Storage
src/utils/fileStorage.ts - Update Cache
src/utils/update.ts
Other components
- Operator
- Claude Code
- OpenAI-Compatible API
Connections 23
- Operator → Setup CLI: runs setup
- Setup CLI → Config and Settings: loads and saves
- Setup CLI → Adapter Metadata: initializes
- Setup CLI → HTTP Server: starts
- Setup CLI → Config and Settings: updates Claude settings
- Claude Code → HTTP Server: sends messages
- HTTP Server → Message Handler: dispatches messages
- Message Handler → Request Validation: validates
- Message Handler → Provider Detection: detects endpoint
- Message Handler → Request Conversion: converts request
- Request Conversion → Tool Conversion: converts tools
- Request Conversion → XML Tool Prompts: adds XML instructions
- Request Conversion → Update Cache: reads cached update
- Message Handler → OpenAI-Compatible API: sends completion request
- OpenAI-Compatible API → Message Handler: returns completion
- Message Handler → Response Conversion: converts response
- Message Handler → SSE Conversion: translates native stream
- Message Handler → XML Stream Conversion: translates XML stream
- Message Handler → Token Usage: records usage
- Message Handler → Error Logging: records errors
- SSE Conversion → Token Usage: records usage
- SSE Conversion → Error Logging: records errors
- Message Handler → Claude Code: returns Anthropic response