Proxy Station
S'inscrire

Connectez votre outil

Pointez l'éditeur ou le CLI que vous utilisez déjà vers cet endpoint. Aucune application à installer — une base URL, une clé, et une commande qui prouve que ça marche.

Deux base URL, une seule clé

OpenAI-compatiblethe client appends /chat/completions
https://proxystation.co/v1
Anthropic-compatiblethe client appends /v1/messages itself
https://proxystation.co

La différence n'est pas cosmétique. Les clients au format OpenAI ajoutent /chat/completions à ce que vous leur donnez : il leur faut le chemin versionné. Claude Code et le SDK Anthropic ajoutent /v1/messages eux-mêmes : il leur faut l'origine nue. Inverser les deux produit /v1/v1/messages, qui répond 404 — et la plupart des clients le signalent comme un échec de connexion, pas comme un mauvais chemin.

Terminal

Claude Code

https://proxystation.co

Installation

npm install -g @anthropic-ai/claude-code

Configuration~/.claude/settings.json

export ANTHROPIC_BASE_URL=https://proxystation.co
export ANTHROPIC_AUTH_TOKEN=sk-XXXXXXXXXXXXXXXX

# Persist it in ~/.claude/settings.json instead of your shell profile:
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://proxystation.co",
    "ANTHROPIC_AUTH_TOKEN": "sk-XXXXXXXXXXXXXXXX"
  }
}

Vérifiez avant de lancer

curl -X POST "https://proxystation.co/v1/messages" \
  -H "Authorization: Bearer sk-XXXXXXXXXXXXXXXX" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":8,"messages":[{"role":"user","content":"ok"}]}'

