어떤 코딩 에이전트든 PleumRouter 붙이기
OpenAI 호환이라, 쓰던 에이전트에 base_url 한 줄만 바꾸면 됩니다.
OpenAI Compatible provider를 지원하는 에이전트라면 base_url을 https://router.pleum.ai/v1로, 키를 plm_…로 바꾸기만 하면 그대로 동작합니다. 아래는 인기 에이전트별 설정 예시입니다.1. 공통 — base_url과 API 키#
먼저 가입 후 대시보드 → API 키에서 키를 발급받으세요 (키는 plm_로 시작). 어떤 에이전트든 필요한 값은 base_url(https://router.pleum.ai/v1)과 키 두 가지뿐입니다.
export OPENAI_API_BASE=https://router.pleum.ai/v1
export OPENAI_API_KEY=plm_xxxxxxxxxxxxxxxx
# Some agents (OpenCode, Crush) reference PLEUM_API_KEY — same key, set both.
export PLEUM_API_KEY=plm_xxxxxxxxxxxxxxxx2. IDE · GUI 에이전트#
다음 에이전트는 설정에서 provider로 OpenAI Compatible(또는 Custom OpenAI)을 고르고 아래 값을 넣으면 됩니다 — Cline, Roo Code, Kilo Code, Cursor.
API Provider → OpenAI Compatible
Base URL → https://router.pleum.ai/v1
API Key → plm_xxxxxxxxxxxxxxxx
Model ID → gpt-4.1/v1까지 포함하고 키 칸을 비우면 안 됩니다. Kilo Code는 커스텀 base URL이 모델 목록 조회에 전달되지 않는 알려진 이슈(#681)가 있어 모델 ID를 직접 입력하세요.Continue.dev
Continue.dev는 설정 파일로 지정합니다. model: AUTODETECT면 모델 목록을 자동으로 불러옵니다.
# ~/.continue/config.yaml
models:
- name: PleumRouter
provider: openai
apiBase: https://router.pleum.ai/v1
apiKey: plm_xxxxxxxxxxxxxxxx
model: AUTODETECTZed
Zed는 설정에 OpenAI 호환 provider를 추가합니다. 버전에 따라 필드명이 다를 수 있으니 Zed 문서를 확인하세요.
// Zed settings.json
{
"language_models": {
"openai_compatible": {
"PleumRouter": {
"api_url": "https://router.pleum.ai/v1",
"available_models": [
{ "name": "gpt-4.1", "max_tokens": 128000 }
]
}
}
}
}3. 터미널 · CLI 에이전트#
터미널 에이전트는 대부분 환경변수나 설정 파일로 OpenAI 호환 엔드포인트를 받습니다. Goose·OpenHands는 모델명 앞에 openai/ 접두사가 필요합니다.
Aider
export OPENAI_API_BASE=https://router.pleum.ai/v1
export OPENAI_API_KEY=plm_xxxxxxxxxxxxxxxx
aider --model openai/gpt-4.1OpenCode
// opencode.json (or: /connect → Other)
{
"provider": {
"pleum": {
"npm": "@ai-sdk/openai-compatible",
"name": "PleumRouter",
"options": {
"baseURL": "https://router.pleum.ai/v1",
"apiKey": "{env:PLEUM_API_KEY}"
},
"models": { "gpt-4.1": {} }
}
}
}Crush
// crush.json
{
"providers": {
"pleum": {
"type": "openai-compat",
"base_url": "https://router.pleum.ai/v1",
"api_key": "$PLEUM_API_KEY",
"models": [{ "id": "gpt-4.1", "name": "gpt-4.1" }]
}
}
}Goose · OpenHands
export OPENAI_API_BASE=https://router.pleum.ai/v1
export OPENAI_API_KEY=plm_xxxxxxxxxxxxxxxx
# Goose / OpenHands: prefix the model id with openai/
# model = openai/gpt-4.1Codex CLI
/v1/responses)로 직접 붙습니다(2026년 2월 Chat Completions 경로 제거). ~/.codex/config.toml에 wire_api = "responses" provider를 추가하고 PLEUM_API_KEY를 설정하세요. 라우팅 대상이 OpenAI 호환 모델이면 함수호출·스트리밍까지 동작합니다.# ~/.codex/config.toml
# model / model_provider are document-root keys (must be above the [table]).
model = "gpt-4.1"
model_provider = "pleum"
[model_providers.pleum]
name = "PleumRouter"
base_url = "https://router.pleum.ai/v1" # Codex appends /responses → /v1/responses
env_key = "PLEUM_API_KEY"
wire_api = "responses" # Codex supports only the Responses API
# then: export PLEUM_API_KEY=plm_xxxxxxxxxxxxxxxx && codex4. Claude Code (Anthropic 호환)#
/v1/messages로 붙습니다. 공식 CLI는 ANTHROPIC_API_KEY를 먼저 읽으므로 ANTHROPIC_API_KEY·ANTHROPIC_AUTH_TOKEN에 같은 키를 모두 넣어두는 편이 안전합니다. ANTHROPIC_BASE_URL은 /v1이 없는 루트(https://router.pleum.ai)로 설정하세요 — CLI가 /v1/messages를 알아서 덧붙입니다(/v1을 넣으면 /v1/v1/messages가 되어 실패). 라우팅 대상이 OpenAI 호환 모델이면 함수호출·스트리밍까지 동작합니다.# ANTHROPIC_BASE_URL is the ROOT (no /v1) — the CLI appends /v1/messages itself.
export ANTHROPIC_BASE_URL=https://router.pleum.ai
# The official CLI prefers ANTHROPIC_API_KEY; set both to be safe.
export ANTHROPIC_API_KEY=plm_xxxxxxxxxxxxxxxx # ← replace with your key from Dashboard > API Keys
export ANTHROPIC_AUTH_TOKEN=plm_xxxxxxxxxxxxxxxx # ← same key
# Pass a PleumRouter model id (see GET /v1/models for the full list):
claude --model anthropic/gpt-4.15. 모델 ID와 자동 발견#
모델 ID는 GET /v1/models에서 확인하거나 모델 페이지에서 볼 수 있습니다. Cline·Continue·OpenCode 등은 이 목록을 자동으로 불러와 드롭다운을 채웁니다. OpenRouter 형식 (openai/gpt-5.5)으로 보내도 자동 변환됩니다.
curl https://router.pleum.ai/v1/models \
-H "Authorization: Bearer plm_xxxxxxxxxxxxxxxx"6. 이미지 · 음성 · 영상 (직접 API 호출)#
이미지·음성·영상도 OpenAI 호환 엔드포인트로 직접 호출합니다 — 이미지 POST /v1/images/generations, TTS POST /v1/audio/speech, STT POST /v1/audio/transcriptions, 영상 POST /v1/video/generations(비동기 — job_id 반환 후 GET /v1/jobs/{job_id}로 폴링).MODEL_ID는 해당 모달리티를 지원하는 모델로 바꾸세요 — 모델 페이지 또는 GET /v1/models에서 확인할 수 있습니다.
# Image generation
curl https://router.pleum.ai/v1/images/generations \
-H "Authorization: Bearer plm_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "model": "MODEL_ID", "prompt": "a red bicycle", "n": 1, "size": "1024x1024" }'
# Text-to-speech (returns audio bytes; cost in X-Cost-Krw header)
curl https://router.pleum.ai/v1/audio/speech \
-H "Authorization: Bearer plm_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "model": "MODEL_ID", "input": "Hello there", "voice": "alloy" }' --output speech.mp3
# Speech-to-text (multipart upload)
curl https://router.pleum.ai/v1/audio/transcriptions \
-H "Authorization: Bearer plm_xxxxxxxxxxxxxxxx" \
-F model=MODEL_ID -F file=@audio.mp3
# Video generation is async: POST returns a job_id, then poll GET /v1/jobs/{job_id}
curl https://router.pleum.ai/v1/video/generations \
-H "Authorization: Bearer plm_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "model": "MODEL_ID", "prompt": "a drone shot over a forest" }'7. 더 많은 에이전트#
여기 안 적힌 에이전트도 대부분 같은 방식입니다. OpenAI 호환 base_url로 동작 — OpenHands, Open Interpreter, SWE-agent, Qwen Code, MetaGPT, GPT-Pilot, ChatDev, Tabby(채팅), Dyad, Plandex, bolt.diy, Forge, Kimi CLI, gptme, Letta 등. Anthropic 호환(/v1/messages)으로는 claude-code-router도 ANTHROPIC_BASE_URL로 붙습니다. LiteLLM 기반(Aider·OpenHands·Open Interpreter·SWE-agent·gptme)은 PleumRouter 자체가 게이트웨이라 LiteLLM 없이 바로 붙지만, 기존 LiteLLM proxy를 쓴다면 아래처럼 지정하세요 — api_base 끝에 /chat/completions를 붙이지 마세요.
# litellm config.yaml (LiteLLM proxy를 쓰는 경우)
model_list:
- model_name: pleum-gpt-4.1
litellm_params:
model: openai/gpt-4.1 # openai/ prefix → OpenAI-compat route
api_base: https://router.pleum.ai/v1 # do NOT append /chat/completions
api_key: os.environ/PLEUM_API_KEY