Skip to content

feat: add OrcaRouter as a model provider#8403

Open
jinhaosong-source wants to merge 2 commits into
janhq:mainfrom
jinhaosong-source:feat/add-orcarouter-provider
Open

feat: add OrcaRouter as a model provider#8403
jinhaosong-source wants to merge 2 commits into
janhq:mainfrom
jinhaosong-source:feat/add-orcarouter-provider

Conversation

@jinhaosong-source

@jinhaosong-source jinhaosong-source commented Jul 9, 2026

Copy link
Copy Markdown

Adds OrcaRouter — an OpenAI-compatible model routing gateway — as a predefined remote provider, mirroring the existing OpenRouter entry so users can reach many models (OpenAI, Anthropic, Google, DeepSeek, xAI, …) through one endpoint and one API key. The orcarouter/auto router can also pick a suitable upstream per request based on cost, latency, and quality, and named routers can be driven by a routing DSL (YAML + CEL rules) that selects an upstream per request from task type, difficulty, and agent session state. Because the provider is a thin base-URL swap, any Jan chat that uses it also inherits OrcaRouter's gateway-level, zero-trust security controls for AI agents — scoped keys, guardrails, a tool-level agent firewall, and an audit trail — with no application changes.

Changes

  • web-app/src/constants/providers.tsorcarouter provider entry: base URL https://api.orcarouter.ai/v1, API-key setting, and a few flagship models including the orcarouter/auto adaptive router. Shaped exactly like the existing openrouter entry.
  • web-app/src/lib/utils.tsgetProviderTitle case ("OrcaRouter" casing) and getProviderLogo case for the brand icon.
  • web-app/public/images/model-provider/orcarouter.svg — OrcaRouter brand icon.
  • docs/src/pages/docs/desktop/remote-models/orcarouter.mdx + _meta.json — provider docs page and nav entry, following the OpenRouter page.

Testing

  • web-app provider unit tests pass locally (src/lib/__tests__/model-factory.test.ts, 29/29).
  • Verified live against https://api.orcarouter.ai/v1: every listed model returns completions — openai/gpt-5.5, anthropic/claude-opus-4.8, google/gemini-3.5-flash, and the orcarouter/auto router.
  • OrcaRouter is fully OpenAI-compatible (standard Authorization: Bearer, OpenAI wire format), so it reuses the existing OpenAI-compatible request path — no adapter or new dependency needed.

I'm an engineer on the OrcaRouter team. Happy to adjust anything.

Adds OrcaRouter (an OpenAI-compatible model routing gateway) as a
predefined remote provider, mirroring the existing OpenRouter entry:

- provider entry in web-app providers constants (base_url
  https://api.orcarouter.ai/v1, API-key setting, a few flagship models
  including the orcarouter/auto adaptive router)
- OrcaRouter display-name casing in getProviderTitle
- docs page under remote-models + nav entry

I'm an engineer on the OrcaRouter team.
Add the OrcaRouter brand icon and map it in getProviderLogo so the
provider renders with its logo instead of the default avatar fallback.
@jinhaosong-source

Copy link
Copy Markdown
Author

👋 @qnixsynapse — opened this small PR adding OrcaRouter as a predefined model provider (mirrors the existing OpenRouter entry; provider tests pass and I verified the endpoint + models live). Would appreciate a look whenever you have a moment. Thanks!

@qnixsynapse qnixsynapse requested a review from jjchen01 July 10, 2026 11:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant