diff --git a/README.md b/README.md index cf438bec16..dc978f1ced 100644 --- a/README.md +++ b/README.md @@ -629,13 +629,13 @@ the current catalog at **[radar.omniroute.online/planos](https://radar.omniroute Goose
Goose
                            Open Interpreter
Open Interpreter
                            Warp AI
Warp AI
                            - Agent Deck
Agent Deck
                            + deyin.ai
deyin.ai
                           
-+ also works with · Kiro · Command Code · Antigravity · Windsurf · AMP · any OpenAI-compatible tool ++ also works with · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · any OpenAI-compatible tool
📖 Per-tool setup for all 36 tools (26 CLI Code's + 10 CLI Agents) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode plugin → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider) @@ -725,7 +725,7 @@ of your shell history. → [CLI Integrations](docs/guides/CLI-INTEGRATIONS.md) Pollinations
Pollinations
GPT, Llama, Claude
No key needed
Cloudflare AI
Cloudflare AI
50+ models
10K neurons/day
NVIDIA NIM
NVIDIA NIM
GLM, MiniMax
~40 RPM free
- Cerebras
Cerebras
GLM 4.7, GPT-OSS
1M tokens/day
+ Openference
Openference
Qwen3.8 27B, Llama 3.2
Free tier
OpenRouter
OpenRouter
:free models
+$10 → higher RPM
diff --git a/docs/reference/PROVIDER_REFERENCE.md b/docs/reference/PROVIDER_REFERENCE.md index 6f74ae664f..078c99e339 100644 --- a/docs/reference/PROVIDER_REFERENCE.md +++ b/docs/reference/PROVIDER_REFERENCE.md @@ -71,7 +71,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `kilocode` | `kc` | Kilo Code | OAuth | — | — | | `kimi-coding` | `kmc` | Kimi Code CLI | OAuth | [link](https://www.kimi.com/code?aff=omniroute) | Sign in with the same Kimi account used by Kimi Code CLI. OmniRoute uses the CLI OAuth flow and Kimi Coding Plan endpoints. | | `kiro` | `kr` | Kiro AI | OAuth | — | Free tier: 50 credits/month (~25K–100K tokens). ⚠️ Kiro ToS prohibits third-party proxy/harness use. | -| `openference` | `of` | Openference | OAuth | [link](https://openference.com) | Sign in with your Openference account to route requests through api.openference.com. An active plan is required for inference — OAuth may authenticate but return 402 without one. | +| `openference` | `of` | Openference | OAuth | [link](https://openference.com) | Sign in with your Openference account to route requests through api.openference.com. Includes free-tier access to Qwen3.8 27b and Llama 3.2 3B — see openference.com/pricing for current plan terms. | | `qoder` | `if` | Qoder | OAuth | — | — | | `trae` | `tr` | Trae | OAuth | [link](https://trae.ai) | Trae is an AI-native IDE by ByteDance (SOLO remote agent). Authorize via trae.ai in the popup, or sign in at solo.trae.ai and paste the Cloud-IDE-JWT (sent as 'Authorization: Cloud-IDE-JWT ', ~14-day lifetime) as the access token; web_id/biz_user_id/user_unique_id/scope/tenant/region propagate via providerSpecificData. No headless refresh for pasted tokens — re-paste on expiry. | | `xai-oauth` | `xao` | xAI OAuth (Grok) | OAuth | [link](https://x.ai) | Sign in with xAI to use api.x.ai models such as Grok 4.5. This is separate from Grok Build JWT sessions, which use cli-chat-proxy.grok.com and grok-build model aliases. | @@ -280,7 +280,7 @@ Use the dashboard at `/dashboard/providers` to enable, configure, and test each | `openai` | `openai` | OpenAI | API key | [link](https://platform.openai.com) | — | | `opencode-go` | `opencode-go` | OpenCode Go | API key | [link](https://opencode.ai/go) | — | | `opencode-zen` | `opencode-zen` | OpenCode Zen | API key | [link](https://opencode.ai/zen) | — | -| `openference-api` | `ofa` | Openference API | API key | [link](https://openference.com) | Free plan: 3-day trial with open-source models — no credit card required | +| `openference-api` | `ofa` | Openference API | API key | [link](https://openference.com) | Free tier: includes Qwen3.8 27b and Llama 3.2 3B — see openference.com/pricing for current terms | | `openrouter` | `openrouter` | OpenRouter | API key, aggregator | [link](https://openrouter.ai) | Free models at $0/token with :free suffix - 20 RPM / 200 RPD | | `openvecta` | `openvecta` | OpenVecta | API key | [link](https://openvecta.com) | Free credits on signup for OpenAI-compatible inference across LLMs, embeddings, and reasoning models | | `opper` | `opper` | Opper | API key, aggregator | [link](https://opper.ai) | — | diff --git a/open-sse/config/providers/registry/openference-api/index.ts b/open-sse/config/providers/registry/openference-api/index.ts index 34a20de303..01c3948482 100644 --- a/open-sse/config/providers/registry/openference-api/index.ts +++ b/open-sse/config/providers/registry/openference-api/index.ts @@ -14,5 +14,9 @@ export const openference_apiProvider: RegistryEntry = buildOpenAiCompatibleRegis baseUrl: "https://api.openference.com/v1/chat/completions", responsesBaseUrl: "https://api.openference.com/v1/responses", passthroughModels: true, - models: [{ id: "GLM-5.2", name: "GLM 5.2", contextLength: 850000 }], + models: [ + { id: "GLM-5.2", name: "GLM 5.2", contextLength: 850000 }, + { id: "Qwen3.8 27b", name: "Qwen3.8 27B", contextLength: 262144 }, + { id: "Llama 3.2 3B", name: "Llama 3.2 3B", contextLength: 131072 }, + ], }); diff --git a/open-sse/config/providers/registry/openference/index.ts b/open-sse/config/providers/registry/openference/index.ts index fe5f50025e..9ef2cfc768 100644 --- a/open-sse/config/providers/registry/openference/index.ts +++ b/open-sse/config/providers/registry/openference/index.ts @@ -21,5 +21,9 @@ export const openferenceProvider: RegistryEntry = { clientIdDefault: resolvePublicCred("openference_id"), tokenUrl: "https://openference.com/oauth/token", }, - models: [{ id: "GLM-5.2", name: "GLM 5.2", contextLength: 850000 }], + models: [ + { id: "GLM-5.2", name: "GLM 5.2", contextLength: 850000 }, + { id: "Qwen3.8 27b", name: "Qwen3.8 27B", contextLength: 262144 }, + { id: "Llama 3.2 3B", name: "Llama 3.2 3B", contextLength: 131072 }, + ], }; diff --git a/public/deyin.svg b/public/deyin.svg new file mode 100644 index 0000000000..c6232f5791 --- /dev/null +++ b/public/deyin.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + diff --git a/public/openference.svg b/public/openference.svg new file mode 100644 index 0000000000..525d9ae0a4 --- /dev/null +++ b/public/openference.svg @@ -0,0 +1,5 @@ + + Openference + + + diff --git a/src/shared/constants/providers/apikey/inference-hosts.ts b/src/shared/constants/providers/apikey/inference-hosts.ts index 730ccd64f3..856029de17 100644 --- a/src/shared/constants/providers/apikey/inference-hosts.ts +++ b/src/shared/constants/providers/apikey/inference-hosts.ts @@ -46,7 +46,8 @@ export const APIKEY_PROVIDERS_INFERENCE = { textIcon: "OF", website: "https://openference.com", hasFree: true, - freeNote: "Free plan: 3-day trial with open-source models — no credit card required", + freeNote: + "Free tier: includes Qwen3.8 27b and Llama 3.2 3B — see openference.com/pricing for current terms", }, poolside: { id: "poolside", diff --git a/src/shared/constants/providers/oauth.ts b/src/shared/constants/providers/oauth.ts index 52d40bebb6..3c743c9bbf 100644 --- a/src/shared/constants/providers/oauth.ts +++ b/src/shared/constants/providers/oauth.ts @@ -44,9 +44,10 @@ export const OAUTH_PROVIDERS = { textIcon: "OF", website: "https://openference.com", hasFree: true, - freeNote: "Free plan: 3-day trial with open-source models — no credit card required", + freeNote: + "Free tier: includes Qwen3.8 27b and Llama 3.2 3B — see openference.com/pricing for current terms", authHint: - "Sign in with your Openference account to route requests through api.openference.com. An active plan is required for inference — OAuth may authenticate but return 402 without one.", + "Sign in with your Openference account to route requests through api.openference.com. Includes free-tier access to Qwen3.8 27b and Llama 3.2 3B — see openference.com/pricing for current plan terms.", }, "grok-cli": { id: "grok-cli", @@ -142,7 +143,14 @@ export const OAUTH_PROVIDERS = { subscriptionRisk: true, riskNoticeVariant: "oauth", }, - github: { id: "github", serviceKinds: ["llm"], alias: "gh", name: "GitHub Copilot", icon: "code", color: "#333333" }, + github: { + id: "github", + serviceKinds: ["llm"], + alias: "gh", + name: "GitHub Copilot", + icon: "code", + color: "#333333", + }, "gitlab-duo": { id: "gitlab-duo", serviceKinds: ["llm"], diff --git a/tests/unit/openference-apikey-provider-registration.test.ts b/tests/unit/openference-apikey-provider-registration.test.ts index 4015326cfb..8c04b38fda 100644 --- a/tests/unit/openference-apikey-provider-registration.test.ts +++ b/tests/unit/openference-apikey-provider-registration.test.ts @@ -25,7 +25,7 @@ const SPEC = { website: "https://openference.com", chatUrl: "https://api.openference.com/v1/chat/completions", modelsUrl: "https://api.openference.com/v1/models", - expectedSeedIds: ["GLM-5.2"], + expectedSeedIds: ["GLM-5.2", "Qwen3.8 27b", "Llama 3.2 3B"], }; test("APIKEY_PROVIDERS.openference-api is registered with the canonical identity", () => { diff --git a/tests/unit/openference-oauth-provider.test.ts b/tests/unit/openference-oauth-provider.test.ts index 983d7e7e61..99d5b3a83b 100644 --- a/tests/unit/openference-oauth-provider.test.ts +++ b/tests/unit/openference-oauth-provider.test.ts @@ -124,7 +124,7 @@ test("Openference is registered as an OAuth gateway with default executor", asyn assert.equal(openferenceProvider.baseUrl, "https://api.openference.com/v1/chat/completions"); assert.deepEqual( openferenceProvider.models?.map((model) => model.id), - ["GLM-5.2"] + ["GLM-5.2", "Qwen3.8 27b", "Llama 3.2 3B"] ); assert.equal(hasSpecializedExecutor("openference"), false);