Your OpenCode loginsas an API.

OpenAI, Anthropic and Gemini compatible apps call plugboard with their own key and use the models you already have in OpenCode.

$ bunx opencode-plugboard init
Added opencode-plugboard@0.61.0 in ~/.config/opencode/opencode.jsonc.
App key for `my-app` (shown once): pb_u3oW-g8E3gZ-aA3mduNUm…
$ curl -s 127.0.0.1:4010/v1/chat/completions -H "Authorization: Bearer $KEY" --json '{"model": "fast", "messages": [{"role": "user", "content": "say pong"}]}'
{ "model": "anthropic/claude-haiku-4-5",
  "choices": [{ "message": { "role": "assistant", "content": "Pong!" } }],
  "usage": { "prompt_tokens": 26, "completion_tokens": 7 } }
Skip to content

What it is ​

You run OpenCode with some provider logins: Claude, ChatGPT, Copilot, OpenCode Go. Plugboard adds one HTTP listener to that server. A Discord bot, n8n, Open WebUI or a script can then call it as if it were the OpenAI, Anthropic or Gemini API. None of them needs a provider key, and none needs the OpenCode server password.

OpenCode never runs your tools. When the model asks for a tool, plugboard sends the call back to the caller, which runs it and sends the result.

client ──▶ plugboard listener ──▶ OpenCode session ──▶ provider
  ▲                                                        │
  └──── reply; tool calls go back to the caller ◀──────────┘

Each request becomes an OpenCode session in a directory for its app, so provider fixes and auth plugins in OpenCode still apply, and you can read what every app asked.

Where to go next ​

  1. Install and first request.
  2. Connect your app: pick your API or your client.
  3. The guides, one task each: apps and keys, models and aliases, limits, budgets and caching, tools, output and images, history, usage and monitoring, serving other machines.
  4. The configuration reference when you need an exact option.

Plugboard is early (0.x). A minor release can change an option or a default, so read the changelog before you upgrade. Only OpenCode V2 is supported.

What it serves ​

APIEndpointPage
OpenAI Chat CompletionsPOST /v1/chat/completionsChat Completions
OpenAI ResponsesPOST /v1/responses, GET/DELETE /v1/responses/{id}Responses
Anthropic MessagesPOST /v1/messages, POST /v1/messages/count_tokensMessages
GeminiPOST /v1beta/models/{model}:generateContent, :streamGenerateContent, :countTokensGemini
Files/v1/files, /v1beta/filesFiles
Legacy completionsPOST /v1/completionsCompletions
ModelsGET /v1/models, GET /v1/models/{id}APIs

Plugboard does not serve embeddings, audio, image generation or logprobs. See the known gaps.