Attendu : A body starting {"id":"msg_… — the URL and the credential both work.

  • No /v1 in the base URL. Claude Code appends /v1/messages itself; adding it yields /v1/v1/messages, which this endpoint answers 404.
  • ANTHROPIC_AUTH_TOKEN and ANTHROPIC_API_KEY both work here — tested. Prefer AUTH_TOKEN: API_KEY triggers a one-time approval prompt in interactive sessions, and if it was ever declined the key is ignored with no error.
  • A value in ~/.claude/settings.json BEATS a shell export, which is the opposite of what most people expect. A stale entry there will quietly override a fresh export.
  • Setting only the base URL does not switch billing. Without a credential variable a saved claude.ai login stays active — run /status inside the CLI and check it names an auth token, not a login method.

Codex CLI

https://proxystation.co/v1

Installation

npm install -g @openai/codex

Configuration~/.codex/config.toml

# 1. Put the key in your shell, under the name config.toml will reference:
export PROXYSTATION_API_KEY=sk-XXXXXXXXXXXXXXXX

# 2. ~/.codex/config.toml
model_provider = "proxystation"
model = "gpt-5.6-luna"

[model_providers.proxystation]
name = "proxystation"
base_url = "https://proxystation.co/v1"
env_key = "PROXYSTATION_API_KEY"
wire_api = "responses"

Vérifiez avant de lancer

curl -X POST "https://proxystation.co/v1/responses" \
  -H "Authorization: Bearer sk-XXXXXXXXXXXXXXXX" \
  -H "content-type: application/json" \
  -d '{"model":"gpt-5.6-luna","input":"ok"}'

Attendu : A body with "status":"completed" — the Responses API is what Codex speaks.

  • wire_api accepts only "responses". Chat Completions support was removed from Codex; a config that names it will not start.
  • env_key names an environment variable, it does not hold the key. The string here must match the variable you exported, or Codex reports no credential.
  • The base URL keeps /v1 here, unlike Claude Code above. Same key, same host, different string.

aider

https://proxystation.co/v1

Installation

python -m pip install aider-install && aider-install

Configuration~/.aider.conf.yml

export OPENAI_API_BASE=https://proxystation.co/v1
export OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXX

aider --model openai/gpt-5.6-luna

Vérifiez avant de lancer

curl "https://proxystation.co/v1/models" -H "Authorization: Bearer sk-XXXXXXXXXXXXXXXX"

Attendu : A JSON list under "data" — aider reads the same catalogue.

  • OPENAI_API_BASE, not OPENAI_BASE_URL. aider passes the value to litellm, which uses the API_BASE name.
  • The model needs the openai/ prefix so litellm routes it to the OpenAI-compatible client rather than guessing the vendor from the name.

Éditeurs et extensions

Continue

https://proxystation.co/v1

Installation

Install the Continue extension from the VS Code or JetBrains marketplace.

Configuration~/.continue/config.yaml

# ~/.continue/.env
PROXYSTATION_API_KEY=sk-XXXXXXXXXXXXXXXX

# ~/.continue/config.yaml
models:
  - name: Proxy Station
    provider: openai
    model: gpt-5.6-luna
    apiBase: https://proxystation.co/v1
    apiKey: ${{ secrets.PROXYSTATION_API_KEY }}

Vérifiez avant de lancer

curl -X POST "https://proxystation.co/v1/chat/completions" \
  -H "Authorization: Bearer sk-XXXXXXXXXXXXXXXX" \
  -H "content-type: application/json" \
  -d '{"model":"gpt-5.6-luna","messages":[{"role":"user","content":"ok"}],"max_tokens":8}'

Attendu : A body with "choices" — the same call the extension makes.

  • apiBase keeps /v1 even when you set provider: anthropic. Continue appends only the method path, unlike the Anthropic SDK.
  • The same config.yaml is read by the VS Code extension, the JetBrains plugin and the cn CLI — configure once.

Cline

https://proxystation.co/v1

Installation

Install the Cline extension from the VS Code marketplace.

Configuration~/.cline/data/settings/providers.json

In the extension: Settings → API Provider → OpenAI Compatible

  Base URL   https://proxystation.co/v1
  API Key    sk-XXXXXXXXXXXXXXXX
  Model ID   gpt-5.6-luna

The CLI and the extension share ~/.cline/data/settings/providers.json.

Vérifiez avant de lancer

curl -X POST "https://proxystation.co/v1/chat/completions" \
  -H "Authorization: Bearer sk-XXXXXXXXXXXXXXXX" \
  -H "content-type: application/json" \
  -d '{"model":"gpt-5.6-luna","messages":[{"role":"user","content":"ok"}],"max_tokens":8}'

Attendu : A body with "choices" before you touch the extension at all.

  • There is no VS Code settings.json key for this. Settings named cline.openAiCompatible.* do not exist — configure it in the extension panel.
  • Choose the "OpenAI Compatible" provider, not "OpenAI". The plain OpenAI provider ignores a custom base URL.

Cursor

https://proxystation.co/v1

Installation

Cursor itself is the editor; nothing extra to install.

Configuration

Settings → Models → API Keys

  Override OpenAI Base URL    https://proxystation.co/v1
  OpenAI API Key              sk-XXXXXXXXXXXXXXXX

Then press Verify.

Vérifiez avant de lancer

curl -X POST "https://proxystation.co/v1/chat/completions" \
  -H "Authorization: Bearer sk-XXXXXXXXXXXXXXXX" \
  -H "content-type: application/json" \
  -d '{"model":"gpt-5.6-luna","messages":[{"role":"user","content":"ok"}],"max_tokens":8}'

Attendu : A body with "choices". Cursor keeps the key in secure storage, so this curl is the only way to check the endpoint separately from the editor.

  • No environment variable and no config file. The key lives in Cursor’s secure storage, so there is nothing to edit by hand and nothing to commit by accident.
  • Add the model id to the model list first, or the override has nothing to apply to.

SDK

OpenAI SDK

https://proxystation.co/v1

Installation

pip install openai · npm install openai

Configuration

export OPENAI_BASE_URL=https://proxystation.co/v1
export OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXX

# or in code
from openai import OpenAI
client = OpenAI(api_key="sk-XXXXXXXXXXXXXXXX", base_url="https://proxystation.co/v1")

Vérifiez avant de lancer

curl "https://proxystation.co/v1/models" -H "Authorization: Bearer sk-XXXXXXXXXXXXXXXX"

Attendu : A JSON list under "data".

  • OPENAI_BASE_URL ends in /v1. The SDK appends /chat/completions to whatever you give it.

Anthropic SDK

https://proxystation.co

Installation

pip install anthropic · npm install @anthropic-ai/sdk

Configuration

export ANTHROPIC_BASE_URL=https://proxystation.co
export ANTHROPIC_API_KEY=sk-XXXXXXXXXXXXXXXX

# or in code — note the base URL carries no /v1
from anthropic import Anthropic
client = Anthropic(api_key="sk-XXXXXXXXXXXXXXXX", base_url="https://proxystation.co")

Vérifiez avant de lancer

curl -X POST "https://proxystation.co/v1/messages" \
  -H "x-api-key: sk-XXXXXXXXXXXXXXXX" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":8,"messages":[{"role":"user","content":"ok"}]}'

Attendu : A body starting {"id":"msg_…

  • No /v1 here. The SDK adds it, and a base URL that already carries one produces /v1/v1/messages — a 404.

Chaque configuration de cette page a été vérifiée sur cet endpoint le 2026-08-30, et chaque commande de vérification ci-dessus a été exécutée. Les outils changent : Codex a retiré la prise en charge de Chat Completions cette année. Si l'une d'elles cesse de correspondre, c'est la commande de vérification qui vous le dira.

La station répond aussi sur des points d'entrée régionaux. Ils fonctionnent avec la même clé, mais la disponibilité et la latence publiées sur la page d'état sont mesurées sur cette origine uniquement — ces chiffres ne décrivent pas un autre point d'entrée.