Self-Hosted OpenAI-Compatible Entry
Self-hosted unified OpenAI-compatible entry
Section titled “Self-hosted unified OpenAI-compatible entry”When enabled, OmniRoute’s existing /v1/chat/completions (and the OpenAI-compatible
contract it serves) becomes a self-hosted gateway: one OpenAI-compatible request
in, auto-routed to the provider of your choice through the provider adapters, with a
standard OpenAI error shape out. Client code does not change.
This is the D4 (接入即用) differentiator from the RIC-697 design: the same /v1 path
the OpenAI SDK already targets, backed by your own providers instead of a single
vendored catalog.
Enable
Section titled “Enable”Set either env var (see .env.example for both):
OMNIROUTE_SELF_HOSTED_PROVIDERS— inline YAML document (runtime-only, not logged).OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE— path to a YAML file.
providers: - id: local kind: openai # openai | anthropic | local baseUrl: http://127.0.0.1:11434/v1 model: llama3 # apiKey: sk-... # optional, runtime-only - id: claude kind: anthropic baseUrl: http://127.0.0.1:8080 model: claude-sonnetWhen either var is set, the unified entry is active for every request to
/v1/chat/completions. Config present but unparseable returns 500 (it never
silently falls through to cloud routing). When neither is set, the route behaves
exactly as before.
Provider auto-route
Section titled “Provider auto-route”Precedence (deterministic, no predictive model):
x-omniroute-provider: <id>header — exact provider id.modelprefix:provider/model(slash) orprovider::model(double colon).- First configured provider.
The routing prefix is stripped before forwarding — upstream receives the bare model
(claude-sonnet, not claude/claude-sonnet).
# via headercurl http://localhost:20128/v1/chat/completions \ -H "x-omniroute-provider: claude" \ -H "content-type: application/json" \ -d '{"model":"claude-sonnet","messages":[{"role":"user","content":"hi"}]}'
# or via model prefixcurl ... -d '{"model":"claude/claude-sonnet","messages":[...]}'Auth scaffold (D5 reserved)
Section titled “Auth scaffold (D5 reserved)”Optional OMNIROUTE_SELF_HOSTED_API_KEY. When set, requests must carry
Authorization: Bearer <key>. Unset = open route (loopback / trusted network),
mirroring how OmniRoute’s existing local providers work. The D5 quota/quota-自治
key system is expected to take over this header.
Failure contract
Section titled “Failure contract”- Upstream non-2xx body is normalized through
parseUpstreamError+buildErrorBodyinto the standard OpenAIerrorshape (Hard Rule #12 — never raw upstream text). - Network-level failures (connection refused / DNS / TLS) return a normalized
502witherror.message: "Upstream provider unreachable: …". - Credential / session headers echoed upstream are stripped from every response.
tests/unit/self-hosted-entry.test.ts covers provider selection, model-prefix
forwarding, header hygiene, auth, upstream-error normalization, SSE streaming
passthrough, and the fall-through / misconfig paths — all over real HTTP against a
local upstream.
- Self-hosted models bypass the cloud-only retirement / alias machinery by design:
the divert happens before those cloud checks, so ids like
local/llama3never trip cloud-peer 410s or alias rewrites. - Deterministic routing strategies (fallback / cooldown / cost / latency / blacklist)
are M2’s scope (
RIC-740) and inject into the gateway layer here. Configure them with astrategy:block — see DETERMINISTIC_ROUTING.md.
HagiCode
HagiCode is an agentic coding workspace. Rich, convenient UI interactions make planning, agent execution, and project work approachable and easy to navigate, creating an engaging development experience.
Explore an engaging development experience through rich, convenient UI interactions.
- SmartOpenSpec workflows turn intent into an executable path, from proposal to design, tasks, and a shipped change.
- EfficientMulti-agent execution keeps research, implementation, and review moving in parallel, across several repositories and the Agent CLIs you already use.
- InterestingRich, convenient UI interactions make planning, agent execution, and project work approachable and easy to navigate.
Download for Windows
Share HagiCode
Turn ideas into shipped software.
HagiCode is an agentic coding workspace. OpenSpec workflows plan the change, multi-agent execution carries it out, and Hero Scenario makes the long run visible, so ideas become shipped software.
- Smart
- OpenSpec workflows turn intent into a path from proposal to shipped change.
- Efficient
- Multi-agent execution runs research, build, and review in parallel.
- Fun
- Rich UI interactions make planning, agent work, and projects easier to follow.
© 2026 HagiCode | Powered By hagilight-starlight@0.21.0 | Branch: main | Commit: de60bcd | Built:

