kourier.sh

Get Started

Connect your editor, agent, or CLI to kourier.sh — one OpenAI-compatible endpoint for open coding models.

kourier.sh serves open-weight coding models behind a single OpenAI-compatible endpoint. If a tool lets you set a custom OpenAI base URL and API key, it talks to kourier.sh with no code changes and no new SDK to learn.

kourier.sh is currently in alpha. See pricing for current plans, rate limits, and billing terms.

Get an API key

  1. Sign up at app.kourier.sh/signup.
  2. Open Dashboard → API Keys and generate a key. It's shown once — copy it immediately.

Quick start

Point any OpenAI-compatible client at kourier.sh with two environment variables:

export OPENAI_API_KEY="djs_live_..."
export OPENAI_BASE_URL="https://api.kourier.sh/v1"

That's enough for any tool that reads the standard OPENAI_API_KEY / OPENAI_BASE_URL (or an equivalent "custom OpenAI-compatible provider") setting.

Compatible clients

These tools accept a custom OpenAI-compatible base URL and key — some read the env vars above directly (Aider, raw SDK/curl), others take the same base URL and key through their own settings UI or config file:

ToolWhere to set it
CursorSettings → Models → add an OpenAI API key, override the base URL
Zedsettings.jsonlanguage_models.openai.api_url
OpenCodeProvider config → add an OpenAI-compatible provider
Cline (VS Code)Provider dropdown → "OpenAI Compatible"
Continue (VS Code / JetBrains)config.json → provider "openai" with a custom apiBase
Aider--openai-api-base flag, or the env vars above
Any OpenAI SDK (Python, Node, curl, etc.)base_url / OPENAI_BASE_URL constructor option

Not yet compatible

Claude Code speaks Anthropic's Messages API (/v1/messages), not the OpenAI Chat Completions format — setting OPENAI_BASE_URL has no effect on it. Using Claude Code against kourier.sh needs an Anthropic-compatible endpoint, which we don't offer yet. If that's your primary tool, let us know — it's on the radar.

Manual configuration

SettingValue
Base URLhttps://api.kourier.sh/v1
Chat completions endpointhttps://api.kourier.sh/v1/chat/completions
Auth headerAuthorization: Bearer <your API key>
Example model stringglm-5.2

API reference

kourier.sh implements the OpenAI Chat Completions API, including streaming.

curl https://api.kourier.sh/v1/chat/completions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "glm-5.2",
    "messages": [
      {"role": "user", "content": "Refactor this function to async/await."}
    ],
    "stream": true
  }'
import os

from openai import OpenAI

client = OpenAI(
    base_url="https://api.kourier.sh/v1",
    api_key=os.environ["OPENAI_API_KEY"],
)

stream = client.chat.completions.create(
    model="glm-5.2",
    messages=[{"role": "user", "content": "Explain this stack trace."}],
    stream=True,
)

for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

See Models for the full list of model strings and what each one is good for.

On this page