Skip to main content

Proxy Claude API requests to OpenAI-compatible backends

Project description

openai2claude

Proxy server that converts Claude API requests to OpenAI-compatible backends. This allows you to use the Anthropic Claude SDK with any OpenAI-compatible API provider.

Installation

pip install openai2claude

Quick Start

  1. Start the proxy server:
export OPENAI2CLAUDE_BACKEND=https://api.openai.com/v1
export OPENAI2CLAUDE_API_KEY=sk-your-api-key
openai2claude

Or with command-line arguments:

openai2claude --backend https://api.openai.com/v1 --api-key sk-your-api-key
  1. Configure your Claude SDK code to use the proxy:
import anthropic

client = anthropic.Anthropic(
    base_url="http://localhost:8000"
)

response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello, world!"}]
)

Or via environment variable:

export ANTHROPIC_API_BASE="http://localhost:8000"

Configuration

Environment Variables

Variable Default Description
OPENAI2CLAUDE_BACKEND http://localhost:8080/v1 OpenAI-compatible backend URL
OPENAI2CLAUDE_API_KEY sk-xxx... API key for the backend
OPENAI2CLAUDE_HOST 0.0.0.0 Proxy server host
OPENAI2CLAUDE_PORT 8000 Proxy server port
OPENAI2CLAUDE_LOG_LEVEL INFO Logging level
OPENAI2CLAUDE_TIMEOUT 300 Request timeout in seconds
OPENAI2CLAUDE_VERIFY_SSL true Verify SSL certificates

Command-Line Options

openai2claude [OPTIONS]

Options:
  -b, --backend TEXT         OpenAI-compatible backend URL
  -k, --api-key TEXT         API key for the backend
  -h, --host TEXT            Host to bind the proxy server
  -p, --port INTEGER         Port to bind the proxy server
  -l, --log-level TEXT       Logging level (debug, info, warning, error)
  -t, --timeout FLOAT        Request timeout in seconds
  --no-verify-ssl            Disable SSL certificate verification
  --version                  Show version

Architecture

┌─────────────┐    ┌─────────────────┐    ┌────────────────────┐
│  Your Code  │───>│  openai2claude  │───>│  OpenAI Backend    │
│ Claude SDK  │    │    (localhost   │    │  (api.openai.com,  │
│             │<───│     :8000)      │<───│  ollama, etc.)     │
└─────────────┘    └─────────────────┘    └────────────────────┘

The proxy:

  1. Accepts requests in Claude API format (/v1/messages)
  2. Converts them to OpenAI API format (/v1/chat/completions)
  3. Forwards to the configured backend
  4. Converts responses back to Claude format

Features

  • Format Conversion: Automatically converts between Claude and OpenAI API formats
  • Tool Calling Fix: Fixes malformed tool calls (e.g., cmd/input -> command) for Bash tools
  • Streaming Support: Full SSE streaming support for real-time responses
  • System Prompt Injection: Adds tool usage instructions to prevent common errors
  • Environment Variables: Full configuration via environment variables
  • CLI Interface: Easy-to-use command-line interface with --help

Use Cases

  1. Use Claude SDK with local models: Point to Ollama, LM Studio, or other OpenAI-compatible local servers
  2. Multi-provider support: Switch between OpenAI, Azure, or other OpenAI-compatible providers
  3. Development and testing: Test Claude code against mock or local backends

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openai2claude-0.1.1.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openai2claude-0.1.1-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file openai2claude-0.1.1.tar.gz.

File metadata

  • Download URL: openai2claude-0.1.1.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for openai2claude-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5308a696113be301a67480f2efb4c43453316b7611156eb6c98fd5e286592ed5
MD5 9231f91639b13b44ae19a168c483c322
BLAKE2b-256 64f87341c1aee45ccdbf24b42475674f7f3a5526cc9a1c21f9ededac92b8250c

See more details on using hashes here.

File details

Details for the file openai2claude-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: openai2claude-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for openai2claude-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fc009a1f75114cf9101a3906f40e95a08302fbdea1f043820cb305b99e058fdc
MD5 f30d6e440e4164860ade136f9734153a
BLAKE2b-256 0de2b1956bb5a9e8199364ce93bd3f3712aa0bbb15241c729e9048b967905d91

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page