renato97 0a4289cafc Initial commit: OpenCode Zen Proxy
Proxy translating OpenAI/Anthropic Messages API to OpenCode Zen's free models.
Pure stdlib Go 1.22, no external dependencies.

- OpenAI Chat Completions (/v1/chat/completions) with streaming
- Anthropic Messages API (/v1/messages) with streaming
- Model aliases for 5 free models
- Auth middleware support
- Session rotation (30min per user key)
2026-06-25 11:49:11 -03:00
2026-06-25 11:49:11 -03:00
2026-06-25 11:49:11 -03:00
2026-06-25 11:49:11 -03:00
2026-06-25 11:49:11 -03:00
2026-06-25 11:49:11 -03:00
2026-06-25 11:49:11 -03:00

OpenCode Zen Proxy

OpenAI-compatible proxy for OpenCode's free Zen models. Use DeepSeek V4 Flash, MiniMax M2.5, Kimi K2.5, and more — for free — in any OpenAI-compatible tool (Cursor, Claude Code, Continue, etc.).

How it works

Your tool → opencode-proxy (localhost:6446) → opencode.ai/zen/v1

The proxy injects the required x-opencode-* headers that OpenCode Zen's free API expects. Your tools talk standard OpenAI protocol to the proxy; the proxy handles the rest.

Quick Start

# Build
go build -o opencode-proxy .

# Run (no auth)
./opencode-proxy

# Run with API key protection
./opencode-proxy -api-key "your-secret-key"

# Or via env var
export OPENCODE_PROXY_KEY="your-secret-key"
./opencode-proxy

The server starts on http://127.0.0.1:6446.

CLI Flags

Flag Default Description
-port 6446 Server port
-host 127.0.0.1 Server host
-api-key (none) API key to protect the proxy
-version Show version and exit

Also reads OPENCODE_PROXY_KEY environment variable if -api-key is not set.

Endpoints

Method Path Description
GET /health Health check
GET /v1/models List available free models
POST /v1/chat/completions Chat completions (streaming + non-streaming)

Authentication

If -api-key is set, all requests require one of:

  • Authorization: Bearer <key>
  • x-api-key: <key>

Available Models

Model ID Alias Notes
deepseek-v4-flash-free deepseek, deepseek-v4 Solid, recommended
big-pickle pickle Stealth model (= DeepSeek V4 Flash)
minimax-m2.5-free minimax, m2.5 Strong coding model
kimi-k2.5-free kimi, k2.5 Best free model
gpt-5-nano nano, gpt5 OpenAI-powered free
nemotron-3-super-free nemotron Hit or miss
qwen3.6-plus-free qwen Intermittent

All support streaming, tool calls, and system messages.

Tool Configuration

Cursor / Continue / Cline

  • Base URL: http://127.0.0.1:6446/v1
  • API Key: your proxy key (or public if no auth)
  • Model: deepseek-v4-flash-free (or any alias)

Claude Code

Claude Code uses the Anthropic Messages API natively. For now, use an OpenAI-compatible bridge or configure via:

# In Claude Code, use as custom provider
claude config set provider_base_url http://127.0.0.1:6446/v1

OpenCode CLI

Add to ~/.config/opencode/opencode.json:

{
  "provider": {
    "free": {
      "name": "free",
      "type": "openai",
      "apiKey": "public",
      "baseURL": "http://127.0.0.1:6446/v1",
      "models": {
        "free/deepseek": {
          "id": "deepseek-v4-flash-free",
          "name": "free/deepseek"
        }
      }
    }
  }
}

Any OpenAI SDK

from openai import OpenAI

client = OpenAI(
    base_url="http://127.0.0.1:6446/v1",
    api_key="your-proxy-key"  # or "public" if no auth
)

response = client.chat.completions.create(
    model="deepseek-v4-flash-free",
    messages=[{"role": "user", "content": "Hello!"}]
)

Deploy on VPS

# Build for Linux
GOOS=linux GOARCH=amd64 go build -o opencode-proxy .

# Copy and run
scp opencode-proxy user@vps:/home/user/
ssh user@vps './opencode-proxy -api-key "secure-key" -host 0.0.0.0'

# Or use systemd (create /etc/systemd/system/opencode-proxy.service)

systemd unit:

[Unit]
Description=OpenCode Zen Proxy
After=network.target

[Service]
ExecStart=/home/user/opencode-proxy -api-key "${PROXY_KEY}" -host 0.0.0.0
Restart=always
User=user
EnvironmentFile=/etc/opencode-proxy.env

[Install]
WantedBy=multi-user.target

Local SSH tunnel

If you don't want to expose the port publicly:

ssh -L 6446:127.0.0.1:6446 user@your-vps

Then point your tools at http://127.0.0.1:6446/v1.

License

MIT

S
Description
OpenAI/Anthropic-compatible proxy that aggregates free models from OpenCode Zen and Kilo Code under a single endpoint, with auto rate-limit jailing.
Readme
107 KiB
v1.0.0
Latest
2026-08-04 01:25:01 +00:00
Languages
Go 100%