2.5 KiB
opencode-provider-switch (ops)
A tiny local proxy for OpenCode that gives you one stable model alias routed to multiple upstream providers with deterministic failover.
- Expose one custom provider
opsto OpenCode. - Configure logical aliases (
ops/gpt-5.4, etc.). - Each alias has an ordered list of upstream
provider/modeltargets. - When the primary upstream returns
5xx/429/connect error before any stream bytes are flushed,opstransparently retries the next target. - Once a stream has started, the upstream is locked for the rest of that request — no mid-stream splicing.
Protocol: OpenAI Responses (POST /v1/responses) only. Streaming supported.
Install
go build -o ops ./cmd/ops
Quick start
# 1. add upstream providers
ops provider add --id su8 --base-url https://cn2.su8.codes/v1 --api-key sk-...
ops provider add --id codex --base-url https://api-vip.codex-for.me/v1 --api-key sk-...
# 2. create alias and bind targets in priority order
ops alias add --name gpt-5.4
ops alias bind --alias gpt-5.4 --provider su8 --model gpt-5.4
ops alias bind --alias gpt-5.4 --provider codex --model GPT-5.4
# 3. push alias exposure into OpenCode global config
ops opencode sync
# 4. run the proxy
ops serve
Inside OpenCode you can now pick ops/gpt-5.4.
Import providers from an existing OpenCode config
ops provider import-opencode # reads global OpenCode config
ops provider import-opencode --from ./examples/opencode.jsonc
Only @ai-sdk/openai custom providers with a baseURL and apiKey are
imported. Everything else is out of MVP scope.
Doctor (static)
ops doctor
Runs structural checks only — never issues real upstream requests.
CLI reference
ops serve— run the proxyops doctor— validate configops provider {add,list,remove,import-opencode}ops alias {add,list,bind,unbind,remove}ops opencode sync [--target FILE] [--set-model ALIAS] [--set-small-model ALIAS] [--dry-run]
Global flag: --config PATH (default $XDG_CONFIG_HOME/ops/config.json).
Debug headers
Every proxied response includes:
X-OPS-AliasX-OPS-ProviderX-OPS-Remote-ModelX-OPS-AttemptX-OPS-Failover-Count
Scope
Out of MVP: Anthropic native, multi-protocol routing, dashboard, billing,
latency-based routing, /v1/models discovery, full OpenCode config takeover.
See .trellis/tasks/archive/2026-04/04-17-04-17-ops-mvp-design-review/prd.md
for the authoritative design notes.