Accept ops-prefixed alias names in the local proxy so OpenCode requests do not fail on model lookup. Add clearer proxy diagnostics and fix alias list target state output to simplify ops troubleshooting. |
||
|---|---|---|
| .opencode | ||
| .trellis | ||
| cmd/ops | ||
| internal | ||
| .gitignore | ||
| AGENTS.md | ||
| go.mod | ||
| go.sum | ||
| README_EN.md | ||
| README.md | ||
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.