No description
Find a file
Rahul Sengottuvelu 5a52c511fb first commit
2025-03-18 20:35:36 -04:00
.gitignore first commit 2025-03-18 20:35:36 -04:00
.python-version first commit 2025-03-18 20:35:36 -04:00
pyproject.toml first commit 2025-03-18 20:35:36 -04:00
README.md first commit 2025-03-18 20:35:36 -04:00
server.py first commit 2025-03-18 20:35:36 -04:00
tests.py first commit 2025-03-18 20:35:36 -04:00
uv.lock first commit 2025-03-18 20:35:36 -04:00

Claude-on-OpenAI Proxy

🚀 Use Claude Code with OpenAI Models 🚀

A proxy server that lets you use Claude Code with OpenAI models like GPT-4o.

Why Use This?

  • 🧠 Leverage Claude Code with more models: Use Claude Code's powerful coding interface but with OpenAI's more affordable models
  • No code changes needed: Your Claude clients work without modification
  • 🔄 Transparent model swapping: Claude requests are automatically routed to OpenAI equivalents

Quick Start

Prerequisites

  • OpenAI API key

Setup

  1. Clone this repository:

    git clone https://github.com/1rgs/claude-code-openai.git
    cd claude-code-openai
    
  2. Install UV:

curl -LsSf https://astral.sh/uv/install.sh | sh


3. **Configure your API keys**:
Create a `.env` file with:

OPENAI_API_KEY=your-openai-key


4. **Start the proxy server**:
```bash
uv run uvicorn server:app --host 0.0.0.0 --port 8082

Using with Claude Code

  1. Install Claude Code (if you haven't already):

    npm install -g @anthropic-ai/claude-code
    
  2. Connect to your proxy:

    ANTHROPIC_BASE_URL=http://localhost:8082 DISABLE_PROMPT_CACHING=1 claude
    
  3. That's it! Your Claude Code client will now use OpenAI models through the proxy.

Model Mapping

The proxy automatically maps Claude models to OpenAI models:

Claude Model OpenAI Model
haiku gpt-4o-mini
sonnet o3-mini

You can customize these mappings in server.py by editing the validate_model function.

How It Works

This proxy works by:

  1. Receiving requests in Anthropic's API format
  2. Translating the requests to OpenAI format via LiteLLM
  3. Sending the translated request to OpenAI
  4. Converting the response back to Anthropic format
  5. Returning the formatted response to the client

The proxy handles both streaming and non-streaming responses, maintaining compatibility with all Claude clients.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.