본문으로 건너뛰기

어떤 코딩 에이전트든 PleumRouter 붙이기

OpenAI 호환이라, 쓰던 에이전트에 base_url 한 줄만 바꾸면 됩니다.

PleumRouter는 OpenAI 호환 API입니다. OpenAI Compatible provider를 지원하는 에이전트라면 base_url을 https://apirouter.pleum.ai/v1로, 키를 plm_…로 바꾸기만 하면 그대로 동작합니다. 아래는 인기 에이전트별 설정 예시입니다.

1. 공통 — base_url과 API 키#

먼저 가입 후 대시보드 → API 키에서 키를 발급받으세요 (키는 plm_로 시작). 어떤 에이전트든 필요한 값은 base_url(https://apirouter.pleum.ai/v1)과 키 두 가지뿐입니다.

environment
export OPENAI_API_BASE=https://apirouter.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_xxxxxxxxxxxxxxxx

2. IDE · GUI 에이전트#

다음 에이전트는 설정에서 provider로 OpenAI Compatible(또는 Custom OpenAI)을 고르고 아래 값을 넣으면 됩니다 — Cline, Roo Code, Kilo Code, Cursor.

반드시 OpenAI Compatible 슬롯을 쓰세요. OpenRouter 전용 항목은 openrouter.ai로 하드코딩되어 실패합니다. Cursor는 base URL에 /v1까지 포함하고 키 칸을 비우면 안 됩니다. Kilo Code는 커스텀 base URL이 모델 목록 조회에 전달되지 않는 알려진 이슈(#681)가 있어 모델 ID를 직접 입력하세요.

3. 터미널 · CLI 에이전트#

터미널 에이전트는 대부분 환경변수나 설정 파일로 OpenAI 호환 엔드포인트를 받습니다. Goose·OpenHands는 모델명 앞에 openai/ 접두사가 필요합니다.

Gemini CLI와 Antigravity CLI(agy)는 Google native /v1beta로 붙습니다. GOOGLE_GEMINI_BASE_URL은 /v1beta 없는 루트입니다. 상세는 Gemini CLI· Antigravity CLI· Gemini API를 보세요. Antigravity 데스크톱 IDE는 공식 BYOK가 없습니다.

4. Desktop 앱#

Dock에서 켜 두는 앱은 셸 환경변수를 못 읽습니다. pleum wire가 대시보드와 같은 POST /v1/keys로 plm_ 전용 키를 만들고 ~/.codex/config.toml·~/.claude/settings.json에 넣습니다.pleum launch는 세션용 격리 홈만 쓰고, Desktop은 사용자 홈 설정을 읽습니다. Codex는 supports_websockets = false와 Bearer http_headers가 필요합니다. Claude Code Desktop은 앱 안 Configure Third-Party Inference 폼을 쓰며 base URL에 /v1을 붙이지 마세요. 상세는 Codex· Claude Code· Cursor쿡북을 보세요.

5. 모델 ID와 자동 발견#

모델 ID는 GET /v1/models에서 확인하거나 모델 페이지에서 볼 수 있습니다. Cline·Continue·OpenCode 등은 이 목록을 자동으로 불러와 드롭다운을 채웁니다. OpenRouter 형식 (openai/gpt-5.5)으로 보내도 자동 변환됩니다.

Claude Code · LiteLLM

list models
curl https://apirouter.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에서 확인할 수 있습니다.

multimodal endpoints
# Image generation
curl https://apirouter.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://apirouter.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://apirouter.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://apirouter.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를 붙이지 마세요.

막히는 부분이 있나요? 플레이그라운드에서 키를 넣고 바로 테스트해 보세요. 첫 결제는 10% 보너스.