Compare commits
69 Commits
fix/11433-
...
fix/v3850-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7ab7fa0989 | ||
|
|
d130ef6e9e | ||
|
|
892545a1e3 | ||
|
|
3026183120 | ||
|
|
84504e3f1f | ||
|
|
bb1b01124b | ||
|
|
890cbfbfde | ||
|
|
dd8575eb2c | ||
|
|
657d3a484a | ||
|
|
700a735949 | ||
|
|
a81895847d | ||
|
|
acb9ba6978 | ||
|
|
3f5b08f2a6 | ||
|
|
451917f648 | ||
|
|
46b8e7a9b7 | ||
|
|
26a28b0843 | ||
|
|
e525f1d9b7 | ||
|
|
2efe22bd0c | ||
|
|
103d0dedc4 | ||
|
|
7c04e75e54 | ||
|
|
5900c47644 | ||
|
|
3e6e21683b | ||
|
|
cd701c1eed | ||
|
|
825f8fe425 | ||
|
|
cfeed516e8 | ||
|
|
d937b5229e | ||
|
|
321935d261 | ||
|
|
a14a91dcfe | ||
|
|
09fa818365 | ||
|
|
9be4fd0a0e | ||
|
|
a45e80af43 | ||
|
|
2acbfc6fa6 | ||
|
|
ad3e293f9f | ||
|
|
c9f11d86b5 | ||
|
|
21ed68d8ac | ||
|
|
d35b3f9779 | ||
|
|
9587e07b69 | ||
|
|
12cc6ca834 | ||
|
|
4f11b2ae3d | ||
|
|
b4e76a7ed9 | ||
|
|
b85d0abb0b | ||
|
|
1325047d56 | ||
|
|
2e8326d531 | ||
|
|
7133585d1d | ||
|
|
bcda889f84 | ||
|
|
91ecb6be9c | ||
|
|
e02f11984f | ||
|
|
ca4df9bef8 | ||
|
|
0ce2b83005 | ||
|
|
124f4cf761 | ||
|
|
4977f1adcf | ||
|
|
99044ed044 | ||
|
|
68aa69bc21 | ||
|
|
14278e301c | ||
|
|
38bc925187 | ||
|
|
8946ce71eb | ||
|
|
c8f3bc888e | ||
|
|
955c7bbf42 | ||
|
|
ff25849530 | ||
|
|
756b47fdd7 | ||
|
|
e69f2109aa | ||
|
|
bda83c1d39 | ||
|
|
67f4e5201d | ||
|
|
e95a25512d | ||
|
|
146897d9bd | ||
|
|
f75bd75389 | ||
|
|
42a13fedef | ||
|
|
242c451298 | ||
|
|
6e62aad32e |
17
.env.example
@@ -1256,17 +1256,6 @@ GITHUB_OAUTH_CLIENT_ID=Iv1.b507a08c87ecfe98
|
||||
# VISION_BRIDGE_BASE_URL=
|
||||
# VISION_BRIDGE_API_KEY=
|
||||
|
||||
# ── Raycast Pro (local auto-import) ──
|
||||
# Raycast Pro AI is a reverse-engineered, unofficial API — local/personal use
|
||||
# only (no OAuth client_id/secret; token is captured via macOS Auto-Import
|
||||
# from the Keychain + local Raycast SQLite DB, or pasted manually). These
|
||||
# vars are optional manual overrides used by open-sse/services/raycast.ts
|
||||
# and the direct-probe benchmark script scripts/raycast/usage-benchmark.mjs.
|
||||
# RAYCAST_BEARER_TOKEN=
|
||||
# RAYCAST_DEVICE_ID=
|
||||
# RAYCAST_AID=
|
||||
# RAYCAST_SIG_SECRET=
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# ⚠️ GOOGLE OAUTH (Antigravity) & OTHER PROVIDERS — REMOTE SERVERS
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
@@ -1941,12 +1930,6 @@ APP_LOG_TO_FILE=true
|
||||
# Base backoff after a transient 408 response (ms); five attempts maximum.
|
||||
# ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS=8000
|
||||
|
||||
# ── Microsoft Designer Web (Image Generation) ──
|
||||
# Polling config for the microsoft-designer-web submit-then-poll image job.
|
||||
# Used by: open-sse/handlers/imageGeneration/providers/designerWeb.ts
|
||||
# DESIGNER_WEB_POLL_TIMEOUT_MS=60000 # Max wait for job completion (default: 60s)
|
||||
# DESIGNER_WEB_POLL_INTERVAL_MS=2000 # Poll frequency (default: 2s)
|
||||
|
||||
# ── Adobe Firefly (Image Upscale) ──
|
||||
# Base delay (ms) for the submit-retry exponential backoff when Adobe Firefly's
|
||||
# upscale job submission is rate-limited. Used by:
|
||||
|
||||
2
.github/workflows/ci.yml
vendored
@@ -93,6 +93,7 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-node@v7
|
||||
with:
|
||||
@@ -127,6 +128,7 @@ jobs:
|
||||
- run: npm run check:any-budget:t11
|
||||
- run: npm run check:provider-consistency
|
||||
- run: npm run check:model-lifecycle
|
||||
- run: npm run check:provider-asset-provenance
|
||||
- run: npm run check:fetch-targets
|
||||
- run: npm run check:deps
|
||||
- run: npm run check:file-size
|
||||
|
||||
8
.github/workflows/docker-publish.yml
vendored
@@ -171,7 +171,7 @@ jobs:
|
||||
${{ env.IMAGE_NAME }}
|
||||
${{ env.GHCR_IMAGE_NAME }}
|
||||
cache-from: type=gha,scope=docker-${{ matrix.arch }}
|
||||
cache-to: type=gha,scope=docker-${{ matrix.arch }},mode=max
|
||||
cache-to: type=gha,scope=docker-${{ matrix.arch }},mode=max,ignore-error=true
|
||||
no-cache: false
|
||||
env:
|
||||
DOCKER_BUILDKIT_INLINE_CACHE: 1
|
||||
@@ -188,7 +188,7 @@ jobs:
|
||||
${{ env.IMAGE_NAME }}
|
||||
${{ env.GHCR_IMAGE_NAME }}
|
||||
cache-from: type=gha,scope=docker-web-${{ matrix.arch }}
|
||||
cache-to: type=gha,scope=docker-web-${{ matrix.arch }},mode=max
|
||||
cache-to: type=gha,scope=docker-web-${{ matrix.arch }},mode=max,ignore-error=true
|
||||
no-cache: false
|
||||
env:
|
||||
DOCKER_BUILDKIT_INLINE_CACHE: 1
|
||||
@@ -206,7 +206,7 @@ jobs:
|
||||
${{ env.IMAGE_NAME }}
|
||||
${{ env.GHCR_IMAGE_NAME }}
|
||||
cache-from: type=gha,scope=docker-bun-base-${{ matrix.arch }}
|
||||
cache-to: type=gha,scope=docker-bun-base-${{ matrix.arch }},mode=max
|
||||
cache-to: type=gha,scope=docker-bun-base-${{ matrix.arch }},mode=max,ignore-error=true
|
||||
no-cache: false
|
||||
env:
|
||||
DOCKER_BUILDKIT_INLINE_CACHE: 1
|
||||
@@ -224,7 +224,7 @@ jobs:
|
||||
${{ env.IMAGE_NAME }}
|
||||
${{ env.GHCR_IMAGE_NAME }}
|
||||
cache-from: type=gha,scope=docker-bun-web-${{ matrix.arch }}
|
||||
cache-to: type=gha,scope=docker-bun-web-${{ matrix.arch }},mode=max
|
||||
cache-to: type=gha,scope=docker-bun-web-${{ matrix.arch }},mode=max,ignore-error=true
|
||||
no-cache: false
|
||||
env:
|
||||
DOCKER_BUILDKIT_INLINE_CACHE: 1
|
||||
|
||||
2
.github/workflows/quality.yml
vendored
@@ -269,7 +269,7 @@ jobs:
|
||||
run: |
|
||||
set -uo pipefail
|
||||
gates=(
|
||||
provider-consistency fetch-targets deps file-size error-helper
|
||||
provider-consistency provider-asset-provenance fetch-targets deps file-size error-helper
|
||||
migration-numbering public-creds db-rules known-symbols
|
||||
route-guard-membership test-discovery test-runner-api
|
||||
mutation-test-coverage any-budget:t11 build-scope pack-policy
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"scripts": {
|
||||
"build": "tsup",
|
||||
"clean": "rm -rf dist",
|
||||
"test": "node --import tsx/esm --test tests/scaffold.test.ts tests/auth.test.ts tests/options-schema.test.ts tests/multi-instance.test.ts tests/fetch-interceptor.test.ts tests/provider.test.ts tests/gemini-sanitize.test.ts tests/combos.test.ts tests/config-shim.test.ts tests/features.test.ts tests/feature-defaults.test.ts tests/usable-combo.test.ts tests/disk-snapshot-perms.test.ts tests/fork-features.test.ts tests/auto-combo-context.test.ts tests/provider-id-routing.test.ts tests/management-read-token.test.ts tests/auto-sync.test.ts tests/model-allowlist.test.ts tests/log-level.test.ts tests/effort-tier-variants.test.ts",
|
||||
"test": "node --import tsx/esm --test tests/scaffold.test.ts tests/auth.test.ts tests/options-schema.test.ts tests/multi-instance.test.ts tests/fetch-interceptor.test.ts tests/provider.test.ts tests/gemini-sanitize.test.ts tests/combos.test.ts tests/config-shim.test.ts tests/features.test.ts tests/feature-defaults.test.ts tests/usable-combo.test.ts tests/disk-snapshot-perms.test.ts tests/fork-features.test.ts tests/auto-combo-context.test.ts tests/provider-id-routing.test.ts tests/management-read-token.test.ts tests/auto-sync.test.ts tests/model-allowlist.test.ts tests/log-level.test.ts tests/effort-tier-variants.test.ts tests/naming.test.ts tests/free-budget-magnitude.test.ts",
|
||||
"prepublishOnly": "npm run clean && npm run build && npm test"
|
||||
},
|
||||
"keywords": [
|
||||
|
||||
@@ -23,27 +23,11 @@ const ALIAS_UPPER_MAX_CHARS = 5;
|
||||
|
||||
// ── Auto Combo Types ─────────────────────────────────────────────────────
|
||||
|
||||
export type AutoVariant =
|
||||
| "coding"
|
||||
| "fast"
|
||||
| "cheap"
|
||||
| "offline"
|
||||
| "smart"
|
||||
| "lkgp";
|
||||
export type AutoVariant = "coding" | "fast" | "cheap" | "offline" | "smart" | "lkgp";
|
||||
|
||||
export const AUTO_VARIANTS: AutoVariant[] = [
|
||||
"coding",
|
||||
"fast",
|
||||
"cheap",
|
||||
"offline",
|
||||
"smart",
|
||||
"lkgp",
|
||||
];
|
||||
export const AUTO_VARIANTS: AutoVariant[] = ["coding", "fast", "cheap", "offline", "smart", "lkgp"];
|
||||
|
||||
export const AUTO_VARIANT_DESCRIPTIONS: Record<
|
||||
AutoVariant | "default",
|
||||
string
|
||||
> = {
|
||||
export const AUTO_VARIANT_DESCRIPTIONS: Record<AutoVariant | "default", string> = {
|
||||
default: "Best provider via scoring",
|
||||
coding: "Quality-first for code tasks",
|
||||
fast: "Latency-optimized routing",
|
||||
@@ -83,24 +67,15 @@ function titleCaseAlias(alias: string): string {
|
||||
* 3. Neither → undefined.
|
||||
*/
|
||||
export function shortProviderLabel(
|
||||
enrichment:
|
||||
| { providerDisplayName?: string; providerAlias?: string }
|
||||
| undefined,
|
||||
enrichment: { providerDisplayName?: string; providerAlias?: string } | undefined
|
||||
): string | undefined {
|
||||
if (!enrichment) return undefined;
|
||||
const raw =
|
||||
typeof enrichment.providerDisplayName === "string"
|
||||
? enrichment.providerDisplayName.trim()
|
||||
: "";
|
||||
typeof enrichment.providerDisplayName === "string" ? enrichment.providerDisplayName.trim() : "";
|
||||
if (raw.length > 0 && raw.length <= PROVIDER_LABEL_MAX_CHARS) return raw;
|
||||
const alias =
|
||||
typeof enrichment.providerAlias === "string"
|
||||
? enrichment.providerAlias.trim()
|
||||
: "";
|
||||
const alias = typeof enrichment.providerAlias === "string" ? enrichment.providerAlias.trim() : "";
|
||||
if (alias.length > 0) {
|
||||
return alias.length <= ALIAS_UPPER_MAX_CHARS
|
||||
? alias.toUpperCase()
|
||||
: titleCaseAlias(alias);
|
||||
return alias.length <= ALIAS_UPPER_MAX_CHARS ? alias.toUpperCase() : titleCaseAlias(alias);
|
||||
}
|
||||
// Long displayName with no alias to fall back on: keep the long label
|
||||
// rather than dropping the provider prefix entirely.
|
||||
@@ -131,10 +106,33 @@ export function normaliseFreeLabel(name: string): string {
|
||||
|
||||
// ── Free Budget Formatting ────────────────────────────────────────────────
|
||||
|
||||
/** Scales, largest first, so the unit is chosen by descending magnitude. */
|
||||
const TOKEN_UNITS = [
|
||||
[1e9, "B"],
|
||||
[1e6, "M"],
|
||||
[1e3, "K"],
|
||||
] as const;
|
||||
|
||||
/**
|
||||
* Format a token count as a short magnitude string: `25M`, `1.5K`, `999`.
|
||||
*
|
||||
* The unit has to be picked from the value that will actually be *printed*,
|
||||
* not from the raw input. `toFixed(1)` rounds to the nearest tenth, so at the
|
||||
* K scale 999_950 and above render as `1000.0` — and by then the M branch has
|
||||
* already been skipped, producing `1000K` for a number that is `1M`. The same
|
||||
* carry turns just under a billion into `1000M`. When the rounded value reaches
|
||||
* the next scale, re-render at that scale instead.
|
||||
*/
|
||||
function fmtTokens(n: number): string {
|
||||
if (n >= 1e9) return (n / 1e9).toFixed(1).replace(/\.0$/, "") + "B";
|
||||
if (n >= 1e6) return (n / 1e6).toFixed(1).replace(/\.0$/, "") + "M";
|
||||
if (n >= 1e3) return (n / 1e3).toFixed(1).replace(/\.0$/, "") + "K";
|
||||
for (let i = 0; i < TOKEN_UNITS.length; i++) {
|
||||
const [scale, suffix] = TOKEN_UNITS[i]!;
|
||||
if (n < scale) continue;
|
||||
const value = Number((n / scale).toFixed(1));
|
||||
// `Number()` also drops a trailing `.0`, which the previous regex did.
|
||||
if (value < 1000 || i === 0) return `${value}${suffix}`;
|
||||
const [nextScale, nextSuffix] = TOKEN_UNITS[i - 1]!;
|
||||
return `${Number((n / nextScale).toFixed(1))}${nextSuffix}`;
|
||||
}
|
||||
return String(n);
|
||||
}
|
||||
|
||||
@@ -184,15 +182,11 @@ export function formatFreeBudget(params: {
|
||||
*/
|
||||
export function formatAutoComboName(
|
||||
variant: AutoVariant | undefined,
|
||||
candidateCount?: number,
|
||||
candidateCount?: number
|
||||
): string {
|
||||
const label = variant
|
||||
? variant.charAt(0).toUpperCase() + variant.slice(1)
|
||||
: "Default";
|
||||
const label = variant ? variant.charAt(0).toUpperCase() + variant.slice(1) : "Default";
|
||||
const count =
|
||||
typeof candidateCount === "number" && candidateCount > 0
|
||||
? ` (${candidateCount}p)`
|
||||
: "";
|
||||
typeof candidateCount === "number" && candidateCount > 0 ? ` (${candidateCount}p)` : "";
|
||||
return `Auto: ${label}${count}`;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
/**
|
||||
* Magnitude-crossover regression for the free-budget suffix
|
||||
* (`formatFreeBudget` -> `fmtTokens` in @omniroute/opencode-plugin/src/naming.ts).
|
||||
*
|
||||
* `fmtTokens` picked its unit from the raw input and then rounded with
|
||||
* `toFixed(1)`. Rounding can carry a value into the next magnitude *after* that
|
||||
* branch has been skipped, so 999_950..999_999 rendered as "1000K" rather than
|
||||
* "1M", and just under a billion rendered as "1000M" rather than "1B".
|
||||
*
|
||||
* These budgets are not always round numbers: `monthlyTokens` is derived from the
|
||||
* remote Radar feed (`tokensPerMonth`) and can be replaced wholesale by a
|
||||
* user-local override, so the crossover band is reachable with real data.
|
||||
*
|
||||
* Kept in its own file rather than added to naming.test.ts so this does not
|
||||
* collide with the coverage being added for `formatFreeBudget` in #11660.
|
||||
*/
|
||||
|
||||
import { test } from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
|
||||
import { formatFreeBudget } from "../src/naming.js";
|
||||
|
||||
/** `recurring-daily` is the shortest path from a token count to a rendered suffix. */
|
||||
const daily = (monthlyTokens: number) =>
|
||||
formatFreeBudget({ freeType: "recurring-daily", monthlyTokens }).replace(" tokens/day", "");
|
||||
|
||||
test("fmtTokens: a rounded K value that reaches 1000 is promoted to M", () => {
|
||||
// 999_950 is the true boundary, not 999_999: toFixed(1) rounds to the nearest
|
||||
// tenth, so 999.95K is the first value that carries to "1000.0".
|
||||
assert.equal(daily(999_950), "1M");
|
||||
assert.equal(daily(999_999), "1M");
|
||||
});
|
||||
|
||||
test("fmtTokens: a rounded M value that reaches 1000 is promoted to B", () => {
|
||||
assert.equal(daily(999_950_000), "1B");
|
||||
assert.equal(daily(999_999_999), "1B");
|
||||
});
|
||||
|
||||
test("fmtTokens: values just below the rounding boundary keep their own unit", () => {
|
||||
// The promotion must not fire early — 999.9K still rounds to 999.9, not 1000.
|
||||
assert.equal(daily(999_949), "999.9K");
|
||||
assert.equal(daily(999_499), "999.5K");
|
||||
assert.equal(daily(999_499_999), "999.5M");
|
||||
});
|
||||
|
||||
test("fmtTokens: ordinary magnitudes are unchanged", () => {
|
||||
assert.equal(daily(0), "0");
|
||||
assert.equal(daily(999), "999");
|
||||
assert.equal(daily(1_000), "1K");
|
||||
assert.equal(daily(1_500), "1.5K");
|
||||
assert.equal(daily(1_000_000), "1M");
|
||||
assert.equal(daily(1_500_000), "1.5M");
|
||||
assert.equal(daily(25_000_000), "25M");
|
||||
assert.equal(daily(1_234_567), "1.2M");
|
||||
assert.equal(daily(1_000_000_000), "1B");
|
||||
assert.equal(daily(2_500_000_000), "2.5B");
|
||||
});
|
||||
|
||||
test("fmtTokens: B is the top unit, so a carry there has nowhere to go", () => {
|
||||
// Deliberately pinned: promoting past B would need a unit that does not exist,
|
||||
// so "1000B" is the intended output rather than an oversight.
|
||||
assert.equal(daily(999_999_999_999), "1000B");
|
||||
});
|
||||
|
||||
test("formatFreeBudget: the promotion applies to every token-bearing branch", () => {
|
||||
assert.equal(
|
||||
formatFreeBudget({ freeType: "recurring-monthly", monthlyTokens: 999_999 }),
|
||||
"1M tokens/month"
|
||||
);
|
||||
assert.equal(
|
||||
formatFreeBudget({ freeType: "recurring-credit", creditTokens: 999_999 }),
|
||||
"1M credits"
|
||||
);
|
||||
assert.equal(
|
||||
formatFreeBudget({ freeType: "one-time-initial", creditTokens: 999_999 }),
|
||||
"1M credits (one-time)"
|
||||
);
|
||||
});
|
||||
81
@omniroute/opencode-plugin/tests/naming.test.ts
Normal file
@@ -0,0 +1,81 @@
|
||||
/**
|
||||
* Tests for `formatFreeBudget` (@omniroute/opencode-plugin/src/naming.ts):
|
||||
* formats a free-tier model's budget info into a short human-readable
|
||||
* suffix, branching on `freeType`.
|
||||
*/
|
||||
|
||||
import { test } from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
|
||||
import { formatFreeBudget, type FreeModelFreeType } from "../src/naming.js";
|
||||
|
||||
test("formatFreeBudget: recurring-daily formats tokens/day", () => {
|
||||
assert.equal(
|
||||
formatFreeBudget({ freeType: "recurring-daily", monthlyTokens: 25_000_000 }),
|
||||
"25M tokens/day"
|
||||
);
|
||||
});
|
||||
|
||||
test("formatFreeBudget: recurring-monthly formats tokens/month", () => {
|
||||
assert.equal(
|
||||
formatFreeBudget({ freeType: "recurring-monthly", monthlyTokens: 1_000_000 }),
|
||||
"1M tokens/month"
|
||||
);
|
||||
});
|
||||
|
||||
test("formatFreeBudget: recurring-credit formats credits", () => {
|
||||
assert.equal(
|
||||
formatFreeBudget({ freeType: "recurring-credit", creditTokens: 10_000_000 }),
|
||||
"10M credits"
|
||||
);
|
||||
});
|
||||
|
||||
test("formatFreeBudget: one-time-initial formats credits with (one-time) suffix", () => {
|
||||
assert.equal(
|
||||
formatFreeBudget({ freeType: "one-time-initial", creditTokens: 1_000_000 }),
|
||||
"1M credits (one-time)"
|
||||
);
|
||||
});
|
||||
|
||||
test("formatFreeBudget: keyless has no token/credit args", () => {
|
||||
assert.equal(formatFreeBudget({ freeType: "keyless" }), "(keyless)");
|
||||
});
|
||||
|
||||
test("formatFreeBudget: discontinued has no token/credit args", () => {
|
||||
assert.equal(formatFreeBudget({ freeType: "discontinued" }), "(discontinued)");
|
||||
});
|
||||
|
||||
test("formatFreeBudget: missing token/credit counts default to 0", () => {
|
||||
assert.equal(
|
||||
formatFreeBudget({ freeType: "recurring-daily" }),
|
||||
"0 tokens/day"
|
||||
);
|
||||
});
|
||||
|
||||
test("formatFreeBudget: unrecognised freeType falls through to the default branch", () => {
|
||||
// `freeType` is populated from catalog data at runtime, so a value the
|
||||
// build doesn't know about is reachable even though TypeScript treats the
|
||||
// `default:` arm as dead code for a well-typed caller.
|
||||
assert.equal(
|
||||
formatFreeBudget({ freeType: "some-future-type" as FreeModelFreeType }),
|
||||
""
|
||||
);
|
||||
});
|
||||
|
||||
test("formatFreeBudget: sub-1K token count is not abbreviated", () => {
|
||||
assert.equal(
|
||||
formatFreeBudget({ freeType: "recurring-daily", monthlyTokens: 500 }),
|
||||
"500 tokens/day"
|
||||
);
|
||||
});
|
||||
|
||||
test("formatFreeBudget: the 999_999 rounding wart is fixed — promotes to 1M", () => {
|
||||
// `toFixed(1)` rounds 999999/1e3 up to "1000.0" before the `>= 1e6` threshold
|
||||
// check has a chance to apply. fmtTokens now promotes a rounded-up "1000" in
|
||||
// any unit to the next unit up, so this correctly reads "1M" instead of the
|
||||
// old "1000K" wart.
|
||||
assert.equal(
|
||||
formatFreeBudget({ freeType: "recurring-daily", monthlyTokens: 999_999 }),
|
||||
"1M tokens/day"
|
||||
);
|
||||
});
|
||||
@@ -46,7 +46,7 @@ Repository map and Reference Documentation sections below.
|
||||
|
||||
## Project at a Glance
|
||||
|
||||
**OmniRoute** — unified AI proxy/router. One endpoint, 354 LLM providers, auto-fallback.
|
||||
**OmniRoute** — unified AI proxy/router. One endpoint, 357 LLM providers, auto-fallback.
|
||||
|
||||
| Layer | Location | Purpose |
|
||||
| ------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
|
||||
36
Dockerfile
@@ -184,19 +184,29 @@ ENV NODE_OPTIONS="--max-old-space-size=${OMNIROUTE_BUILD_MEMORY_MB}"
|
||||
# silently leaving no standalone bundle. Next derives the worker count from
|
||||
# CIRCLE_NODE_TOTAL (workers = N-1). (#10060)
|
||||
#
|
||||
# Lowered 8 → 3 (7 workers → 2). Every page-data worker inherits NODE_OPTIONS
|
||||
# above, so the ceiling is per PROCESS, not per build: 7 workers on a 16 GB
|
||||
# GitHub runner (ubuntu-24.04 / ubuntu-24.04-arm, 4 vCPU) exhausted the host and
|
||||
# buildkit failed the whole step with `ResourceExhausted: ... cannot allocate
|
||||
# memory`. The compile phase always finished ("✓ Compiled successfully in
|
||||
# 4.2min"); the kernel killed the build right after "Collecting page data using
|
||||
# 7 workers". It was intermittent for a while and went 100% on 2026-08-22, which
|
||||
# is what a threshold being crossed by ordinary codebase growth looks like.
|
||||
# tests/unit/docker-build-memory-budget.test.ts does the arithmetic and fails if
|
||||
# either knob is raised past what a 16 GB runner holds. 2 workers also stops
|
||||
# oversubscribing the runner's 4 vCPU, which 7 did. Override for a big builder:
|
||||
# `--build-arg OMNIROUTE_BUILD_WORKERS=8`.
|
||||
ARG OMNIROUTE_BUILD_WORKERS=3
|
||||
# Lowered 8 → 3 (7 workers → 2) in #11419, then 3 → 2 (2 workers → 1) in #7518.
|
||||
# Every page-data worker inherits NODE_OPTIONS above, so the ceiling is per
|
||||
# PROCESS, not per build: 7 workers on a 16 GB GitHub runner (ubuntu-24.04 /
|
||||
# ubuntu-24.04-arm, 4 vCPU) exhausted the host and buildkit failed the whole
|
||||
# step with `ResourceExhausted: ... cannot allocate memory`. The compile phase
|
||||
# always finished ("✓ Compiled successfully in 4.2min"); the kernel killed the
|
||||
# build right after "Collecting page data using N workers".
|
||||
#
|
||||
# #11419's first fix (8 → 3) modeled the per-worker peak as an INFERENCE
|
||||
# (2560 MB, guessed from "7 workers didn't fit") and assumed the parent
|
||||
# process's RSS tracked the V8 heap ceiling. Both assumptions were wrong: a
|
||||
# live VPS reproduction (issue #7518, dmesg OOM-killer report) measured the
|
||||
# real per-process RSS directly at ~4.5 GB, independent of the NODE_OPTIONS
|
||||
# heap flag (Turbopack itself is native/Rust, outside the V8 heap) — and it
|
||||
# applies to the parent process too, not just workers. 2 workers (3 processes
|
||||
# × 4.5 GB = 13.5 GB) still didn't fit the 12.288 GB (75%) budget on a 16 GB
|
||||
# runner, matching the still-live publish failures after #11419 merged. 1
|
||||
# worker (2 processes × 4.5 GB = 9 GB) fits with headroom to spare.
|
||||
# tests/unit/docker-build-memory-budget.test.ts does the arithmetic against
|
||||
# the measured figure and fails if either knob is raised past what a 16 GB
|
||||
# runner holds. Override for a big builder: `--build-arg
|
||||
# OMNIROUTE_BUILD_WORKERS=8`.
|
||||
ARG OMNIROUTE_BUILD_WORKERS=2
|
||||
ENV CIRCLE_NODE_TOTAL=${OMNIROUTE_BUILD_WORKERS}
|
||||
|
||||
COPY . ./
|
||||
|
||||
@@ -1,447 +0,0 @@
|
||||
---
|
||||
title: "Provider Reference"
|
||||
version: 3.8.50
|
||||
lastUpdated: 2026-08-21
|
||||
---
|
||||
|
||||
# Provider Reference
|
||||
|
||||
> **Auto-generated** from `src/shared/constants/providers.ts` — do not edit by hand.
|
||||
> Regenerate with: `npm run gen:provider-reference`
|
||||
> **Last generated:** 2026-08-21
|
||||
|
||||
Total providers: **349**. See category breakdown below.
|
||||
|
||||
## Categories
|
||||
|
||||
- **Free** — free tier with API key (configured via dashboard)
|
||||
- **No-auth** — public endpoints that require no key or sign-in at all
|
||||
- **OAuth** — sign-in flow handled by OmniRoute, no API key needed
|
||||
- **Web cookie** — wraps the provider's web app via cookie auth
|
||||
- **API key** — paid provider configured via API key (free credits may apply)
|
||||
- **Local** — runs on the user's machine (Ollama, LM Studio, vLLM, etc.)
|
||||
- **Search** — web search providers
|
||||
- **Audio** — audio-only providers (TTS/STT)
|
||||
- **Upstream proxy** — providers that proxy to other providers
|
||||
- **Cloud agent** — long-running coding agents (Codex Cloud, Devin, Jules)
|
||||
- **System** — OmniRoute-internal providers (loopback, etc.)
|
||||
|
||||
Additional tags: `image`, `video`, `aggregator`, `enterprise`, `embed/rerank`, `self-hosted`.
|
||||
|
||||
`Tool calling` (where shown): `native` — real function-calling API; `emulated` — the `tools` array is prompt-emulated via `webTools.ts` (regex-parsed `<tool>{...}</tool>` blocks); `none` — `tools` is currently silently dropped. See #7286.
|
||||
|
||||
Use the dashboard at `/dashboard/providers` to enable, configure, and test each provider.
|
||||
|
||||
---
|
||||
|
||||
## No-auth Providers (no key required) (11)
|
||||
|
||||
| ID | Alias | Name | Tags | Website | Notes | Tool calling |
|
||||
|----|-------|------|------|---------|-------|--------------|
|
||||
| `aihorde` | `horde` | AI Horde | No-auth | [link](https://aihorde.net) | No API key required — uses AI Horde's documented anonymous key. Adding a free aihorde.net key is optional and only buys higher queue priority (kudos). | — |
|
||||
| `auggie` | `aug` | Augment (Auggie CLI) | No-auth | [link](https://augmentcode.com) | No API key stored by OmniRoute. Install the Auggie CLI and run `auggie login` on this machine, then OmniRoute spawns it locally for each request. | — |
|
||||
| `chipotle` | `pepper` | Chipotle Pepper AI (Free) | No-auth | [link](https://amelia.chipotle.com) | No credentials required. Uses Chipotle's public support chatbot via reverse-engineered SockJS/STOMP protocol. | — |
|
||||
| `cloudflare-playground` | `cfp` | Cloudflare AI Playground | No-auth | [link](https://playground.ai.cloudflare.com) | No credentials required — anonymous browser sessions over a reverse-engineered cf_agent WebSocket protocol (Playwright transport). | — |
|
||||
| `devin-cli-agentic` | `dva` | Devin CLI Agentic Bridge | No-auth | [link](https://docs.devin.ai/work-with-devin/devin-cli) | Authentication is owned by the official Devin CLI in its isolated bridge volume. | emulated |
|
||||
| `duckduckgo-web` | `ddgw` | DuckDuckGo AI Chat | No-auth | [link](https://duckduckgo.com/duckchat) | No credentials required — DuckDuckGo AI Chat is anonymous and free. | emulated |
|
||||
| `felo-web` | `felo` | Felo | No-auth | [link](https://felo.ai) | No credentials required — Felo is a free, no-signup chat/search aggregator. | — |
|
||||
| `opencode` | `oc` | OpenCode Free | No-auth | [link](https://opencode.ai) | No API key required — uses OpenCode's public free endpoint. | — |
|
||||
| `theoldllm` | `tllm` | The Old LLM (Free) | No-auth | [link](https://theoldllm.vercel.app) | No credentials required. The executor auto-generates access tokens via an embedded Playwright browser instance. | — |
|
||||
| `veoaifree-web` | `veo-free` | Veo AI Free | No-auth, video | [link](https://veoaifree.com) | No auth required. Rate limited to 6 requests/hour per IP. | — |
|
||||
| `zcode` | `zc` | ZCode (GLM Coding Plan) | No-auth | [link](https://zcode.z.ai) | No API key stored by OmniRoute. The local ZCode app-server uses the existing builtin:zai-coding-plan login. | — |
|
||||
|
||||
## OAuth Providers (25)
|
||||
|
||||
| ID | Alias | Name | Tags | Website | Notes |
|
||||
|----|-------|------|------|---------|-------|
|
||||
| `agy` | `agy` | Antigravity CLI | OAuth | [link](https://antigravity.google) | Import your Antigravity CLI (`agy`) login (paste/upload its token file), auto-detect a local CLI login, or sign in with Google. Shares the Antigravity backend (incl. Claude models). |
|
||||
| `amazon-q` | `aq` | Amazon Q | OAuth | [link](https://aws.amazon.com/q/developer/) | Uses the same AWS Builder ID or imported refresh-token flow as Kiro, but keeps Amazon Q connections separate. |
|
||||
| `antigravity` | — | Antigravity | OAuth | — | — |
|
||||
| `claude` | `cc` | Claude Code | OAuth | — | — |
|
||||
| `cline` | `cl` | Cline | OAuth | — | — |
|
||||
| `clinepass` | `cp` | ClinePass | OAuth | [link](https://cline.bot/cline-pass) | ClinePass is Cline's $9.99/mo subscription bundling 10 open coding models. Sign in with your Cline account (same login as the Cline CLI/IDE), or paste a direct ClinePass API key (app.cline.bot → Settings → API Keys). A ClinePass subscription unlocks the cline-pass/* models. Reuses the Cline WorkOS OAuth flow. |
|
||||
| `codebuddy-cn` | `cbcn` | CodeBuddy CN | OAuth | [link](https://copilot.tencent.com) | Tencent CodeBuddy CN (copilot.tencent.com). Sign in via the official CLI device-code flow, or paste a direct API key (sent as Authorization: Bearer). Catalog: GLM / Kimi / MiniMax / DeepSeek / Hunyuan. |
|
||||
| `codex` | `cx` | OpenAI Codex | OAuth | — | — |
|
||||
| `cursor` | `cu` | Cursor IDE | OAuth | — | — |
|
||||
| `devin-cli` | `dv` | Devin CLI | OAuth | [link](https://cli.devin.ai) | Requires the Devin CLI binary. Run `devin auth login` to authenticate, or provide your WINDSURF_API_KEY. Install: https://cli.devin.ai |
|
||||
| `devin-desktop` | — | Devin Desktop | OAuth | [link](https://devin.ai) | Paste an existing Devin API key from an authenticated Devin session. Key export availability and steps vary by Devin version and account. |
|
||||
| `ghe-copilot` | `ghe-copilot` | GitHub Enterprise Copilot | OAuth | — | Enter your GHE instance URL (e.g., https://ghe.company.com) in provider settings, then authenticate via device flow. |
|
||||
| `github` | `gh` | GitHub Copilot | OAuth | — | — |
|
||||
| `gitlab-duo` | `gitlab-duo` | GitLab Duo | OAuth | [link](https://docs.gitlab.com/user/duo_agent_platform/code_suggestions/) | GitLab Duo OAuth is not configured. Register an OAuth application at https://gitlab.com/-/profile/applications with redirect URI http://localhost:20128/callback and scopes "ai_features read_user", then set GITLAB_DUO_OAUTH_CLIENT_ID (and optionally GITLAB_DUO_OAUTH_CLIENT_SECRET) and restart. |
|
||||
| `grok-cli` | `gc` | Grok Build | OAuth | — | Sign in with your browser, or paste your ~/.grok/auth.json (or the JWT access token) from the Grok Build CLI; refresh_token is rotated automatically either way. |
|
||||
| `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. |
|
||||
| `qoder` | `if` | Qoder | OAuth | — | — |
|
||||
| `raycast` | `rc` | Raycast Pro AI | OAuth | [link](https://raycast.com/ai) | Unofficial integration — uses your Raycast Pro subscription via credentials from the macOS app (Auto-Import or manual capture). May break on Raycast updates. Not for redistribution; personal use only. |
|
||||
| `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 <token>', ~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. |
|
||||
| `zed` | `zd` | Zed IDE | OAuth | [link](https://zed.dev) | Zed stores LLM provider credentials (OpenAI, Anthropic, Google, Mistral, xAI) in the OS keychain. Use the Import button below to discover and import them automatically. |
|
||||
| `zed-hosted` | — | Zed Hosted Models | OAuth | [link](https://zed.dev) | Sign in with your Zed account (native-app sign-in). OmniRoute generates a one-time RSA keypair and opens zed.dev to authorize it — on a remote/headless install, copy the resulting 127.0.0.1 callback URL from your browser's address bar and paste it back here. Distinct from the 'Zed IDE' credential-import entry above: this proxies chat completions through Zed's own hosted model aggregator (cloud.zed.dev), fronting Anthropic/OpenAI/Google/xAI models under your Zed plan. |
|
||||
|
||||
## Web Cookie Providers (35)
|
||||
|
||||
| ID | Alias | Name | Tags | Website | Notes | Tool calling |
|
||||
|----|-------|------|------|---------|-------|--------------|
|
||||
| `adapta-web` | `adp-web` | Adapta.org (Adapta One Web) | Web cookie | [link](https://agent.adapta.one) | Paste your __client cookie value from .clerk.agent.adapta.one (DevTools → Application → Cookies) | emulated |
|
||||
| `adobe-firefly` | `firefly` | Adobe Firefly (Image/Video) | Web cookie | [link](https://firefly.adobe.com) | RECOMMENDED: firefly.adobe.com signed-in → F12 → Network → click firefly-3p.ff.adobe.io (generate-async or models/discovery) → Request Headers → Authorization → copy the token AFTER 'Bearer ' (starts with eyJ…). Cookie-only from firefly.adobe.com mints a GUEST token → 401/403; only multi-domain IMS cookies (adobelogin.com) or that Bearer JWT work. Unofficial/experimental media + Limits. | — |
|
||||
| `blackbox-web` | `bb-web` | Blackbox Web (Subscription) | Web cookie | [link](https://app.blackbox.ai) | Paste your __Secure-authjs.session-token value or full cookie header from app.blackbox.ai | emulated |
|
||||
| `chatgpt-web` | `cgpt-web` | ChatGPT Web (Plus/Pro) | Web cookie | [link](https://chatgpt.com) | Paste your __Secure-next-auth.session-token cookie value from chatgpt.com | emulated |
|
||||
| `chatgpt-web-codex` | `cgpt-codex` | ChatGPT Web (Codex) | Web cookie | [link](https://chatgpt.com) | Paste the full ChatGPT Cookie header. OmniRoute verifies it in an isolated headless browser profile. | native |
|
||||
| `claude-web` | `cw` | Claude Web | Web cookie | [link](https://claude.ai) | Paste your session cookie from claude.ai | none |
|
||||
| `conol-web` | `cnl` | Conol (Unofficial/Experimental) | Web cookie | [link](https://conol.ai) | Use browser sign-in, or paste the full Cookie header from conol.ai. The __Secure-better-auth.session_token cookie is required. | — |
|
||||
| `copilot-m365-web` | `m365copilot` | Microsoft 365 Copilot (BizChat) | Web cookie | [link](https://m365.cloud.microsoft/chat) | Sign in at m365.cloud.microsoft/chat, then open DevTools → Network → filter 'WS' → click the Chathub WebSocket connection. Copy both the access_token query parameter AND the account-specific Chathub path segment from its request URL (wss://…/Chathub/<path>?…&access_token=…). It is NOT an Authorization: Bearer header on an XHR/Fetch request. The token is short-lived; this is an unofficial integration. Optional: store a refresh_token in providerSpecificData.refreshToken (any Microsoft device-code/refresh flow for the substrate.office.com/sydney scopes) and OmniRoute pre-flight-refreshes the access token itself — otherwise re-capture after every ~75 min expiry. | — |
|
||||
| `copilot-web` | `copilot` | Microsoft Copilot Web | Web cookie | [link](https://copilot.microsoft.com) | Paste the access_token from an authenticated copilot.microsoft.com request (DevTools → Network → Authorization), or export a HAR while logged in | — |
|
||||
| `deepseek-web` | `ds-web` | DeepSeek Web | Web cookie | [link](https://chat.deepseek.com) | Paste your userToken from chat.deepseek.com — DevTools → Application → Local Storage → userToken | emulated |
|
||||
| `doubao-web` | `db` | Dola Web (ByteDance) | Web cookie | [link](https://www.dola.com) | Paste the full Cookie header from www.dola.com. It should include sessionid, ttwid, and s_v_web_id. If s_v_web_id is unavailable, fp=verify_... from a chat/completion request URL can be used as a fallback. | — |
|
||||
| `gemini-business` | `gembiz` | Gemini Business (Enterprise) | Web cookie | [link](https://business.gemini.google) | From your enterprise account: open business.gemini.google/home/cid/{your-cid}, then copy __Secure-1PSID and __Secure-1PSIDTS cookies from DevTools → Application → Cookies. Paste as a cookie header below. | — |
|
||||
| `gemini-web` | `gweb` | Gemini Web (Free) | Web cookie | [link](https://gemini.google.com) | Paste your __Secure-1PSID cookie value from gemini.google.com. Optionally add __Secure-1PSIDTS separated by semicolon. | emulated |
|
||||
| `grok-web` | `gw` | Grok Web (Subscription) | Web cookie | [link](https://grok.com) | Paste the full grok.com cookie line from DevTools → Application → Cookies. Include both `sso` and `sso-rw` (e.g. `sso=...; sso-rw=...`) — Grok's anti-bot rejects `sso` on its own. | — |
|
||||
| `hailuo-web` | `hailuo-web` | Hailuo Web (MiniMax) | Web cookie | [link](https://hailuo.ai) | Open hailuo.ai, log in, then open DevTools → Application → Local Storage → copy the "_token" value. device_id/uuid fingerprint fields are derived automatically; if requests fail, re-capture _token (sessions can expire). | — |
|
||||
| `huggingchat` | `huggingchat` | HuggingChat (Free) | Web cookie | [link](https://huggingface.co/chat) | Paste the full Cookie header from huggingface.co/chat (DevTools → Network → /chat/conversation → Request Headers → Cookie). It should include hf-chat and may also include token / aws-waf-token. | — |
|
||||
| `hyperagent` | `ha` | HyperAgent (Unofficial/Experimental) | Web cookie | [link](https://hyperagent.com) | Paste the full Cookie header from hyperagent.com (DevTools → Network → any request → Request Headers → Cookie). Session cookies power chat + billing usage. | — |
|
||||
| `inner-ai` | `in-ai` | Inner.ai (Subscription) | Web cookie | [link](https://app.innerai.com) | Paste your token cookie and email separated by a space: open DevTools → Application → Cookies → .innerai.com, copy the token value, then append a space and your Inner.ai login email. Example: eyJhbG... user@example.com | emulated |
|
||||
| `kimi-web` | `kimi-web` | Kimi Web | Web cookie | [link](https://www.kimi.com/code?aff=omniroute) | Paste access_token from www.kimi.com DevTools → Application → Local Storage. A legacy kimi-auth cookie is also accepted. | — |
|
||||
| `lmarena` | `lma` | Arena (Free) | Web cookie | [link](https://arena.ai) | Paste the full Cookie header from arena.ai (DevTools → Network → request → Cookie). Include arena-auth-prod-v1.0/.1… and cf_clearance/__cf_bm when present. OmniRoute uses Chrome TLS impersonation; if Arena still 403s, set providerSpecificData.recaptchaV3Token from a live browser session. | — |
|
||||
| `microsoft-designer-web` | `msdesigner` | Microsoft Designer (Image Generation) | Web cookie | [link](https://designer.microsoft.com) | Sign in at designer.microsoft.com, then open DevTools → Network, generate an image, and find the request to DallE.ashx?action=GetDallEImagesCogSci. Copy the value of its Authorization: Bearer header (the access_token — no 'Bearer ' prefix). The token is short-lived; this is an unofficial, reverse-engineered integration. | — |
|
||||
| `muse-spark-web` | `ms-web` | Muse Spark Web (Meta AI) | Web cookie | [link](https://www.meta.ai) | Paste your ecto_1_sess cookie AND the ecto1:... WS auth token from meta.ai. Capture the ecto1: token in DevTools → Network → WS → the clippy request's Authorization query param. Example: ecto_1_sess=4240a308...NVDg0; ecto1:ABCD... | emulated |
|
||||
| `notion-web` | `nw` | Notion AI Web (Unofficial/Experimental) | Web cookie | [link](https://www.notion.so) | Paste only the token_v2 cookie VALUE from app.notion.com (DevTools → Application → Cookies → token_v2). Do not paste token_v2= or the full Cookie header. Workspace is auto-detected; space_id / notion_user_id are optional. | — |
|
||||
| `perplexity-web` | `pplx-web` | Perplexity Web (Pro/Max) | Web cookie | [link](https://www.perplexity.ai) | Paste your __Secure-next-auth.session-token cookie value from perplexity.ai | emulated |
|
||||
| `poe-web` | `poe` | Poe Web (Subscription) | Web cookie | [link](https://poe.com) | Paste your p-b cookie value from poe.com (DevTools → Application → Cookies → p-b) | — |
|
||||
| `promptql` | `pql` | PromptQL (Unofficial/Experimental) | Web cookie | [link](https://prompt.ql.app) | Paste the Bearer JWT from prompt.ql.app DevTools → Network → graphql → Authorization (token only). Optional projectId + session Cookie for refresh. | — |
|
||||
| `qwen-web` | `qwen-web` | Qwen Web (Free) | Web cookie | [link](https://chat.qwen.ai) | Open chat.qwen.ai, log in, then open DevTools → Application → Local Storage → copy the "token" value (or use tongyi_sso_ticket cookie as Bearer token). | emulated |
|
||||
| `t3-web` | `t3chat` | t3.chat (Pro/Free) | Web cookie | [link](https://t3.chat) | Open t3.chat in your browser, log in, then open DevTools → Application → Local Storage → https://t3.chat. Copy the value of 'convex-session-id'. Also open DevTools → Network, copy the Cookie header from any request. Paste both values here. See provider setup docs for a step-by-step guide. | emulated |
|
||||
| `tencent-aistudio-web` | `tasw` | Tencent AI Studio (Free) | Web cookie | [link](https://aistudio.tencent.ai) | Log in to aistudio.tencent.ai, open DevTools -> Network, copy any request Cookie header containing session tokens. | — |
|
||||
| `tinycms-web` | `tcw` | TinyCMS Web (Free/Sub) | Web cookie | [link](https://site.tinycms.xyz) | Go to site.tinycms.xyz, open DevTools → Application → Local Storage, copy the value of 'app-config-uuid' (starts with 'R'), and paste it here. | — |
|
||||
| `v0-vercel-web` | `v0-vercel-web` | v0 Vercel Web (Code Gen) | Web cookie | [link](https://v0.dev) | Paste your session cookie from v0.dev (DevTools → Application → Cookies) | — |
|
||||
| `venice-web` | `ven` | Venice Web (Privacy) | Web cookie | [link](https://venice.ai) | Paste your session cookie from venice.ai (DevTools → Application → Cookies) | — |
|
||||
| `yuanbao-web` | `ybw` | Tencent Yuanbao (Free) | Web cookie | [link](https://yuanbao.tencent.com) | Log in to yuanbao.tencent.com, then paste the full Cookie header (DevTools → Network → any /api request → Request Headers → Cookie). It must contain hy_user and hy_token. | — |
|
||||
| `zai-web` | `zw` | Z.ai Web | Web cookie | [link](https://chat.z.ai) | Copy the "token" value from chat.z.ai → DevTools → Application → Local Storage. Do not copy cookies; OmniRoute handles the per-request CAPTCHA through its browser transport. | — |
|
||||
| `zenmux-free` | `zmf` | ZenMux Free (Web) | Web cookie | [link](https://zenmux.ai) | Login at zenmux.ai, then export all cookies using EditThisCookie or Cookie-Editor and paste the full Cookie header string here. Refresh every ~30 days. | — |
|
||||
|
||||
## API Key Providers (paid / paid-with-free-credits) (233)
|
||||
|
||||
| ID | Alias | Name | Tags | Website | Notes |
|
||||
|----|-------|------|------|---------|-------|
|
||||
| `360ai` | `360ai` | 360 AI | API key | [link](https://ai.360.cn) | Get API key at ai.360.cn |
|
||||
| `agentrouter` | `agentrouter` | AgentRouter | API key, aggregator | [link](https://agentrouter.org) | $200 free credits on signup - multi-model routing gateway |
|
||||
| `agnes` | `agnes` | Agnes AI | API key, video | [link](https://agnes-ai.com) | Get API key at agnes-ai.com |
|
||||
| `ai21` | `ai21` | AI21 Labs | API key | [link](https://www.ai21.com) | $10 trial credits on signup (valid 3 months), no credit card required |
|
||||
| `aimlapi` | `aiml` | AI/ML API | API key, aggregator | [link](https://aimlapi.com) | Free tier paused (2026) — AI/ML API is now pay-as-you-go only (min $20 top-up); no recurring free credits. |
|
||||
| `ainative` | `ainative` | AINative Studio | API key | [link](https://ainative.studio) | Create a free API key at ainative.studio (no card), then paste it here as a Bearer token. |
|
||||
| `aion` | `aion` | Aion Labs | API key | [link](https://www.aionlabs.ai) | Create a free API key at aionlabs.ai (no card), then paste it here as a Bearer token. |
|
||||
| `alibaba` | `ali` | Alibaba Cloud Model Studio | API key | [link](https://bailian.console.alibabacloud.com/) | — |
|
||||
| `alibaba-cn` | `ali-cn` | Alibaba (China) | API key | [link](https://dashscope.console.aliyun.com/) | — |
|
||||
| `ant-ling` | `ling` | Ant Ling / Ring (inclusionAI) | API key | [link](https://developer.ant-ling.com/en/docs/) | Register and create an API key at the Ant Ling API console (https://chat.ant-ling.com/open), then paste it here. OmniRoute routes chat traffic to https://api.ant-ling.com/v1/chat/completions; the provider is OpenAI-compatible and also exposes an Anthropic-compatible surface. |
|
||||
| `anthropic` | `anthropic` | Anthropic | API key | [link](https://platform.claude.com) | — |
|
||||
| `anyapi` | `anyapi` | AnyAPI AI | API key, aggregator | [link](https://anyapi.ai) | Free plan: 100,000 ANY Tokens/day and 100 RPM for eligible Free/Basic models; no credit card required. |
|
||||
| `api-airforce` | `af` | Api.airforce | API key | [link](https://api.airforce) | 55 free tier models including Grok-3, Claude 3.7, Qwen3, Kimi-K2, Gemini 2.5 Flash, DeepSeek-V3 |
|
||||
| `arcee-ai` | `arcee` | Arcee AI | API key | [link](https://arcee.ai) | Get API key at arcee.ai |
|
||||
| `auriko` | `auriko` | Auriko | API key, aggregator | [link](https://www.auriko.ai) | Free plan publishes 1,000 Platform RPM and 10,000 BYOK RPM. Platform inference still passes through provider cost; this is not a free-token pool or unlimited free inference. |
|
||||
| `azure-ai` | `azure-ai` | Azure AI Foundry | API key, enterprise | [link](https://learn.microsoft.com/azure/ai-foundry) | Use your Azure AI Foundry key. Base URL can be https://<resource>.services.ai.azure.com/openai/v1/ or https://<resource>.openai.azure.com/openai/v1/. |
|
||||
| `azure-openai` | `azure` | Azure OpenAI | API key, enterprise | [link](https://azure.microsoft.com/products/ai-services/openai-service) | Use your Azure OpenAI API key. Base URL should be your resource endpoint, for example https://my-resource.openai.azure.com. |
|
||||
| `bai` | `bai` | b.ai | API key | [link](https://b.ai) | Bearer API key for the b.ai OpenAI-compatible LLM gateway (distinct from TheB.AI). Create a key at https://docs.b.ai, then use https://api.b.ai/v1 as the OpenAI-compatible base URL. |
|
||||
| `baichuan` | `baichuan` | Baichuan | API key | [link](https://www.baichuan-ai.com/) | Get API key at platform.baichuan-ai.com |
|
||||
| `baidu` | `baidu` | Baidu (ERNIE) | API key | [link](https://ernie.baidu.com/) | Get API key at console.bce.baidu.com |
|
||||
| `bailian-coding-plan` | `bcp` | Alibaba Token Plan | API key | [link](https://www.alibabacloud.com/help/en/model-studio/token-plan-overview) | — |
|
||||
| `baseten` | `baseten` | Baseten | API key | [link](https://baseten.co) | $30 free trial credits for GPU inference |
|
||||
| `bazaarlink` | `bzl` | BazaarLink | API key | [link](https://bazaarlink.ai) | Use your BazaarLink API key (starts with sk-bl-) in Authorization: Bearer <key>. OpenAI SDK works with base URL https://bazaarlink.ai/api/v1. Models use provider/model-name format. |
|
||||
| `bedrock` | `bedrock` | Amazon Bedrock | API key, enterprise | [link](https://aws.amazon.com/bedrock) | Use your Amazon Bedrock API key and configure the AWS region where your models are enabled (for example eu-west-2). OmniRoute calls Bedrock's native Converse API directly. |
|
||||
| `black-forest-labs` | `bfl` | Black Forest Labs | API key, image | [link](https://blackforestlabs.ai) | — |
|
||||
| `blackbox` | `bb` | Blackbox AI | API key | [link](https://blackbox.ai) | Limited free access is available through Blackbox; model availability and account limits apply |
|
||||
| `bluesminds` | `bm` | BluesMinds | API key | [link](https://www.bluesminds.com) | Free daily pi credits — supports 200+ models including GPT-4o, GPT-4.1, Claude Sonnet 4.5, Gemini 2.0 Flash, DeepSeek V4, Qwen, Kimi K2 |
|
||||
| `byteplus` | `bpm` | BytePlus ModelArk | API key | [link](https://console.byteplus.com/ark) | — |
|
||||
| `bytez` | `bytez` | Bytez | API key | [link](https://bytez.com) | $1 free credits, refreshes every 4 weeks |
|
||||
| `cerebras` | `cerebras` | Cerebras | API key | [link](https://inference.cerebras.ai) | Free Trial: 1M tokens/day, 30K TPM, 5 RPM — no credit card. |
|
||||
| `charm-hyper` | `charm-hyper` | Charm Hyper | API key | [link](https://hyper.charm.land) | 100 free monthly Hypercredits on signup |
|
||||
| `chat-oripe` | `chat-oripe` | Chat Oripe | API key, aggregator | [link](https://api.oriper.com) | Official metadata advertises 2M tokens/month, but the public site and documentation were blocked during audit; treat the quota and brand mapping as unconfirmed. |
|
||||
| `chatanywhere` | `chatanywhere` | ChatAnywhere | API key, aggregator | [link](https://chatanywhere.tech) | Personal, educational or research use only: public documentation cites 10,000 points/day and 200 requests/day per IP/key; do not use for commercial traffic. |
|
||||
| `cheaperinference` | `cinf` | Cheaper Inference | API key | [link](https://cheaperinference.com/?utm_source=omniroute) | — |
|
||||
| `chenzk` | `chenzk` | Chenzk API | API key | [link](https://chenzk.top) | — |
|
||||
| `chutes` | `chutes` | Chutes.ai | API key, aggregator | [link](https://chutes.ai) | Bearer API key for the Chutes OpenAI-compatible gateway. |
|
||||
| `clarifai` | `clarifai` | Clarifai | API key, enterprise | [link](https://docs.clarifai.com) | Use your Clarifai PAT or app-specific API key. OmniRoute targets the OpenAI-compatible endpoint at https://api.clarifai.com/v2/ext/openai/v1 and authenticates with Authorization: Key <token>. |
|
||||
| `cloudcode-one` | `cloudcode-one` | CloudCode.ONE | API key, aggregator | [link](https://cloudcode.one) | Published free models include glm-4.7-flash and glm-4.6v-flash; no numeric quota is published, and key creation may require credit or a coupon. |
|
||||
| `cloudflare-ai` | `cf` | Cloudflare Workers AI | API key | [link](https://developers.cloudflare.com/workers-ai) | Requires API Token AND Account ID (found at dash.cloudflare.com) |
|
||||
| `clova-studio` | `clova` | Naver CLOVA Studio | API key | [link](https://api.ncloud-docs.com/docs/en/ai-naver-clovastudio-summary) | — |
|
||||
| `codestral` | `codestral` | Codestral | API key | [link](https://mistral.ai) | — |
|
||||
| `cohere` | `cohere` | Cohere | API key | [link](https://cohere.com) | Free Trial: 1,000 API calls/month for testing, no credit card required |
|
||||
| `command-code` | `cmd` | Command Code | API key | [link](https://commandcode.ai/) | Use a Command Code API key. Requests are sent to Command Code's /alpha/generate endpoint. |
|
||||
| `coze` | `coze` | Coze | API key | [link](https://coze.com) | Get API key at coze.com/open/api |
|
||||
| `crof` | `crof` | CrofAI | API key | [link](https://crof.ai) | — |
|
||||
| `cursor-api` | `cua` | Cursor API | API key | [link](https://cursor.com/dashboard/api) | Paste a Cursor user API key (crsr_...) from cursor.com/dashboard/api. OmniRoute exchanges it for a session token on demand; no IDE or cursor-agent install is needed. Usage bills to the Cursor plan that owns the key. |
|
||||
| `dahl` | `dahl` | Dahl | API key | [link](https://inference.dahl.global) | Click 'Add Account' to auto-generate a token, or add a manual API key. |
|
||||
| `databricks` | `databricks` | Databricks | API key, enterprise | [link](https://www.databricks.com) | — |
|
||||
| `datarobot` | `datarobot` | DataRobot | API key, enterprise | [link](https://docs.datarobot.com) | Use your DataRobot API token. Optional Base URL can be the account root (for LLM Gateway) or a deployment URL under /api/v2/deployments/<id>. |
|
||||
| `deepai` | `deepai` | DeepAI | API key, image | [link](https://deepai.org) | Use your DeepAI API key. Get one at deepai.org — requires a Pro subscription ($9.99/mo). |
|
||||
| `deepinfra` | `deepinfra` | DeepInfra | API key | [link](https://deepinfra.com) | Free signup credits for API testing and model exploration |
|
||||
| `deepseek` | `ds` | DeepSeek | API key | [link](https://platform.deepseek.com) | 5M free tokens on signup - no credit card required |
|
||||
| `dgrid` | `dgrid` | DGrid | API key | [link](https://dgrid.ai) | DGrid Free Models Router: 10 requests/minute and 100 requests/day. A $5 lifetime top-up unlocks up to 20 requests/minute and 1,000 requests/day. |
|
||||
| `dify` | `dify` | Dify | API key | [link](https://dify.ai) | Get API key from your Dify instance. |
|
||||
| `digitalocean` | `digitalocean` | DigitalOcean | API key | [link](https://docs.digitalocean.com/products/ai-platform/) | — |
|
||||
| `dit` | `dai` | DIT.ai | API key | [link](https://dit.ai) | Use your dit.ai API key in Authorization: Bearer <key>. Fully OpenAI-compatible — a drop-in replacement, just change the base URL to https://api.dit.ai/v1. |
|
||||
| `doubao` | `doubao` | Doubao | API key | [link](https://doubao.com) | Get API key at console.volcengine.com |
|
||||
| `dxnt` | `dxnt` | DXNT / DX Token | API key, aggregator | [link](https://www.dxnt.com) | Free accounts are documented at 100 calls/day; the quota may increase through invitations and can vary by account. |
|
||||
| `electronhub` | `electronhub` | Electron Hub | API key, aggregator | [link](https://www.electronhub.ai) | Free plan: 5 RPM, $0.25 weekly credits and 10 Neutrinos/day for :free models; family budgets also apply. |
|
||||
| `empower` | `empower` | Empower | API key, aggregator | [link](https://docs.empower.dev) | Bearer API key for the Empower OpenAI-compatible endpoint. |
|
||||
| `factory` | `factory` | Factory | API key | [link](https://factory.ai) | Bearer API key for the Factory OpenAI-compatible gateway. |
|
||||
| `fal-ai` | `fal` | Fal.ai | API key, image | [link](https://fal.ai) | — |
|
||||
| `fastrouter` | `fastrouter` | FastRouter | API key, aggregator | [link](https://fastrouter.ai) | Models with the :free suffix allow 10 requests/day per organization and model; availability may change. |
|
||||
| `featherless-ai` | `featherless` | Featherless AI | API key | [link](https://featherless.ai) | Free tier available — no credit card required |
|
||||
| `fenayai` | `fenayai` | FenayAI | API key, aggregator | [link](https://fenayai.com) | Bearer API key for the FenayAI OpenAI-compatible gateway. |
|
||||
| `fireworks` | `fireworks` | Fireworks AI | API key | [link](https://fireworks.ai) | $1 free starter credits on signup for API testing |
|
||||
| `free-ai` | `free-ai` | Free.ai | API key, aggregator | [link](https://free.ai) | 30,000 tokens/day cover self-hosted models after email verification. Usage beyond the pool can bill at raw cost, and premium external models are paid. |
|
||||
| `freeaiapikey` | `faik` | FreeAIAPIKey | API key | [link](https://freeaiapikey.com) | — |
|
||||
| `freebuff` | `freebuff` | Freebuff | API key | [link](https://freebuff.com) | Enter Freebuff / Codebuff Auth Token (obtained via CLI login or automated harvester). |
|
||||
| `freeinference` | `freeinference` | FreeInference | API key, aggregator | [link](https://freeinference.org) | Free research access without a card; non-Harvard applicants require manual approval and no numeric quota is publicly guaranteed. |
|
||||
| `freemodel-dev` | `fmd` | FreeModel.dev | API key | [link](https://freemodel.dev) | $300 free credits on signup — no credit card required. Access GPT-5.4 and GPT-5.5 (OpenAI's latest flagship models) through an OpenAI-compatible API. |
|
||||
| `freetheai` | `fta` | FreeTheAi | API key, aggregator | [link](https://freetheai.xyz) | Join the FreeTheAi Discord to get your free API key. |
|
||||
| `friendliai` | `friendli` | FriendliAI | API key | [link](https://friendli.ai) | Free tier for serverless inference — no credit card required |
|
||||
| `g4f-gemini` | `g4fgem` | g4f.space — Gemini | API key, aggregator | [link](https://g4f.space) | No auth required. Free tier is limited to 5 requests/minute — sign up at g4f.dev/members.html for higher limits. |
|
||||
| `g4f-groq` | `g4fgroq` | g4f.space — Groq | API key, aggregator | [link](https://g4f.space) | No auth required. Free tier is limited to 5 requests/minute — sign up at g4f.dev/members.html for higher limits. |
|
||||
| `g4f-nvidia` | `g4fnv` | g4f.space — NVIDIA | API key, aggregator | [link](https://g4f.space) | No auth required. Free tier is limited to 5 requests/minute — sign up at g4f.dev/members.html for higher limits. |
|
||||
| `g4f-ollama` | `g4foll` | g4f.space — Ollama | API key, aggregator | [link](https://g4f.space) | No auth required. Free tier is limited to 5 requests/minute — sign up at g4f.dev/members.html for higher limits. |
|
||||
| `g4f-pollinations` | `g4fpol` | g4f.space — Pollinations | API key, aggregator | [link](https://g4f.space) | No auth required. Free tier is limited to 5 requests/minute — sign up at g4f.dev/members.html for higher limits. |
|
||||
| `galadriel` | `galadriel` | Galadriel | API key | [link](https://galadriel.com) | ⚠️ **DEPRECATED.** api.galadriel.ai no longer resolves (sweep 2026-06-19); the inference API appears discontinued. |
|
||||
| `gemini` | `gemini` | Gemini (Google AI Studio) | API key | [link](https://aistudio.google.com) | Free tier available through Google AI Studio; current per-model quotas and regional limits apply |
|
||||
| `getgoapi` | `ggo` | GoAPI | API key, aggregator | [link](https://api.getgoapi.com) | — |
|
||||
| `gigachat` | `gigachat` | GigaChat (Sber) | API key | [link](https://developers.sber.ru) | — |
|
||||
| `gitlab` | `gitlab` | GitLab Duo PAT | API key | [link](https://docs.gitlab.com/user/duo_agent_platform/code_suggestions/) | GitLab personal access token for the public Code Suggestions API. Configure a self-hosted base URL when not using gitlab.com. |
|
||||
| `gitlawb` | `glb` | Gitlawb Opengateway (MiMo) | API key | [link](https://opengateway.gitlawb.com) | Free MiMo (xiaomi/mimo-v2.5) revoked 2026-05 — Opengateway is now a pay-as-you-go credit gateway; no recurring free model. |
|
||||
| `gitlawb-gmi` | `glb-gmi` | Gitlawb Opengateway (GMI Cloud) | API key | [link](https://opengateway.gitlawb.com) | Free Nemotron promo ended 2026-06 — the GMI Cloud route is now pay-as-you-go credit only. |
|
||||
| `glm` | `glm` | GLM Coding | API key | [link](https://z.ai/subscribe) | — |
|
||||
| `glm-cn` | `glmcn` | GLM Coding (China) | API key | [link](https://open.bigmodel.cn) | — |
|
||||
| `glmt` | `glmt` | GLM Thinking | API key | [link](https://open.bigmodel.cn) | — |
|
||||
| `groq` | `groq` | Groq | API key | [link](https://groq.com) | Free tier: 30 RPM / 14.4K RPD — no credit card |
|
||||
| `hackclub` | `hc` | Hackclub AI | API key, aggregator | [link](https://ai.hackclub.com) | Sign in with your Hack Club account at ai.hackclub.com. |
|
||||
| `haiper` | `hp` | Haiper | API key, video | [link](https://haiper.ai) | Get API key at haiper.ai/haiper-api |
|
||||
| `hcnsec` | `hcnsec` | Huancheng Public API | API key | [link](https://api.hcnsec.cn) | Get API key at api.hcnsec.cn |
|
||||
| `helixmind` | `helixmind` | HelixMind | API key, aggregator | [link](https://helixmind.online) | Previously circulated 3 RPM/50 RPD and no-card claims were not confirmed during the 2026-08-02 audit; current quota and billing require account verification. |
|
||||
| `helyxai` | `helyxai` | Helyx AI | API key, aggregator | [link](https://helyxai.space) | Operational Free plan documents 100,000 tokens/day; the site's separate 2M+ marketing claim conflicts and is not treated as a quota guarantee. |
|
||||
| `heroku` | `heroku` | Heroku AI | API key, enterprise | [link](https://www.heroku.com) | — |
|
||||
| `huggingface` | `hf` | HuggingFace | API key | [link](https://huggingface.co) | Free Inference API for thousands of models (Whisper, VITS, SDXL…) |
|
||||
| `hyperbolic` | `hyp` | Hyperbolic | API key | [link](https://hyperbolic.xyz) | $1-5 trial credits on signup for serverless inference |
|
||||
| `ideogram` | `ideo` | Ideogram | API key | [link](https://ideogram.ai) | Get API key at ideogram.ai/docs/api |
|
||||
| `iflytek` | `iflytek` | iFlytek Spark | API key | [link](https://xinghuo.xfyun.cn) | Get API key at console.xfyun.cn |
|
||||
| `inception` | `inception` | Inception | API key | [link](https://docs.inceptionlabs.ai) | 10M free tokens on signup, no credit card required. |
|
||||
| `inference-net` | `inet` | Inference.net | API key | [link](https://inference.net) | $25 free credits on signup plus research grants available |
|
||||
| `internlm` | `internlm` | InternLM (Intern-S1) | API key | [link](https://internlm.intern-ai.org.cn/) | Free monthly quota ~1M input / 3M output tokens (~10 RPM) |
|
||||
| `jina-ai` | `jina` | Jina AI (Foundation API) | API key, embed/rerank | [link](https://jina.ai) | Bearer API key for api.jina.ai — embeddings, rerank, classify, segment, and search. Dashboard keys take precedence over JINA_AI_API_KEY. This is not the Reader / r.jina.ai card and does not fetch URLs. |
|
||||
| `jina-reader` | `jr` | Jina Reader (r.jina.ai) | API key | [link](https://jina.ai/reader) | Bearer API key for r.jina.ai URL-to-markdown (/v1/web/fetch only). Does not serve /v1/embeddings or /v1/rerank. The same Jina token as Foundation API works; OmniRoute reuses a jina-ai dashboard key or JINA_AI_API_KEY when this card is empty. |
|
||||
| `kenari` | `kenari` | Kenari | API key | [link](https://kenari.id) | Use your Kenari API key (kn-...) in Authorization: Bearer <key>. Fully OpenAI-compatible. API base URL: https://kenari.id/v1. |
|
||||
| `kie` | `kie` | KIE.AI | API key | [link](https://kie.ai) | — |
|
||||
| `kilo-gateway` | `kg` | Kilo Gateway | API key, aggregator | [link](https://kilo.ai) | — |
|
||||
| `kimi` | `kimi` | Kimi (Legacy Moonshot API) | API key | [link](https://platform.kimi.ai?aff=omniroute) | — |
|
||||
| `kimi-coding-apikey` | `kmca` | Kimi Code API Key | API key | [link](https://www.kimi.com/code?aff=omniroute) | — |
|
||||
| `lambda-ai` | `lambda` | Lambda AI | API key | [link](https://lambda.ai) | — |
|
||||
| `laozhang` | `lz` | LaoZhang AI | API key, aggregator | [link](https://api.laozhang.ai) | — |
|
||||
| `leonardo` | `leo` | Leonardo AI | API key, video | [link](https://leonardo.ai) | Get API key at leonardo.ai/developer |
|
||||
| `liquid` | `liquid` | Liquid AI | API key | [link](https://liquid.ai) | Get API key at liquid.ai |
|
||||
| `literouter` | `literouter` | LiteRouter | API key, aggregator | [link](https://literouter.com) | Free model variants use the :free suffix; daily credit limits vary by model and free input is capped at 5,000 tokens. |
|
||||
| `llamagate` | `llamagate` | LlamaGate | API key | [link](https://llamagate.ai) | — |
|
||||
| `llm-kiwi` | `llmkiwi` | LLM.Kiwi | API key, aggregator | [link](https://llm.kiwi) | Free plan exposes auto and hrLLM; the published 40 requests/hour limit applies to hrLLM. |
|
||||
| `llm7` | `llm7` | LLM7.io | API key | [link](https://llm7.io) | Use any non-empty key (for example 'unused'). If older built-in models return model_unavailable, use Available Models → Import from /models or Auto-Sync; verified live model: gemini-3.1-flash-lite. |
|
||||
| `llmgateway` | `llmgateway` | LLM Gateway | API key, aggregator | [link](https://llmgateway.io) | Hosted Free plan: free-priced models are limited to 5 requests per 10 minutes when the account has no credits. |
|
||||
| `logfare` | `logfare` | Logfare | API key, aggregator | [link](https://logfare.ai) | Create a free account at https://logfare.ai/register (username/password, no email verification) to get an instant API key, then paste it here as a Bearer token. |
|
||||
| `longcat` | `lc` | LongCat AI | API key | [link](https://longcat.chat/platform/docs) | Free: one-time 10M-token grant after account signup + KYC verification (LongCat-2.0). One-time only — not a recurring daily/monthly allowance. |
|
||||
| `magnific` | `freepik` | Magnific | API key, image | [link](https://www.magnific.com) | Get an API key at magnific.com/user/api-keys (header x-magnific-api-key). Legacy Freepik developer keys still work. |
|
||||
| `maritalk` | `maritalk` | Maritalk | API key | [link](https://www.maritaca.ai) | — |
|
||||
| `meganova-ai` | `meganova-ai` | MegaNova AI | API key, aggregator | [link](https://meganova.ai) | Free signup without a card. Published Tier 1 per-model quotas total 550 requests/day; they are not a shared global pool, and paid overage can apply if enabled. |
|
||||
| `meta-llama` | `meta` | Meta Llama API | API key | [link](https://llama.developer.meta.com) | — |
|
||||
| `minimax` | `minimax` | Minimax Coding | API key, video | [link](https://www.minimax.io) | — |
|
||||
| `minimax-cn` | `minimax-cn` | Minimax (China) | API key | [link](https://www.minimaxi.com) | — |
|
||||
| `mistral` | `mistral` | Mistral | API key | [link](https://mistral.ai) | Free Experiment tier: rate-limited access to all models, no credit card required |
|
||||
| `mixedbread` | `mxbai` | Mixedbread AI | API key | [link](https://www.mixedbread.com) | Bearer API key for the Mixedbread embeddings API. |
|
||||
| `mixlayer` | `mixlayer` | Mixlayer | API key, aggregator | [link](https://www.mixlayer.com) | The qwen/qwen3.5-4b-free model is free for prototyping and rate-limited; no fixed public RPM or daily quota is confirmed. |
|
||||
| `mnn-ai` | `mnn-ai` | MNN AI | API key, aggregator | [link](https://mnnai.ru) | Free plan: $1 monthly credits, 10 RPM and access only to models marked Free. |
|
||||
| `modal` | `mdl` | Modal | API key, enterprise | [link](https://modal.com/docs) | Use the bearer token that protects your Modal deployment, if enabled. Base URL should point to your OpenAI-compatible Modal app, for example https://<workspace>--<app>.modal.run/v1. |
|
||||
| `modelscope` | `ms` | ModelScope | API key | [link](https://modelscope.cn) | Free tier via ModelScope API-Inference — Alibaba account required. |
|
||||
| `monsterapi` | `monster` | MonsterAPI | API key | [link](https://monsterapi.ai) | ⚠️ **DEPRECATED.** Monster API shuttered operations on 2026-06-30. Use alternative OpenAI-compatible providers. |
|
||||
| `moonshot` | `moonshot` | Kimi | API key | [link](https://platform.kimi.ai?aff=omniroute) | — |
|
||||
| `morph` | `morph` | Morph | API key | [link](https://morphllm.com) | Free tier: 250K credits/month, $0 |
|
||||
| `muse-code` | `mc` | Muse Code (Meta) | API key | [link](https://github.com/meta-llama/llama-stack) | Use your META_API_KEY env var as a Bearer token. Muse Code CLI uses the OpenAI Responses API wire format (POST /responses). |
|
||||
| `naga-ac` | `naga` | Naga.ac | API key, aggregator | [link](https://naga.ac) | Get API key at naga.ac — Google/GitHub/Discord signup available. |
|
||||
| `naga-ai` | `naga-ai` | Naga AI | API key, aggregator | [link](https://naga.ac) | Models marked :free are publicly listed, but no numeric quota is confirmed. Naga's policy warns that free-tier prompts and outputs may be collected or used for training. |
|
||||
| `nanogpt` | `nanogpt` | NanoGPT | API key | [link](https://nano-gpt.com) | — |
|
||||
| `nara` | `nara` | NaraRouter | API key | [link](https://bynara.id) | Get a free API key via NaraRouter's Telegram channel, then paste it here as a Bearer token. |
|
||||
| `navy` | `navy` | NavyAI | API key | [link](https://api.navy) | Create a free API key from the NavyAI dashboard, then paste it here as a Bearer token. |
|
||||
| `nebius` | `nebius` | Nebius AI | API key | [link](https://nebius.com) | ~$1 trial credits on signup for API testing |
|
||||
| `nlpcloud` | `nlpc` | NLP Cloud | API key | [link](https://docs.nlpcloud.com) | Use your NLP Cloud API key in Authorization: Token <key>. OmniRoute targets the chatbot endpoint on https://api.nlpcloud.io/v1/gpu/<model>/chatbot by default. |
|
||||
| `nomic` | `nomic` | Nomic | API key | [link](https://nomic.ai) | Get API key at atlas.nomic.ai |
|
||||
| `nous-research` | `nous` | Nous Research | API key | [link](https://portal.nousresearch.com/help) | Use your Nous Portal API key. OmniRoute targets the official OpenAI-compatible inference endpoint at https://inference-api.nousresearch.com/v1. |
|
||||
| `novita` | `novita` | Novita AI | API key, video, aggregator | [link](https://novita.ai) | $0.50 trial credits on signup (valid about 1 year) |
|
||||
| `nscale` | `nscale` | nScale | API key | [link](https://nscale.com) | $5 free credits on signup for inference testing |
|
||||
| `nube` | `nube` | Nube.sh | API key | [link](https://nube.sh) | — |
|
||||
| `nvidia` | `nvidia` | NVIDIA NIM | API key | [link](https://build.nvidia.com) | Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...) |
|
||||
| `oci` | `oci` | OCI Generative AI | API key, enterprise | [link](https://www.oracle.com/artificial-intelligence/generative-ai) | Use your OCI Generative AI API key or IAM bearer token. Base URL can be https://inference.generativeai.<region>.oci.oraclecloud.com/openai/v1/. |
|
||||
| `ofoxai` | `ofoxai` | OfoxAI | API key, aggregator | [link](https://ofox.ai) | The current catalog advertises 10+ free models without a public numeric quota; review upstream provenance, retention and training terms before production use. |
|
||||
| `ollama-cloud` | `ollamacloud` | Ollama Cloud | API key | [link](https://ollama.com/settings/keys) | — |
|
||||
| `openadapter` | `oad` | OpenAdapter | API key | [link](https://openadapter.dev) | Use your OpenAdapter API key in Authorization: Bearer sk-cv-<key>. Fully OpenAI-compatible. API base URL: https://api.openadapter.in/v1. |
|
||||
| `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 |
|
||||
| `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 |
|
||||
| `orcarouter` | `orcarouter` | OrcaRouter | API key | [link](https://www.orcarouter.ai) | — |
|
||||
| `ovhcloud` | `ovh` | OVHcloud AI | API key | [link](https://www.ovhcloud.com) | — |
|
||||
| `perplexity` | `pplx` | Perplexity | API key | [link](https://www.perplexity.ai) | — |
|
||||
| `piapi` | `pi` | PiAPI | API key, aggregator | [link](https://piapi.ai) | — |
|
||||
| `pioneer` | `pn` | Pioneer AI | API key | [link](https://pioneer.ai) | $75 free usage credits — no credit card required |
|
||||
| `plamo` | `plamo` | PLaMo | API key | [link](https://plamo.preferredai.jp/api) | — |
|
||||
| `poe` | `poe` | Poe | API key, aggregator | [link](https://creator.poe.com/api-reference) | Bearer API key for the Poe OpenAI-compatible API. |
|
||||
| `poixe-ai` | `poixe-ai` | Poixe AI | API key, aggregator | [link](https://poixe.com) | Current public free limits are small and model-group specific: 2 RPM/5 RPD for large-cup models and 20 RPM/50 RPD for small-cup models. |
|
||||
| `pollinations` | `pol` | Pollinations AI | API key, video | [link](https://pollinations.ai) | Anonymous/keyless access to the documented free models is best-effort. Local v3.8.50 verification (2026-07-31) returned 401 via OmniRoute and Cloudflare 1010 on direct upstream probes from the same network. Premium models still require a Pollinations API key from enter.pollinations.ai. |
|
||||
| `poolside` | `poolside` | Poolside | API key | [link](https://poolside.ai) | Laguna S 2.1 and XS 2.1 are free during Preview; no public numeric quota is published. |
|
||||
| `predibase` | `predibase` | Predibase | API key | [link](https://predibase.com) | ⚠️ **DEPRECATED.** serving.app.predibase.com no longer resolves (sweep 2026-06-19); the managed serving API appears discontinued. |
|
||||
| `publicai` | `publicai` | PublicAI | API key | [link](https://publicai.co) | Requires an API key — one-time signup credit, then paid |
|
||||
| `qianfan` | `qianfan` | Baidu Qianfan | API key | [link](https://cloud.baidu.com/product-s/qianfan_home) | — |
|
||||
| `qiniu` | `qiniu` | Qiniu | API key | [link](https://www.qiniu.com) | — |
|
||||
| `qwen-cloud` | `qwc` | Qwen Cloud | API key | [link](https://www.qwencloud.com/) | — |
|
||||
| `qwen-cloud-token-plan` | `qct` | Qwen Cloud Token Plan | API key | [link](https://www.qwencloud.com/pricing/token-plan) | — |
|
||||
| `recraft` | `recraft` | Recraft | API key, image | [link](https://recraft.ai) | — |
|
||||
| `regolo` | `regolo` | Regolo AI | API key | [link](https://regolo.ai) | Get your Regolo API key from regolo.ai, then paste it here as a Bearer token. |
|
||||
| `reka` | `reka` | Reka | API key | [link](https://docs.reka.ai/chat/overview) | Use your Reka API key. OmniRoute supports the OpenAI-compatible base URL https://api.reka.ai/v1 and sends both Authorization and X-Api-Key headers for compatibility. |
|
||||
| `requesty` | `requesty` | Requesty | API key | [link](https://requesty.ai) | Free tier ~200 requests/day - multi-model routing gateway (300+ models) |
|
||||
| `routeway` | `routeway` | Routeway | API key | [link](https://routeway.ai) | Create a free API key at routeway.ai, then paste it here as a Bearer token. |
|
||||
| `runwayml` | `runway` | Runway | API key, video | [link](https://docs.dev.runwayml.com) | Use your Runway API key in Authorization: Bearer <key>. OmniRoute targets the current Runway API at https://api.dev.runwayml.com/v1 and sends the required X-Runway-Version header automatically. |
|
||||
| `sambanova` | `samba` | SambaNova | API key | [link](https://sambanova.ai) | $5 free credits on signup (30-day validity), no credit card required |
|
||||
| `sap` | `sap` | SAP Generative AI Hub | API key, enterprise | [link](https://help.sap.com/docs/sap-ai-core/sap-ai-core-service-guide/generative-ai-hub-in-sap-ai-core) | Use your SAP AI Core bearer token. Base URL can be your AI_API_URL root or a deploymentUrl from Generative AI Hub. |
|
||||
| `sarvam` | `sarvam` | Sarvam AI | API key | [link](https://docs.sarvam.ai) | ₹1,000 in free signup credits — never expire |
|
||||
| `scaleway` | `scw` | Scaleway AI | API key | [link](https://www.scaleway.com/en/docs/ai-data/generative-apis/) | 1M free tokens for new accounts — EU/GDPR compliant (Paris), Qwen3 235B & Llama 70B |
|
||||
| `sealion` | `sealion` | SEA-LION | API key | [link](https://sea-lion.ai) | Sign in at sea-lion.ai with Google (no card, no region wall), create an API key, then paste it here. |
|
||||
| `segmind` | `segmind` | Segmind | API key, image, video | [link](https://segmind.com) | Use your Segmind API key in the x-api-key header. OmniRoute targets https://api.segmind.com/v1/<model> and returns the generated image/video bytes directly. |
|
||||
| `sensenova` | `sensenova` | SenseNova | API key | [link](https://platform.sensenova.cn) | Get API key at platform.sensenova.cn |
|
||||
| `siliconflow` | `siliconflow` | SiliconFlow | API key | [link](https://cloud.siliconflow.com) | $1 free credits plus currently listed $0 models after identity verification; availability and limits may change |
|
||||
| `snowflake` | `snowflake` | Snowflake Cortex | API key, enterprise | [link](https://www.snowflake.com) | — |
|
||||
| `sparkdesk` | `sparkdesk` | SparkDesk | API key | [link](https://xinghuo.xfyun.cn) | Get API key at console.xfyun.cn |
|
||||
| `speka` | `speka` | Speka AI | API key, aggregator | [link](https://speka.me) | Free plan: $1 monthly usage, 10 RPM, one API key and access to open models and the playground; no card required. |
|
||||
| `stability-ai` | `stability` | Stability AI | API key, image | [link](https://stability.ai) | — |
|
||||
| `stepfun` | `stepfun` | StepFun | API key | [link](https://stepfun.com) | Get API key at platform.stepfun.com |
|
||||
| `sumopod` | `sumopod` | SumoPod | API key | [link](https://ai.sumopod.com) | Use your SumoPod API key (sk-...) in Authorization: Bearer <key>. Fully OpenAI-compatible. API base URL: https://ai.sumopod.com/v1. |
|
||||
| `suno` | `suno` | Suno | API key | [link](https://suno.ai) | Paste session cookie from suno.ai (Clerk auth) |
|
||||
| `synthetic` | `synthetic` | Synthetic | API key, aggregator | [link](https://synthetic.new) | — |
|
||||
| `tabitoken` | `tabitoken` | TabiToken | API key, aggregator | [link](https://tabitoken.com) | — |
|
||||
| `tencent` | `tencent` | Tencent Hunyuan | API key | [link](https://hunyuan.tencent.com) | Get API key at console.cloud.tencent.com |
|
||||
| `thebai` | `thebai` | TheB.AI | API key, aggregator | [link](https://theb.ai) | Bearer API key for the TheB.AI OpenAI-compatible gateway. |
|
||||
| `tinyfish` | `tf` | TinyFish Fetch | API key | [link](https://docs.tinyfish.ai/fetch-api) | X-API-Key from agent.tinyfish.ai/api-keys |
|
||||
| `together` | `together` | Together AI | API key, video | [link](https://www.together.ai) | — |
|
||||
| `token-kiosk` | `tk` | Token Kiosk | API key | [link](https://agent-router.gaib.ai) | Use your Token Kiosk API key in Authorization: Bearer <key>. Fully OpenAI-compatible gateway. API base URL: https://agent-router.gaib.ai/v1. |
|
||||
| `tokenreply` | `tokenreply` | TokenReply | API key, aggregator | [link](https://www.tokenreply.com) | Free-tagged models have model- and campaign-specific daily limits; no fixed global free quota is published. |
|
||||
| `tokenrouter` | `trk` | TokenRouter | API key | [link](https://tokenrouter.com) | Use your TokenRouter API key in Authorization: Bearer <key>. Fully OpenAI-compatible. API base URL: https://api.tokenrouter.com/v1. |
|
||||
| `topaz` | `topaz` | Topaz | API key, image | [link](https://topazlabs.com) | — |
|
||||
| `typhoon` | `typhoon` | Typhoon | API key | [link](https://docs.opentyphoon.ai) | Free API key with a 5 req/s and 200 req/m rate limit. |
|
||||
| `udio` | `udio` | Udio | API key | [link](https://udio.com) | Paste session cookie from udio.com (Supabase auth) |
|
||||
| `uncloseai` | `unc` | UncloseAI | API key | [link](https://uncloseai.com) | No auth required. API accepts any non-empty string as key for identification. If older built-in models return 404, use Available Models → Import from /models or Auto-Sync; verified live model: solidrust/Hermes-3-Llama-3.1-8B-AWQ. |
|
||||
| `unorouter` | `unorouter` | UnoRouter | API key, aggregator | [link](https://unorouter.ai) | Models with the :free suffix do not debit balance; limit is 1 request/minute per free model per user. |
|
||||
| `upstage` | `upstage` | Upstage | API key | [link](https://www.upstage.ai) | — |
|
||||
| `v0-vercel` | `v0` | v0 (Vercel) | API key | [link](https://v0.dev) | — |
|
||||
| `venice` | `venice` | Venice.ai | API key | [link](https://venice.ai) | — |
|
||||
| `vercel-ai-gateway` | `vag` | Vercel AI Gateway | API key, aggregator | [link](https://vercel.com/docs/ai-gateway) | — |
|
||||
| `vertex` | `vertex` | Vertex AI | API key, enterprise | [link](https://cloud.google.com/vertex-ai) | Provide Service Account JSON or OAuth access_token |
|
||||
| `vertex-partner` | `vp` | Vertex AI Partners | API key, enterprise | [link](https://cloud.google.com/vertex-ai) | Provide the same Service Account JSON used for Vertex AI partner models. |
|
||||
| `void-ai` | `void-ai` | Void AI | API key, aggregator | [link](https://voidai.app) | The public model catalog marks some models with a free plan requirement, but access is conditional and no numeric quota is confirmed. |
|
||||
| `volcengine` | `volcengine` | Volcengine | API key | [link](https://www.volcengine.com) | — |
|
||||
| `voyage-ai` | `voyage` | Voyage AI | API key, embed/rerank | [link](https://www.voyageai.com) | Bearer API key for Voyage AI embeddings and rerank APIs. |
|
||||
| `wafer` | `wafer` | Wafer AI | API key | [link](https://wafer.ai) | — |
|
||||
| `wandb` | `wandb` | Weights & Biases Inference | API key | [link](https://wandb.ai) | — |
|
||||
| `watsonx` | `watsonx` | IBM watsonx.ai Gateway | API key, enterprise | [link](https://www.ibm.com/products/watsonx-ai) | Use your watsonx bearer token. Base URL can be https://<region>.ml.cloud.ibm.com/ml/gateway/v1/ or a self-managed /ml/gateway/v1 endpoint. |
|
||||
| `writer` | `writer` | Writer | API key | [link](https://dev.writer.com) | — |
|
||||
| `x5lab` | `x5lab` | X5Lab | API key | [link](https://x5lab.dev) | Use your X5Lab API key (x5-...) in Authorization: Bearer <key>. Fully OpenAI-compatible. API base URL: https://api.x5lab.dev/v1. |
|
||||
| `xai` | `xai` | xAI (Grok) | API key | [link](https://x.ai) | Use an official xAI API key, or sign in with xAI OAuth. Grok Build JWT sessions remain a separate provider. |
|
||||
| `xiaomi-mimo` | `mimo` | Xiaomi MiMo | API key | [link](https://mimo.mi.com) | — |
|
||||
| `xiaomi-mimo-token-plan` | `mimotp` | Xiaomi MiMo Token Plan | API key | [link](https://mimo.mi.com) | — |
|
||||
| `yi` | `yi` | Yi (01.AI) | API key | [link](https://01.ai) | Get API key at platform.lingyiwanwu.com |
|
||||
| `yolo-auto` | `yolo-auto` | Yolo-Auto | API key, aggregator | [link](https://yolo-auto.com) | Free API access is request-limited and intended for testing; no numeric daily quota is published and free access is not promised indefinitely. |
|
||||
| `zai` | `zai` | Z.AI | API key | [link](https://open.bigmodel.cn) | — |
|
||||
| `zenmux` | `zm` | ZenMux | API key | [link](https://zenmux.ai) | Use your ZenMux API key in Authorization: Bearer <key>. ZenMux is fully OpenAI-compatible. Base URL: https://zenmux.ai/api/v1. |
|
||||
| `zerolimitai` | `zerolimitai` | ZeroLimitAI | API key, aggregator | [link](https://www.zerolimitai.com) | Temporary free trial is advertised, but official pages conflict between 3 and 7 days; a 100-calls/day claim is not treated as permanent. |
|
||||
| `zylo-api` | `zylo` | Zylo API | API key, aggregator | [link](https://zyloai.net) | Basic plan: 10 RPM, 7,200 requests/day and 200,000 tokens/day; limited to Basic text models. |
|
||||
|
||||
## Local Providers (14)
|
||||
|
||||
| ID | Alias | Name | Tags | Website | Notes |
|
||||
|----|-------|------|------|---------|-------|
|
||||
| `comfyui` | `comfyui` | ComfyUI | Local | [link](https://github.com/comfyanonymous/ComfyUI) | No API key required. Configure the local ComfyUI base URL (default: http://localhost:8188). |
|
||||
| `docker-model-runner` | `dmr` | Docker Model Runner | Local, self-hosted | [link](https://docs.docker.com/ai/model-runner/) | API key optional. Configure the local Docker Model Runner OpenAI-compatible base URL (default: http://localhost:12434/v1). |
|
||||
| `lemonade` | `lemonade` | Lemonade Server | Local, self-hosted | [link](https://lemonade-server.ai) | API key optional. Configure the local Lemonade OpenAI-compatible base URL (default: http://localhost:13305/api/v1). |
|
||||
| `llama-cpp` | `llamacpp` | llama.cpp | Local, self-hosted | [link](https://github.com/ggml-org/llama.cpp) | API key optional (use any value, e.g. sk-no-key-required). Configure the llama-server OpenAI-compatible base URL (default: http://127.0.0.1:8080/v1). Note: if Llamafile is also installed, both default to port 8080 — run only one at a time or override the port. |
|
||||
| `llamafile` | `llamafile` | Llamafile | Local, self-hosted | [link](https://github.com/Mozilla-Ocho/llamafile) | API key optional. Configure the local Llamafile OpenAI-compatible base URL (default: http://127.0.0.1:8080/v1). |
|
||||
| `lm-studio` | `lmstudio` | LM Studio | Local, self-hosted | [link](https://lmstudio.ai) | API key optional. Configure the local LM Studio OpenAI-compatible base URL (default: http://localhost:1234/v1). |
|
||||
| `mlx-gemma` | `mlx-gemma` | MLX Gemma 26B | Local, self-hosted | [link](https://github.com/ml-explore/mlx) | No API key required. Runs mlx-lm server locally on port 11435. Requires uv and mlx-lm installed. Model: mlx-community/gemma-4-26B-A4B-it-qat-q4_0-mlx-aligned (~15.9GB peak memory). |
|
||||
| `mlx-qwen` | `mlx-qwen` | MLX Qwen 3.8 27B | Local, self-hosted | [link](https://github.com/ml-explore/mlx) | No API key required. Runs mlx-lm server locally on port 11436. Requires uv and mlx-lm installed. Model: maglun/Qwen3.8-27B-MLX-Mixed-3.80bpw (~13.1GB peak memory). |
|
||||
| `ollama-local` | `ollama` | Ollama | Local, self-hosted | [link](https://ollama.com) | No API key required. Ollama runs locally — configure its OpenAI-compatible base URL (default: http://localhost:11434/v1) and make sure Ollama is running before connecting. |
|
||||
| `oobabooga` | `ooba` | oobabooga | Local, self-hosted | [link](https://github.com/oobabooga/text-generation-webui) | API key optional. Configure the local oobabooga OpenAI-compatible base URL (default: http://localhost:5000/v1). |
|
||||
| `sdwebui` | `sdwebui` | SD WebUI | Local | [link](https://github.com/AUTOMATIC1111/stable-diffusion-webui) | No API key required. Configure the local WebUI base URL (default: http://localhost:7860). |
|
||||
| `triton` | `triton` | NVIDIA Triton | Local, self-hosted | [link](https://developer.nvidia.com/triton-inference-server) | API key optional. Configure the Triton OpenAI-compatible base URL (default: http://localhost:8000/v1). |
|
||||
| `vllm` | `vllm` | vLLM | Local, self-hosted | [link](https://github.com/vllm-project/vllm) | API key optional. Configure the local vLLM OpenAI-compatible base URL (default: http://localhost:8000/v1). |
|
||||
| `xinference` | `xinference` | XInference | Local, self-hosted | [link](https://inference.readthedocs.io) | API key optional. Configure the local XInference OpenAI-compatible base URL (default: http://localhost:9997/v1). |
|
||||
|
||||
## Search Providers (13)
|
||||
|
||||
| ID | Alias | Name | Tags | Website | Notes |
|
||||
|----|-------|------|------|---------|-------|
|
||||
| `brave-search` | `brave-search` | Brave Search | Search | [link](https://brave.com/search/api) | Subscription token from Brave Search API dashboard |
|
||||
| `exa-search` | `exa-search` | Exa Search | Search | [link](https://exa.ai) | API key from dashboard.exa.ai |
|
||||
| `firecrawl` | `fc` | Firecrawl | Search | [link](https://firecrawl.dev) | API key from firecrawl.dev/app/api-keys (or set your self-hosted Firecrawl base URL) |
|
||||
| `google-pse-search` | `google-pse` | Google Programmable Search | Search | [link](https://developers.google.com/custom-search/v1/overview) | Requires a Google API key and your Programmable Search Engine ID (cx) |
|
||||
| `linkup-search` | `linkup` | Linkup Search | Search | [link](https://docs.linkup.so) | Bearer API key from the Linkup dashboard |
|
||||
| `ollama-search` | `ollama-search` | Ollama Search | Search | [link](https://ollama.com/settings/keys) | Same API key as Ollama Cloud (from ollama.com/settings/keys) |
|
||||
| `perplexity-search` | `pplx-search` | Perplexity Search | Search | [link](https://docs.perplexity.ai/guides/search-quickstart) | Same API key as Perplexity (pplx-...) |
|
||||
| `searchapi-search` | `searchapi` | SearchAPI | Search | [link](https://www.searchapi.io/docs/google) | API key from SearchAPI (query param or Bearer auth) |
|
||||
| `searxng-search` | `searxng` | SearXNG Search | Search | [link](https://docs.searxng.org) | API key is optional. Set your SearXNG base URL. Some instances may require a bearer token for access. |
|
||||
| `serper-search` | `serper-search` | Serper Search | Search | [link](https://serper.dev) | API key from serper.dev dashboard |
|
||||
| `tavily-search` | `tavily-search` | Tavily Search | Search | [link](https://tavily.com) | API key from app.tavily.com (format: tvly-...) |
|
||||
| `x-search` | `x_search` | X Search (Grok) | Search | [link](https://docs.x.ai/developers/tools/x-search) | SuperGrok OAuth (xai-oauth) or xAI API key. This is Grok X Search, not the X Developer MCP. |
|
||||
| `youcom-search` | `youcom-search` | You.com Search | Search | [link](https://you.com/business/api/) | X-API-Key from the You.com platform dashboard |
|
||||
|
||||
## Audio-only Providers (12)
|
||||
|
||||
| ID | Alias | Name | Tags | Website | Notes |
|
||||
|----|-------|------|------|---------|-------|
|
||||
| `assemblyai` | `aai` | AssemblyAI | Audio | [link](https://assemblyai.com) | — |
|
||||
| `aws-polly` | `polly` | AWS Polly | Audio | [link](https://aws.amazon.com/polly/) | Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region. |
|
||||
| `cartesia` | `cartesia` | Cartesia | Audio | [link](https://cartesia.ai) | — |
|
||||
| `deepgram` | `dg` | Deepgram | Audio | [link](https://deepgram.com) | — |
|
||||
| `elevenlabs` | `el` | ElevenLabs | Audio | [link](https://elevenlabs.io) | — |
|
||||
| `fishaudio` | `fishaudio` | Fish Audio | Audio | [link](https://fish.audio) | — |
|
||||
| `gladia` | `gladia` | Gladia | Audio | [link](https://gladia.io) | — |
|
||||
| `inworld` | `inworld` | Inworld | Audio | [link](https://inworld.ai) | — |
|
||||
| `playht` | `playht` | PlayHT | Audio | [link](https://play.ht) | — |
|
||||
| `rev-ai` | `revai` | Rev AI | Audio | [link](https://www.rev.ai) | — |
|
||||
| `soniox` | `sx` | Soniox | Audio | [link](https://soniox.com) | — |
|
||||
| `speechmatics` | `sm` | Speechmatics | Audio | [link](https://www.speechmatics.com) | Free tier — 8 hours/month, no credit card required. Batch (async) mode only. |
|
||||
|
||||
## Upstream Proxy Providers (2)
|
||||
|
||||
| ID | Alias | Name | Tags | Website | Notes |
|
||||
|----|-------|------|------|---------|-------|
|
||||
| `9router` | `nr` | 9router | Upstream proxy | [link](https://www.npmjs.com/package/9router) | — |
|
||||
| `cliproxyapi` | `cpa` | CLIProxyAPI | Upstream proxy | [link](https://github.com/router-for-me/CLIProxyAPI) | — |
|
||||
|
||||
## Cloud Agent Providers (3)
|
||||
|
||||
| ID | Alias | Name | Tags | Website | Notes |
|
||||
|----|-------|------|------|---------|-------|
|
||||
| `codex-cloud` | `codex-cloud` | Codex Cloud | Cloud agent | [link](https://openai.com/codex) | OpenAI API key with Codex Cloud task access. |
|
||||
| `devin` | `devin` | Devin | Cloud agent | [link](https://devin.ai) | Devin API key for cloud agent sessions. |
|
||||
| `jules` | `jules` | Google Jules | Cloud agent | [link](https://jules.google) | Jules API key for creating and managing cloud coding tasks. |
|
||||
|
||||
## System Providers (1)
|
||||
|
||||
| ID | Alias | Name | Tags | Website | Notes |
|
||||
|----|-------|------|------|---------|-------|
|
||||
| `auto` | `auto` | Auto (Zero-Config) | System | — | — |
|
||||
|
||||
## Sources of truth
|
||||
|
||||
- Catalog: [`src/shared/constants/providers.ts`](../../src/shared/constants/providers.ts)
|
||||
- Registry (per-model details): [`open-sse/config/providerRegistry.ts`](../../open-sse/config/providerRegistry.ts)
|
||||
- Executors: [`open-sse/executors/`](../../open-sse/executors/) (106 implementations)
|
||||
- Translators: [`open-sse/translator/`](../../open-sse/translator/)
|
||||
|
||||
## See Also
|
||||
|
||||
- [FREE_TIERS.md](./FREE_TIERS.md) — curated free-tier guide
|
||||
- [USER_GUIDE.md](../guides/USER_GUIDE.md) — provider setup walkthrough
|
||||
- [ARCHITECTURE.md](../architecture/ARCHITECTURE.md) — overall architecture
|
||||
40
README.md
@@ -7,7 +7,7 @@
|
||||
|
||||
# 🚀 OmniRoute — The Free AI Gateway
|
||||
|
||||
<img src="./docs/diagrams/readme-hero.svg" width="100%" alt="OmniRoute — Never stop coding. Every AI tool → 353 providers — 90+ free — through one endpoint. Claude Code, Codex, Cursor, Cline, Copilot & Antigravity into FREE Claude / GPT / Gemini with auto-fallback. RTK + Caveman stacked compression saves 15–95% tokens (~89% avg) — never hit limits. 353 AI providers · 90+ free tiers · ~1.51B free tokens/mo · 19 routing strategies · $0 to start."/>
|
||||
<img src="./docs/diagrams/readme-hero.svg" width="100%" alt="OmniRoute — Never stop coding. Every AI tool → 357 providers — 90+ free — through one endpoint. Claude Code, Codex, Cursor, Cline, Copilot & Antigravity into FREE Claude / GPT / Gemini with auto-fallback. RTK + Caveman stacked compression saves 15–95% tokens (~89% avg) — never hit limits. 357 AI providers · 90+ free tiers · ~1.51B free tokens/mo · 19 routing strategies · $0 to start."/>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
|
||||
</div>
|
||||
|
||||
> Stacking free tiers by hand is painful — dozens of SDKs, dozens of rate limits, and no idea how much you actually have. OmniRoute catalogs **455 free-tier entries across 40 recurring pool keys** and computes the token headline from the **20 pools with a published positive monthly budget**, deduplicated by shared pool. The result stays visible on the dashboard (`/dashboard/free-tiers`).
|
||||
> Stacking free tiers by hand is painful — dozens of SDKs, dozens of rate limits, and no idea how much you actually have. OmniRoute catalogs **451 free-tier entries across 39 recurring pool keys** and computes the token headline from the **20 pools with a published positive monthly budget**, deduplicated by shared pool. The result stays visible on the dashboard (`/dashboard/free-tiers`).
|
||||
|
||||
<img src="./docs/diagrams/free-tier-budget.svg" width="100%" alt="OmniRoute free-tier budget card: ~1.51B free tokens per month steady, up to ~2.13B in the first month with signup credits, from 40 documented recurring pool keys covering 455 cataloged free-tier entries behind one endpoint. Honest pool-deduped math — each shared pool counted once, including 20 recurring pools with a published positive monthly token budget; 15 providers are marked avoid in the terms-risk catalog so you decide. Budget bar includes Mistral 1B, LLM7 150M, Nara 150M, Gemini 60M and smaller pools, plus first-month signup credits and permanently-free no-token-cap providers surfaced separately so they never inflate the headline. Live used/remaining on /dashboard/free-tiers."/>
|
||||
<img src="./docs/diagrams/free-tier-budget.svg" width="100%" alt="OmniRoute free-tier budget card: ~1.51B free tokens per month steady, up to ~2.13B in the first month with signup credits, from 39 documented recurring pool keys covering 451 cataloged free-tier entries behind one endpoint. Honest pool-deduped math — each shared pool counted once, including 20 recurring pools with a published positive monthly token budget; 14 providers are marked avoid in the terms-risk catalog so you decide. Budget bar includes Mistral 1B, LLM7 150M, Nara 150M, Gemini 60M and smaller pools, plus first-month signup credits and permanently-free no-token-cap providers surfaced separately so they never inflate the headline. Live used/remaining on /dashboard/free-tiers."/>
|
||||
|
||||
> Animated summary of the live `/dashboard/free-tiers` page. Full methodology (pool dedupe, credit tiers, provider terms): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
|
||||
>
|
||||
@@ -189,7 +189,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<img src="./docs/diagrams/works-zero-config.svg" width="100%" alt="Works the second you install it — zero config. Three steps: 1. Install — npm i -g omniroute, server boots on localhost:20128. 2. Point your tool at http://localhost:20128/v1 — any OpenAI-compatible tool (Claude Code, Cursor, Cline). 3. It answers — call model auto for an instant reply, with no API key, no signup, no configuration. Keyless free providers OpenCode Free and Felo are pre-wired into the auto combo, so a fresh install responds out of the box."/>
|
||||
<img src="./docs/diagrams/works-zero-config.svg" width="100%" alt="Works the second you install it — zero config. Three steps: 1. Install — npm i -g omniroute, server boots on localhost:20128. 2. Point your tool at http://localhost:20128/v1 — any OpenAI-compatible tool (Claude Code, Cursor, Cline). 3. It answers — call model auto for an instant reply, with no API key, no signup, no configuration. Keyless provider OpenCode Free is pre-wired into the auto combo, so a fresh install responds out of the box."/>
|
||||
|
||||
```bash
|
||||
# Fresh install, zero credentials — `auto` already works:
|
||||
@@ -198,7 +198,7 @@ curl http://localhost:20128/v1/chat/completions \
|
||||
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
|
||||
```
|
||||
|
||||
<sub>Prefer a specific free backend? Call it directly, e.g. `oc/…` (OpenCode Free) or `felo/…` (Felo). Then graduate to `auto` and let OmniRoute pick.</sub>
|
||||
<sub>Prefer a specific free backend? Call `oc/…` (OpenCode Free) directly. Then graduate to `auto` and let OmniRoute pick.</sub>
|
||||
|
||||
<sub>📦 Copy-paste quickstart scripts for **Python, Node.js, PHP, and cURL** → [`examples/quickstart/`](examples/quickstart/)</sub>
|
||||
|
||||
@@ -210,7 +210,7 @@ curl http://localhost:20128/v1/chat/completions \
|
||||
|
||||
</div>
|
||||
|
||||
<img src="./docs/diagrams/promise-pillars.svg" width="100%" alt="The Promise — One endpoint and 353 providers. Automatic fallback keeps routing while another healthy target is available. Six pillars: resilient fallback across 353 providers · up to 95% token savings on eligible workloads · $0 to start with 90+ free tiers and 56 recurring/keyless free-forever providers · 35 CLI/agent integrations through one config · OpenAI, Claude, Gemini and Responses API compatibility at /v1 · production controls including circuit breakers, TLS stealth, MCP 110 tools, A2A, memory, guardrails, evals and 39,000+ static test declarations across 5,100+ tracked test files."/>
|
||||
<img src="./docs/diagrams/promise-pillars.svg" width="100%" alt="The Promise — One endpoint and 357 providers. Automatic fallback keeps routing while another healthy target is available. Six pillars: resilient fallback across 357 providers · up to 95% token savings on eligible workloads · $0 to start with 90+ free tiers and 56 recurring/keyless free-forever providers · 35 CLI/agent integrations through one config · OpenAI, Claude, Gemini and Responses API compatibility at /v1 · production controls including circuit breakers, TLS stealth, MCP 110 tools, A2A, memory, guardrails, evals and 39,000+ static test declarations across 5,100+ tracked test files."/>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
@@ -266,7 +266,7 @@ curl http://localhost:20128/v1/chat/completions \
|
||||
<tr>
|
||||
<td align="center" width="150">
|
||||
<a href="https://cheaperinference.com/?utm_source=omniroute">
|
||||
<img src="public/providers/cheaperinference.svg" width="64" alt="Cheaper Inference"/>
|
||||
<img src="./public/providers/cli-generic.svg" width="64" alt="Cheaper Inference"/>
|
||||
</a>
|
||||
<br/><b>Cheaper Inference</b><br/><sub>cheaperinference.com</sub><br/><br/>
|
||||
<img src="https://img.shields.io/badge/Open_Source_Friend-31f889?style=flat-square&labelColor=04170d" alt="Open Source Friend"/>
|
||||
@@ -292,7 +292,7 @@ curl http://localhost:20128/v1/chat/completions \
|
||||
<tr>
|
||||
<td align="center" width="120">
|
||||
<a href="https://agentrouter.org/register?aff=70LM">
|
||||
<img src="public/providers/agentrouter.png" width="32" alt="AgentRouter"/>
|
||||
<img src="./public/providers/cli-generic.svg" width="32" alt="AgentRouter"/>
|
||||
</a>
|
||||
<br/><sub><b>AgentRouter</b></sub><br/><sub>agentrouter.org</sub>
|
||||
</td>
|
||||
@@ -461,7 +461,7 @@ All **19** strategies — mix & match per combo step:
|
||||
|
||||
</div>
|
||||
|
||||
<img src="./docs/diagrams/comparison-table.svg" width="100%" alt="What sets OmniRoute apart — a dated feature snapshot vs 9router, OpenRouter, CLIProxyAPI and LiteLLM across 13 capabilities. OmniRoute: 353 providers, 90+ free tiers built in, 19 routing strategies, 12-engine token compression, built-in MCP server with 110 tools, A2A agent protocol, persistent memory, guardrails, cloud agents, TLS fingerprint stealth, Desktop/Termux/PWA and 43 i18n UI locales. OmniRoute is MIT-licensed and self-hostable. Competitor capabilities and counts may change; see the linked methodology."/>
|
||||
<img src="./docs/diagrams/comparison-table.svg" width="100%" alt="What sets OmniRoute apart — a dated feature snapshot vs 9router, OpenRouter, CLIProxyAPI and LiteLLM across 13 capabilities. OmniRoute: 357 providers, 90+ free tiers built in, 19 routing strategies, 12-engine token compression, built-in MCP server with 110 tools, A2A agent protocol, persistent memory, guardrails, cloud agents, TLS fingerprint stealth, Desktop/Termux/PWA and 43 i18n UI locales. OmniRoute is MIT-licensed and self-hostable. Competitor capabilities and counts may change; see the linked methodology."/>
|
||||
|
||||
<sub>📊 Full methodology & per-feature detail vs 9router, OpenRouter, CLIProxyAPI & LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)</sub>
|
||||
|
||||
@@ -557,9 +557,9 @@ the current catalog at **[radar.omniroute.online/planos](https://radar.omniroute
|
||||
- **🧠 Memory you control** — off by default, opt-in int8 vector quantization + typed decay, per-request `x-omniroute-no-memory`. → [Memory](docs/frameworks/MEMORY.md)
|
||||
- **🛡️ Security** — prompt-injection guard on every LLM route (red-team suite), opt-in credential-masking guardrail (redacts leaked API keys/secrets in both directions), free DuckDuckGo last-resort web search, and an optional OIDC login gate for the dashboard (password login always stays available). → [Guardrails](docs/security/GUARDRAILS.md)
|
||||
- **🖼️ New endpoints** — `/v1/ocr` (Mistral OCR) and `/v1/audio/translations` (Whisper-style) round out the media surface. → [API Reference](docs/reference/API_REFERENCE.md)
|
||||
- **🎨 Image / video / audio generation** — one API for media: xAI Grok Imagine & Novita AI video, ComfyUI, Freepik, Adobe Firefly, Microsoft Designer, Segmind, EdgeTTS. → [API Reference](docs/reference/API_REFERENCE.md)
|
||||
- **🎨 Image / video / audio generation** — one API for media: xAI Grok Imagine & Novita AI video, ComfyUI, Freepik, Adobe Firefly, Segmind, and speech providers such as ElevenLabs. → [API Reference](docs/reference/API_REFERENCE.md)
|
||||
- **🌍 Deployment & ops** — reverse-proxy `basePath`, browser-language auto-detect, per-key device tracking, root-less MITM trust, zh-TW localization. → [Environment](docs/reference/ENVIRONMENT.md)
|
||||
- **🤝 More providers & agents** — Cursor Cloud Agent, Grok Build (xAI) with browser + OAuth login, Ollama first-class card, Claude Opus 5 & Sonnet 5, Kimi official partnership (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… and a refreshed **353-provider catalog**. → [Providers](docs/reference/PROVIDER_REFERENCE.md)
|
||||
- **🤝 More providers & agents** — Cursor Cloud Agent, Grok Build (xAI) with browser + OAuth login, Ollama first-class card, Claude Opus 5 & Sonnet 5, Kimi official partnership (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… and a refreshed **357-provider catalog**. → [Providers](docs/reference/PROVIDER_REFERENCE.md)
|
||||
- **📡 Routing transparency** — every response carries an `X-OmniRoute-Decision` header naming the strategy/provider/latency that served it, a new `cache-optimized` combo strategy + Auto-Combo `cacheAffinity` factor route repeat requests back to the connection holding the cached prefix, and a read-only `/v1/auto-combo/{channel}/candidates` endpoint exposes an `auto/*` channel's live candidate pool. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
|
||||
- **⚡ Local performance & infra** — one-click local Redis, Cloudflare Workers / Deno Deploy relay deployers, Bifrost & Mux as supervised embedded services. → [Embedded Services](docs/frameworks/EMBEDDED-SERVICES.md)
|
||||
|
||||
@@ -577,8 +577,8 @@ the current catalog at **[radar.omniroute.online/planos](https://radar.omniroute
|
||||
<td align="center" width="76"><a href="https://github.com/anthropics/claude-code"><img src="./public/providers/claude.svg" width="40" alt="Claude Code"/><br/><sub><b>Claude Code</b></sub><br/><sub> </sub></a></td>
|
||||
<td align="center" width="76"><a href="https://github.com/openai/codex"><img src="./public/providers/codex.svg" width="40" alt="Codex CLI"/><br/><sub><b>Codex CLI</b></sub><br/><sub> </sub></a></td>
|
||||
<td align="center" width="76"><picture><source media="(prefers-color-scheme:dark)" srcset="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.91.0/dark/cline.png"/><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/cline.svg" width="40" alt="Cline"/></picture><br/><sub><b>Cline</b></sub><br/><sub> </sub></td>
|
||||
<td align="center" width="76"><a href="https://github.com/Kilo-Org/kilocode"><img src="./public/providers/kilocode.svg" width="40" alt="Kilo Code"/><br/><sub><b>Kilo Code</b></sub><br/><sub> </sub></a></td>
|
||||
<td align="center" width="76"><a href="https://github.com/Zoo-Code-Org/Zoo-Code"><img src="./public/providers/zoocode.png" width="40" alt="Zoo Code"/><br/><sub><b>Zoo Code</b></sub><br/><sub> </sub></a></td>
|
||||
<td align="center" width="76"><a href="https://github.com/Kilo-Org/kilocode"><img src="./public/providers/cli-generic.svg" width="40" alt="Kilo Code"/><br/><sub><b>Kilo Code</b></sub><br/><sub> </sub></a></td>
|
||||
<td align="center" width="76"><a href="https://github.com/Zoo-Code-Org/Zoo-Code"><img src="./public/providers/cli-generic.svg" width="40" alt="Zoo Code"/><br/><sub><b>Zoo Code</b></sub><br/><sub> </sub></a></td>
|
||||
<td align="center" width="76"><img src="./public/providers/continue.svg" width="40" alt="Continue"/><br/><sub><b>Continue</b></sub><br/><sub> </sub></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -587,10 +587,10 @@ the current catalog at **[radar.omniroute.online/planos](https://radar.omniroute
|
||||
<td align="center" width="76"><img src="./public/providers/cli-generic.svg" width="40" alt="jcode"/><br/><sub><b>jcode</b></sub><br/><sub> </sub></td>
|
||||
<td align="center" width="76"><img src="./public/providers/deepseek.svg" width="40" alt="DeepSeek TUI"/><br/><sub><b>DeepSeek TUI</b></sub><br/><sub> </sub></td>
|
||||
<td align="center" width="76"><img src="./public/providers/cli-generic.svg" width="40" alt="CodeWhale"/><br/><sub><b>CodeWhale</b></sub><br/><sub> </sub></td>
|
||||
<td align="center" width="76"><a href="https://github.com/anomalyco/opencode"><picture><source media="(prefers-color-scheme:dark)" srcset="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.91.0/dark/opencode.png"/><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/opencode.svg" width="40" alt="OpenCode"/></picture><br/><sub><b>OpenCode</b></sub><br/><sub> </sub></a></td>
|
||||
<td align="center" width="76"><a href="https://github.com/anomalyco/opencode"><img src="./public/providers/cli-generic.svg" width="40" alt="OpenCode"/><br/><sub><b>OpenCode</b></sub><br/><sub> </sub></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" width="76"><img src="./public/providers/droid.svg" width="40" alt="Factory Droid"/><br/><sub><b>Factory Droid</b></sub><br/><sub> </sub></td>
|
||||
<td align="center" width="76"><img src="./public/providers/cli-generic.svg" width="40" alt="Factory Droid"/><br/><sub><b>Factory Droid</b></sub><br/><sub> </sub></td>
|
||||
<td align="center" width="76"><img src="./public/providers/copilot.svg" width="40" alt="GitHub Copilot CLI"/><br/><sub><b>Copilot CLI</b></sub><br/><sub> </sub></td>
|
||||
<td align="center" width="76"><img src="./public/providers/cursor.svg" width="40" alt="Cursor CLI"/><br/><sub><b>Cursor CLI</b></sub><br/><sub> </sub></td>
|
||||
<td align="center" width="76"><img src="./public/providers/cli-generic.svg" width="40" alt="Smelt"/><br/><sub><b>Smelt</b></sub><br/><sub> </sub></td>
|
||||
@@ -642,7 +642,7 @@ of your shell history. → [CLI Integrations](docs/guides/CLI-INTEGRATIONS.md)
|
||||
|
||||
<div align="center">
|
||||
|
||||
## 🌐 353 AI Providers — 154 Catalog-Marked Free
|
||||
## 🌐 357 AI Providers — 154 Catalog-Marked Free
|
||||
|
||||
</div>
|
||||
|
||||
@@ -687,8 +687,8 @@ of your shell history. → [CLI Integrations](docs/guides/CLI-INTEGRATIONS.md)
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" width="150"><img src="./public/providers/opencode.svg" width="42" alt="OpenCode Zen"/><br/><b>OpenCode Zen</b><br/><sub>DeepSeek V4, Nemotron 3<br/>No token cap</sub></td>
|
||||
<td align="center" width="150"><img src="./public/providers/kilocode.svg" width="42" alt="Kilo Code"/><br/><b>Kilo Code</b><br/><sub>Auto-router, Tencent Hy3<br/>Free forever</sub></td>
|
||||
<td align="center" width="150"><img src="./public/providers/cli-generic.svg" width="42" alt="OpenCode Zen"/><br/><b>OpenCode Zen</b><br/><sub>DeepSeek V4, Nemotron 3<br/>No token cap</sub></td>
|
||||
<td align="center" width="150"><img src="./public/providers/cli-generic.svg" width="42" alt="Kilo Code"/><br/><b>Kilo Code</b><br/><sub>Auto-router, Tencent Hy3<br/>Free forever</sub></td>
|
||||
<td align="center" width="150"><img src="./public/providers/requesty.svg" width="42" alt="Requesty"/><br/><b>Requesty</b><br/><sub>GPT-OSS 120B, Nemotron<br/>Free forever</sub></td>
|
||||
<td align="center" width="150"><img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@1.91.0/icons/siliconcloud-color.svg" width="42" alt="SiliconFlow"/><br/><b>SiliconFlow</b><br/><sub>DeepSeek V3.2 / R1<br/>Free tier</sub></td>
|
||||
<td align="center" width="150"><img src="./public/providers/zhipu.svg" width="42" alt="Z.AI GLM"/><br/><b>Z.AI GLM</b><br/><sub>GLM-4.7 / 4.5-Flash<br/>Free forever</sub></td>
|
||||
@@ -1265,7 +1265,7 @@ Métricas canônicas em 2026-08-24: **1.029 vídeos únicos** · **11.132.922 vi
|
||||
<tr><td nowrap><b><a href="docs/architecture/RESILIENCE_GUIDE.md">Resilience Guide</a></b></td><td>Circuit breakers, cooldowns, queue, anti-thundering herd, TLS spoofing</td></tr>
|
||||
<tr><td nowrap><b><a href="docs/routing/AUTO-COMBO.md">Auto-Combo Engine</a></b></td><td>15-factor scoring, mode packs, self-healing</td></tr>
|
||||
<tr><td nowrap><b><a href="docs/ops/PROXY_GUIDE.md">Proxy Guide</a></b></td><td>3-level proxy system, 1proxy marketplace, registry CRUD</td></tr>
|
||||
<tr><td nowrap><b><a href="docs/reference/FREE_TIERS.md">Free Tiers</a></b></td><td>Consolidated directory: 40 documented recurring pools / 455 cataloged free-tier entries</td></tr>
|
||||
<tr><td nowrap><b><a href="docs/reference/FREE_TIERS.md">Free Tiers</a></b></td><td>Consolidated directory: 39 documented recurring pools / 451 cataloged free-tier entries</td></tr>
|
||||
<tr><td nowrap><b><a href="docs/guides/FEATURES.md">Features Gallery</a></b></td><td>Visual dashboard tour with screenshots</td></tr>
|
||||
<tr><td nowrap><b><a href="docs/architecture/CODEBASE_DOCUMENTATION.md">Codebase Documentation</a></b></td><td>Beginner-friendly codebase walkthrough</td></tr>
|
||||
</table>
|
||||
@@ -1621,7 +1621,7 @@ OmniRoute stands on the shoulders of giants. It started as a fork of **[9router]
|
||||
|
||||
<table>
|
||||
<tr><th align="left">Project</th><th align="center">⭐</th><th align="left">How it inspired OmniRoute</th></tr>
|
||||
<tr><td nowrap><b><a href="https://github.com/chouzz/llm-interceptor">llm-interceptor</a></b></td><td align="center">66</td><td>MITM interception/analysis of coding-assistant ↔ LLM traffic — our Traffic Inspector ports its SSE merge, conversation normalization, host passthrough and secret masking. The upstream's complete license text is still under provenance review.</td></tr>
|
||||
<tr><td nowrap><b><a href="https://github.com/chouzz/llm-interceptor">llm-interceptor</a></b></td><td align="center">66</td><td>MITM interception/analysis of coding-assistant ↔ LLM traffic informed early Traffic Inspector requirements. Four previously derived modules — SSE merging, conversation normalization, secret masking and header sanitization — have been replaced by independent clean-room implementations based on public protocol standards. The two host-passthrough surfaces (<code>passthrough.ts</code> and <code>_internal/bypass.cjs</code>) remain OmniRoute-internal implementations classified independently; they were not rewritten as part of that replacement.</td></tr>
|
||||
<tr><td nowrap><b><a href="https://github.com/InterceptSuite/ProxyBridge">ProxyBridge</a></b></td><td align="center">5,995</td><td>Transparent per-process proxy routing — inspired our crash-safe MITM teardown, socket idle-timeouts, <code>/proc</code> process attribution and TPROXY capture.</td></tr>
|
||||
</table>
|
||||
|
||||
|
||||
@@ -24,3 +24,280 @@ NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPO
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
## blackwell-systems/gcf-typescript
|
||||
|
||||
The generic-profile codec in
|
||||
`open-sse/services/compression/engines/headroom/gcf/{decode_generic,generic,index,scalar}.ts`
|
||||
is adapted from
|
||||
[`blackwell-systems/gcf-typescript`](https://github.com/blackwell-systems/gcf-typescript/tree/00972f2dc781477eb6d369e62edfe03ad4112a07),
|
||||
commit `00972f2dc781477eb6d369e62edfe03ad4112a07`. The license below is reproduced
|
||||
from that commit's
|
||||
[`LICENSE`](https://github.com/blackwell-systems/gcf-typescript/blob/00972f2dc781477eb6d369e62edfe03ad4112a07/LICENSE).
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Dayna Blackwell
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
||||
associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial
|
||||
portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
|
||||
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
## lipis/flag-icons
|
||||
|
||||
The country flag SVGs in `docs/assets/flags/` are copied from the `flags/4x3/` directory of
|
||||
[`lipis/flag-icons`](https://github.com/lipis/flag-icons/tree/086f7e97d657358203916dbe84f61c2bccaa81eb),
|
||||
commit `086f7e97d657358203916dbe84f61c2bccaa81eb`. The license below is reproduced
|
||||
from that commit's
|
||||
[`LICENSE`](https://github.com/lipis/flag-icons/blob/086f7e97d657358203916dbe84f61c2bccaa81eb/LICENSE).
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013 Panayiotis Lipiridis
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
||||
associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial
|
||||
portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
|
||||
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
## LobeHub provider asset derivatives
|
||||
|
||||
Six local provider SVGs contain geometry derived from fixed components in
|
||||
`@lobehub/icons@5.10.0`. The source package is pinned as follows:
|
||||
|
||||
- Tarball:
|
||||
<https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz>
|
||||
- npm shasum: `add1baced073a60157d39c7820b8d5c1928a1054`
|
||||
- npm integrity:
|
||||
`sha512-CIpjkISCLRK7haDtSugGFd0o3odaJts8ewJOkUiEFtns3xvsqbl8i24eowBnjw+yMDQVQyNONlhqTD58YC6Ljg==`
|
||||
- License file in the fixed tarball: `package/LICENSE`
|
||||
|
||||
| Local derivative | Fixed tarball source |
|
||||
| ------------------------------- | ----------------------------------------- |
|
||||
| `public/providers/360ai.svg` | `package/es/Ai360/components/Color.js` |
|
||||
| `public/providers/baichuan.svg` | `package/es/Baichuan/components/Color.js` |
|
||||
| `public/providers/codex.svg` | `package/es/Codex/components/Color.js` |
|
||||
| `public/providers/copilot.svg` | `package/es/Copilot/components/Color.js` |
|
||||
| `public/providers/openclaw.svg` | `package/es/OpenClaw/components/Color.js` |
|
||||
| `public/providers/stepfun.svg` | `package/es/Stepfun/components/Color.js` |
|
||||
|
||||
The fixed tarball contains this license notice:
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023 LobeHub
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
This package notice applies to the derived SVG geometry identified above. It does not grant rights
|
||||
in any underlying brand name, logo, or trademark.
|
||||
|
||||
## theSVG provider assets
|
||||
|
||||
At release snapshot `091589089cd134a94df9f6cdab9ba562b2cefd18`, 65 local provider SVGs were
|
||||
byte-exact matches for `public/icons/<slug>/default.svg` in the theSVG repository at immutable
|
||||
commit [`7870bc1c5f657d9accbb7f96cc457b8dd3363ee8`](https://github.com/GLINCKER/thesvg/tree/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8).
|
||||
The fixed upstream evidence includes its
|
||||
[`LICENSE`](https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/LICENSE),
|
||||
[`LEGAL.md`](https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/LEGAL.md),
|
||||
[`TRADEMARK.md`](https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/TRADEMARK.md),
|
||||
[`LICENSING.md`](https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/LICENSING.md),
|
||||
and
|
||||
[`src/data/icons.json`](https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json).
|
||||
|
||||
The byte match proves source provenance for the listed files. It does not prove that a registry
|
||||
claim was authorized by each brand owner, and it does not relicense the logos or their underlying
|
||||
brand marks. The theSVG source applies its MIT license to its codebase, tooling, and catalog; its
|
||||
own legal documents separately reserve trademark rights to the respective owners.
|
||||
|
||||
The fixed theSVG source contains this license notice:
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2025 thesvg.org
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
### Byte-exact file scope (65/65)
|
||||
|
||||
- `public/providers/alibaba.svg`
|
||||
- `public/providers/anthropic.svg`
|
||||
- `public/providers/arcee.svg`
|
||||
- `public/providers/assemblyai.svg`
|
||||
- `public/providers/aws.svg`
|
||||
- `public/providers/azure.svg`
|
||||
- `public/providers/bailian.svg`
|
||||
- `public/providers/baseten.svg`
|
||||
- `public/providers/cerebras.svg`
|
||||
- `public/providers/cline.svg`
|
||||
- `public/providers/comfyui.svg`
|
||||
- `public/providers/continue.svg`
|
||||
- `public/providers/cursor.svg`
|
||||
- `public/providers/deepgram.svg`
|
||||
- `public/providers/deepinfra.svg`
|
||||
- `public/providers/elevenlabs.svg`
|
||||
- `public/providers/exa.svg`
|
||||
- `public/providers/fal.svg`
|
||||
- `public/providers/fireworks.svg`
|
||||
- `public/providers/friendli.svg`
|
||||
- `public/providers/gemini.svg`
|
||||
- `public/providers/grok.svg`
|
||||
- `public/providers/groq.svg`
|
||||
- `public/providers/heroku.svg`
|
||||
- `public/providers/huggingface.svg`
|
||||
- `public/providers/hyperbolic.svg`
|
||||
- `public/providers/ibm.svg`
|
||||
- `public/providers/inference.svg`
|
||||
- `public/providers/lambda.svg`
|
||||
- `public/providers/longcat.svg`
|
||||
- `public/providers/minimax.svg`
|
||||
- `public/providers/mistral.svg`
|
||||
- `public/providers/moonshot.svg`
|
||||
- `public/providers/morph.svg`
|
||||
- `public/providers/nebius.svg`
|
||||
- `public/providers/novita.svg`
|
||||
- `public/providers/nvidia.svg`
|
||||
- `public/providers/ollama.svg`
|
||||
- `public/providers/openai.svg`
|
||||
- `public/providers/openrouter.svg`
|
||||
- `public/providers/ovhcloud.svg`
|
||||
- `public/providers/picoclaw.svg`
|
||||
- `public/providers/poe.svg`
|
||||
- `public/providers/pollinations.svg`
|
||||
- `public/providers/qwen.svg`
|
||||
- `public/providers/recraft.svg`
|
||||
- `public/providers/replicate.svg`
|
||||
- `public/providers/roocode.svg`
|
||||
- `public/providers/runway.svg`
|
||||
- `public/providers/sambanova.svg`
|
||||
- `public/providers/searchapi.svg`
|
||||
- `public/providers/suno.svg`
|
||||
- `public/providers/tavily.svg`
|
||||
- `public/providers/topazlabs.svg`
|
||||
- `public/providers/trae.svg`
|
||||
- `public/providers/udio.svg`
|
||||
- `public/providers/upstage.svg`
|
||||
- `public/providers/v0.svg`
|
||||
- `public/providers/vercel.svg`
|
||||
- `public/providers/vllm.svg`
|
||||
- `public/providers/volcengine.svg`
|
||||
- `public/providers/voyage.svg`
|
||||
- `public/providers/windsurf.svg`
|
||||
- `public/providers/xai.svg`
|
||||
- `public/providers/zhipu.svg`
|
||||
|
||||
### Upstream registry claims
|
||||
|
||||
These are claims recorded by the fixed upstream registry. They have not been independently
|
||||
verified against an authoritative license or brand-owner notice for every asset, so they are not
|
||||
independent copyright or trademark clearance.
|
||||
|
||||
| Upstream registry claim | Count | Clearance status |
|
||||
| ----------------------- | ----: | --------------------------------------------------------------------- |
|
||||
| MIT | 46 | Upstream claim only; original per-asset copyright notices remain HOLD |
|
||||
| CC0-1.0 | 14 | Upstream claim only; not independently verified with each owner |
|
||||
| Apache-2.0 | 1 | Upstream claim only; upstream NOTICE remains HOLD |
|
||||
| brand-use | 2 | Brand terms, not open-source licenses; owner guidelines remain HOLD |
|
||||
| Custom | 1 | Custom MiniMax claim; terms remain HOLD |
|
||||
| MISSING | 1 | No matching registry claim for HuggingFace; license remains HOLD |
|
||||
|
||||
#### MIT (46)
|
||||
|
||||
`alibaba`, `arcee`, `assemblyai`, `aws`, `bailian`, `baseten`, `cerebras`, `comfyui`,
|
||||
`deepinfra`, `exa`, `fal`, `fireworks`, `friendli`, `gemini`, `grok`, `groq`, `heroku`,
|
||||
`hyperbolic`, `ibm`, `inference`, `lambda`, `longcat`, `mistral`, `moonshot`, `morph`, `nebius`,
|
||||
`novita`, `openai`, `picoclaw`, `pollinations`, `qwen`, `recraft`, `roocode`, `runway`,
|
||||
`sambanova`, `searchapi`, `tavily`, `topazlabs`, `trae`, `udio`, `upstage`, `vllm`, `volcengine`,
|
||||
`voyage`, `xai`, `zhipu`
|
||||
<!-- end:MIT -->
|
||||
|
||||
#### CC0-1.0 (14)
|
||||
|
||||
`anthropic`, `cline`, `cursor`, `deepgram`, `elevenlabs`, `nvidia`, `ollama`, `openrouter`, `poe`,
|
||||
`replicate`, `suno`, `v0`, `vercel`, `windsurf`
|
||||
<!-- end:CC0-1.0 -->
|
||||
|
||||
#### Apache-2.0 (1)
|
||||
|
||||
`continue`
|
||||
<!-- end:Apache-2.0 -->
|
||||
|
||||
#### brand-use (2)
|
||||
|
||||
`azure`, `ovhcloud`
|
||||
<!-- end:brand-use -->
|
||||
|
||||
#### Custom (1)
|
||||
|
||||
`minimax`
|
||||
<!-- end:Custom -->
|
||||
|
||||
#### MISSING (1)
|
||||
|
||||
`huggingface`
|
||||
<!-- end:MISSING -->
|
||||
|
||||
The `continue` Apache-2.0 claim remains HOLD until its authoritative upstream NOTICE obligations
|
||||
are verified. The `azure` and `ovhcloud` brand-use claims are not open-source licenses and remain
|
||||
subject to owner guidelines. `minimax` remains HOLD under custom terms. `huggingface` remains HOLD
|
||||
because its matching file has no entry or license claim in the fixed registry.
|
||||
|
||||
### Trademark and affiliation disclaimer
|
||||
|
||||
All brand names, logos, and trademarks are the property of their respective owners. OmniRoute uses
|
||||
these assets nominatively to identify provider integrations. There is no affiliation, sponsorship,
|
||||
or endorsement by the respective owners. Copyright provenance and source license claims do not
|
||||
provide trademark clearance; users should follow each owner's official brand guidelines.
|
||||
|
||||
1
changelog.d/features/anysearch-search-provider.md
Normal file
@@ -0,0 +1 @@
|
||||
- **feat(search):** Add AnySearch free web search + URL extract (webFetch) with typed results, credential validation, REST routing, and MCP selection - fallback-only
|
||||
1
changelog.d/fixes/10591-gemini-live-catalog.md
Normal file
@@ -0,0 +1 @@
|
||||
- Stop advertising Gemini Live-only models as supported audio endpoints until OmniRoute proxies the bidirectional Live protocol.
|
||||
1
changelog.d/fixes/11296-kie-market-model-id-sweep.md
Normal file
@@ -0,0 +1 @@
|
||||
- **fix(kie):** correct 12 more KIE Market catalog ids that were sent to `createTask` unchanged but diverge from KIE's documented upstream `model` values — GPT Image 2 T2I/I2I (drops the `gpt/` prefix), GPT Image 1.5 T2I/I2I (`gpt-image/` namespace), Seedream 5.0 Lite T2I/I2I (drops the `.0`), all 4 Flux 2 variants (`flux-2/` namespace, generic variant renamed `flex`), and Wan 2.7 Image / Image Pro (dash instead of dot) — each verified individually against the literal example request published on docs.kie.ai. `#11326`'s "everything else already matches" claim was wrong a second time (#11296); `z-image/4.0-*`/`z-image/4.5-*` and `flux/kontext` remain open, documented as unresolved in `KIE_MARKET_UPSTREAM_MODEL_IDS`'s comment pending further verification.
|
||||
@@ -0,0 +1 @@
|
||||
- **fix(dashboard):** `useApiKeySave.handleSaveApiKey` no longer forces a full upstream `/models` catalog sync on every non-curated provider connection save — callers can now pass `skipModelSync: true` to opt out, so a workflow that only wants to add one manual model no longer floods the provider's available-models list with hundreds/thousands of synced entries. The flag is a client-side intent signal only and is stripped before the connection payload is POSTed to `/api/providers`; default behavior (full sync on save) is unchanged when the flag is omitted (#11324)
|
||||
1
changelog.d/fixes/11433-opencode-alias-collision.md
Normal file
@@ -0,0 +1 @@
|
||||
- **fix(combos):** the combo builder's precision-select, global-model-search, and manual-entry flows now serialize a model step's `model` string using the provider's already-computed routing-alias prefix (e.g. `oc/`) instead of rebuilding it from the raw canonical `providerId`, fixing the no-auth "OpenCode Free" provider (`opencode`) being routed to the unrelated paid "OpenCode Zen" provider (`opencode-zen`) because `opencode` doubles as a manual routing-prefix override ([#11433](https://github.com/diegosouzapw/OmniRoute/issues/11433)).
|
||||
1
changelog.d/fixes/11449-anysearch-icon-fallback.md
Normal file
@@ -0,0 +1 @@
|
||||
- fix(ui): let AnySearch use the normal provider-icon fallback when LobeHub has no matching icon (#11449)
|
||||
1
changelog.d/fixes/11462-roundrobin-combo-diagnostics.md
Normal file
@@ -0,0 +1 @@
|
||||
- **fix(combo):** attach the same combo-diagnostics trace (`poolSize`/`attemptOrder`/`excluded`/`terminalReason`, plus `x-omniroute-combo-*` headers) to the round-robin strategy's and the nested pipeline/fusion runtime-unit loop's "Maximum combo retry limit reached" 503 that the priority-strategy path already attaches for the identical terminal condition — previously those two paths returned a bare, contextless 503 ([#11462](https://github.com/diegosouzapw/OmniRoute/issues/11462)).
|
||||
1
changelog.d/fixes/11500-decrypt-log-dedup.md
Normal file
@@ -0,0 +1 @@
|
||||
- **fix(db):** dedupe the raw `[Encryption] Decryption failed...` log line emitted by the lazy-decrypt views (`createLazyRowProxy`/`createLazyConnectionView`), which power `getProviderConnections()` and were re-triggering that line on every CredentialHealth/model-sync cycle for the same corrupt or stale-key credential — a fresh Proxy over a fresh row on every cycle meant the per-proxy memoization never suppressed it, unlike the dedup `decryptConnectionFields()` already had since [#9927](https://github.com/diegosouzapw/OmniRoute/issues/9927). Now shares that dedupe tracking so the line logs at most once per credential ([#11500](https://github.com/diegosouzapw/OmniRoute/issues/11500)).
|
||||
@@ -0,0 +1 @@
|
||||
- **fix(sse):** stop dropping resolved `thoughtSignature` values on parallel (multi tool-call) turns sent to Gemini 3.x — the claude→gemini and openai→gemini translators previously kept the signature only on the *first* function call of a message, causing Gemini to reject subsequent calls in the same turn with HTTP 400 "Function call is missing a thought_signature"; each function call now keeps its own resolved signature ([#11510](https://github.com/diegosouzapw/OmniRoute/issues/11510)).
|
||||
@@ -0,0 +1 @@
|
||||
- **fix(sse):** cap the upstream headers-wait phase for STREAMING requests to a client-realistic ceiling (110s, under Codex's own ~120s hard client-abort window) instead of the flat 10-minute `FETCH_TIMEOUT_MS` default — that default was 5x longer than the body-phase readiness watchdog's own adaptive bound, so a request whose upstream never returned any response at all (not even headers, e.g. a stalled NVIDIA target behind a tool-heavy Responses→Chat translation) kept the client connection alive on keepalives only, guaranteeing the client's own patience ran out first with an opaque 499 instead of OmniRoute detecting and failing the stall fast. Non-streaming requests are unaffected — they keep the existing flat default (`open-sse/utils/fetchStartTimeoutPolicy.ts`) (#11526)
|
||||
1
changelog.d/fixes/11556-client-abort-guard-mjs-import.md
Normal file
@@ -0,0 +1 @@
|
||||
- **sse:** fix LiveWS/embed-WS servers crashing at startup under the Node/tsx runtime — `liveServer.ts`, `embedWsProxy.ts` and `apiBridgeServer.ts` imported `@/shared/utils/httpClientAbortGuard` without the `.mjs` extension, so the client-abort crash guard added by [#11556](https://github.com/diegosouzapw/OmniRoute/pull/11556) was unreachable and every dependent test failed with `ERR_MODULE_NOT_FOUND` ([#11556](https://github.com/diegosouzapw/OmniRoute/pull/11556)).
|
||||
@@ -0,0 +1 @@
|
||||
- **resilience:** restore the expired-connection retry-budget probe in the token-health sweep — the `!isGitHubAccessTokenOnlyConnection` carve-out reintroduced by #11608 contradicted the boundary pinned by #11592, so a GitHub connection parked at `expired` with retry budget remaining was never probed and could never self-heal ([#11592](https://github.com/diegosouzapw/OmniRoute/pull/11592)).
|
||||
1
changelog.d/fixes/11604-aggregate-profile-level-pin.md
Normal file
@@ -0,0 +1 @@
|
||||
- **test(gamification):** pin the aggregate profile level to the XP-derived semantics of #11604 — `getAggregateXp()` now derives `currentLevel` from the summed XP (`calculateLevel(sum)`), not `MAX(stored current_level)`, and the #3484 fixture levels are aligned with the XP curve ([#11604](https://github.com/diegosouzapw/OmniRoute/pull/11604)).
|
||||
1
changelog.d/fixes/11626-retired-model-test-updates.md
Normal file
@@ -0,0 +1 @@
|
||||
- **test(chatcore):** move Codex/Claude combo fixtures off models the lifecycle guard now rejects — `gpt-5.1-codex`/`gpt-5-codex` are vendor-retired (snapshot, #11626) and `claude-3-5-sonnet-20241022` is shut down, so native-passthrough and combo-fallback tests switched to `gpt-5.6-sol` and `claude-sonnet-4.6` ([#11626](https://github.com/diegosouzapw/OmniRoute/pull/11626)).
|
||||
@@ -0,0 +1 @@
|
||||
- fix(opencode-plugin): stop a free-tier budget that rounds up across a magnitude from rendering as `1000K`/`1000M` in the model picker — `fmtTokens` chose its unit from the raw token count and then rounded with `toFixed(1)`, so 999,950–999,999 printed as `1000K` rather than `1M` and just under a billion printed as `1000M` rather than `1B` ([#11684](https://github.com/diegosouzapw/OmniRoute/pull/11684))
|
||||
@@ -0,0 +1 @@
|
||||
- **fix(tests):** the new Gemini Web Images retirement test (#11708) called the now-async `getExecutor()` synchronously, throwing `TypeError: getExecutor(...).getProvider is not a function` instead of asserting Gemini Web chat stays available. Awaited to match the R0.3 executor-registry refactor (#11220).
|
||||
1
changelog.d/fixes/11738-g4f-gateway-truthful-claims.md
Normal file
@@ -0,0 +1 @@
|
||||
- **fix(providers):** correct all five g4f.space gateway descriptions to document proof-of-work credits or member API keys, variable limits, and the remote prompt boundary instead of promising free keyless access at five requests per minute ([#11738](https://github.com/diegosouzapw/OmniRoute/pull/11738)).
|
||||
1
changelog.d/fixes/11750-unresolved-provider-assets.md
Normal file
@@ -0,0 +1 @@
|
||||
- **fix(assets):** Stop distributing 79 provider and CLI logos without verified source/license provenance, keep every provider/tool available through the internal generic icon, and prevent those IDs from falling through to an external icon CDN.
|
||||
@@ -0,0 +1 @@
|
||||
- **fix(db):** Fresh installs no longer log a non-fatal `no such table: compression_run_telemetry` warning when retention cleanup runs before the lazily-created telemetry table exists ([#11802](https://github.com/diegosouzapw/OmniRoute/pull/11802)) — thanks @RaviTharuma
|
||||
1
changelog.d/fixes/11811-cliproxy-health-model-auth.md
Normal file
@@ -0,0 +1 @@
|
||||
- **fix(services):** embedded CLIProxyAPI lifecycle checks now use public `/healthz`, while model discovery uses the configured dedicated data-plane API key instead of the management password ([#11811](https://github.com/diegosouzapw/OmniRoute/pull/11811))
|
||||
1
changelog.d/fixes/7518-docker-build-memory-budget.md
Normal file
@@ -0,0 +1 @@
|
||||
- **fix(docker):** re-derive the Docker build's worker-pool memory budget from the MEASURED ~4.5 GB per-process RSS (the issue owner's own VPS dmesg OOM-killer reproduction) instead of the stale 2560 MB/worker inference #11419 shipped, and lower `OMNIROUTE_BUILD_WORKERS` 3 → 2 so 1 parent + 1 page-data worker (2 processes × 4.5 GB = 9 GB) fits the 12.288 GB (75%) budget on a 16 GB GitHub Actions runner — the previous default (1 parent + 2 workers = 13.5 GB) still overcommitted the runner and kept "Publish to Docker Hub" failing with `cannot allocate memory` after #11419 merged (#7518).
|
||||
@@ -0,0 +1 @@
|
||||
- **fix(video-bridge):** preserve chronological video and transcript fusion, source-frame timestamps, transcript provenance, full contact-sheet intervals, and pre-abort callback isolation ([#11681](https://github.com/diegosouzapw/OmniRoute/pull/11681))
|
||||
@@ -0,0 +1 @@
|
||||
- **docs:** sync the canonical provider count 354 → 356 across `README.md`, `AGENTS.md`, `llm.txt` (+ 42 i18n mirrors), the four README SVG diagrams, `docs/reference/PROVIDER_REFERENCE.md` (regenerated) and the `package.json` description after Opper (#11629) and 1min.ai (#11631) boarded the catalog — closes the `check:docs-counts-sync` strict drifts that kept `release/v3.8.51` red ([#11449](https://github.com/diegosouzapw/OmniRoute/issues/11449)).
|
||||
@@ -0,0 +1 @@
|
||||
- **test(providers):** update count-derived assertions after the v3.8.51 provider additions — `APIKEY_PROVIDERS` 233 → 235 (Opper #11629 + 1min.ai #11631), reserved-prefix REGISTRY walk 395 → 398, `WEB_FETCH_PROVIDERS` now includes `nimble-search` (#11620), and the provider translate-path golden snapshot regenerated ([#11449](https://github.com/diegosouzapw/OmniRoute/issues/11449)).
|
||||
@@ -0,0 +1 @@
|
||||
- **test(sse):** bump the hard-lease connection-query inventory for `src/lib/tokenHealthCheck.ts` to 2 — the verify-only web-cookie sweep added by #11495 split the single `getProviderConnections` call into oauth + cookie variants, which the frozen inventory had not tracked ([#11495](https://github.com/diegosouzapw/OmniRoute/pull/11495)).
|
||||
@@ -0,0 +1 @@
|
||||
- **test(opencode-plugin):** add unit test coverage for `formatFreeBudget()` naming helper ([#11660](https://github.com/diegosouzapw/OmniRoute/pull/11660)) — thanks @f9td56dbgh-hub
|
||||
@@ -0,0 +1 @@
|
||||
- **chore(providers):** retire the distributed Raycast Relay and Hailuo Web integrations after a provenance audit confirmed substantial derivation from GPL-3.0 sources; the official GitHub and MiniMax API providers remain available. Migration 163 disables legacy connections and invalidates their active leases while preserving connection IDs, audit/history rows, quota snapshots, usage records, and fail-closed API-key connection policies.
|
||||
1
changelog.d/maintenance/11698-retire-felo-web.md
Normal file
@@ -0,0 +1 @@
|
||||
- **chore(providers):** retire the Felo Web provider while its GPL-derived provenance remains on licensing HOLD ([#11698](https://github.com/diegosouzapw/OmniRoute/pull/11698)) — stale runtime and database references now fail closed while existing connection, lease, and usage history remains preserved for auditability.
|
||||
@@ -0,0 +1 @@
|
||||
- **fix(sse):** retire the Gemini Web image-generation bridge while provenance and licensing remain on HOLD, preserving Gemini Web chat/auth/tools and legitimate Gemini/Nano Banana image providers ([#11708](https://github.com/diegosouzapw/OmniRoute/pull/11708))
|
||||
1
changelog.d/maintenance/11711-retire-edge-tts.md
Normal file
@@ -0,0 +1 @@
|
||||
- **chore(audio):** retire the built-in EdgeTTS provider and its 11-voice catalog while provenance/licensing review remains on HOLD; the generic `/v1/audio/speech` endpoint and the other speech providers remain available ([#11711](https://github.com/diegosouzapw/OmniRoute/pull/11711))
|
||||
@@ -0,0 +1 @@
|
||||
- **fix(providers):** retire `microsoft-designer-web` and its `msdesigner` alias from runtime and catalogs while preserving stored credentials, provider history and allowlists as inactive records — source dependency on gpt4free's [`MicrosoftDesigner.py`](https://github.com/xtekky/gpt4free/blob/0943d16eef757a44deb60651c07bbe5fa958cafe/g4f/Provider/needs_auth/MicrosoftDesigner.py) is proven at snapshot `0943d16eef757a44deb60651c07bbe5fa958cafe`, whose [`LICENSE`](https://github.com/xtekky/gpt4free/blob/0943d16eef757a44deb60651c07bbe5fa958cafe/LICENSE) is GPL-3.0; expressive adaptation is probable, which records provenance/licensing risk without asserting a legal conclusion ([#11720](https://github.com/diegosouzapw/OmniRoute/pull/11720)).
|
||||
1
changelog.d/maintenance/11726-third-party-notices.md
Normal file
@@ -0,0 +1 @@
|
||||
- **docs(legal):** centralize pinned MIT notices for the vendored GCF codec and local flag assets ([#11726](https://github.com/diegosouzapw/OmniRoute/pull/11726))
|
||||
@@ -0,0 +1 @@
|
||||
- **fix(dashboard):** replaced the Model Lockout card's unprovenanced notification MP3 with a short, locally synthesized Web Audio chime ([#11731](https://github.com/diegosouzapw/OmniRoute/pull/11731)) — both toggles retain optional audible feedback without shipping replacement media or third-party code, and unsupported, suspended, or rejected audio contexts fail open without blocking the setting change.
|
||||
@@ -0,0 +1 @@
|
||||
- **chore(deepseek-web):** remove the provenance-unresolved DeepSeek PoW WASM binary and its runtime loader/tracing while retaining the existing JavaScript solver (slower at high difficulty) ([#11732](https://github.com/diegosouzapw/OmniRoute/pull/11732)).
|
||||
@@ -0,0 +1 @@
|
||||
- **chore(assets):** remove four unused provider assets whose redistribution provenance could not be verified while retaining the active Freebuff SVG ([#11735](https://github.com/diegosouzapw/OmniRoute/pull/11735))
|
||||
@@ -0,0 +1 @@
|
||||
- **docs(assets):** retired two raster images whose redistribution provenance could not be verified ([#11736](https://github.com/diegosouzapw/OmniRoute/pull/11736)) — PicoClaw documentation now reuses the existing SVG, while Zoo Code remains a text link without an image.
|
||||
3
changelog.d/maintenance/11737-provider-asset-notices.md
Normal file
@@ -0,0 +1,3 @@
|
||||
- **docs(legal):** add pinned notices for six LobeHub-derived provider SVGs and 65 byte-exact
|
||||
theSVG assets, retaining registry claims as unverified metadata with explicit trademark and HOLD
|
||||
boundaries ([#11737](https://github.com/diegosouzapw/OmniRoute/pull/11737)).
|
||||
@@ -0,0 +1 @@
|
||||
- **chore(quality):** added a versioned 225/225 provider-asset provenance manifest and blocking drift gate ([#11743](https://github.com/diegosouzapw/OmniRoute/pull/11743)) — the inventory pins magic MIME and SHA-256 for every physical file, records immutable source matches for 71 assets, keeps 69 probable and 85 unresolved entries explicit but non-blocking, and treats provenance as source evidence rather than copyright or trademark clearance.
|
||||
@@ -0,0 +1 @@
|
||||
- **refactor(mitm):** replace four previously derived Traffic Inspector utilities — conversation normalization, SSE merging, secret masking, and header sanitization — with independent clean-room implementations based on public provider schemas, WHATWG SSE, and RFC 6750, while keeping the two independently classified passthrough surfaces unchanged ([#11748](https://github.com/diegosouzapw/OmniRoute/pull/11748)).
|
||||
@@ -194,11 +194,6 @@
|
||||
"count": 7
|
||||
}
|
||||
},
|
||||
"open-sse/executors/raycast.ts": {
|
||||
"@typescript-eslint/no-unused-vars": {
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"open-sse/executors/t3-chat-web.ts": {
|
||||
"@typescript-eslint/no-explicit-any": {
|
||||
"count": 11
|
||||
@@ -317,11 +312,6 @@
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"open-sse/lib/deepseek-pow.ts": {
|
||||
"@typescript-eslint/no-explicit-any": {
|
||||
"count": 5
|
||||
}
|
||||
},
|
||||
"open-sse/mcp-server/__tests__/a2aLifecycle.test.ts": {
|
||||
"@typescript-eslint/no-explicit-any": {
|
||||
"count": 1
|
||||
@@ -2790,11 +2780,6 @@
|
||||
"count": 3
|
||||
}
|
||||
},
|
||||
"src/mitm/dns/dnsConfig.ts": {
|
||||
"@typescript-eslint/no-unused-vars": {
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"src/mitm/dns/provision.ts": {
|
||||
"@typescript-eslint/no-unused-vars": {
|
||||
"count": 1
|
||||
@@ -2926,11 +2911,6 @@
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"src/shared/middleware/chatBodyAdmission.ts": {
|
||||
"@typescript-eslint/no-unused-vars": {
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"src/shared/services/apiKeyResolver.ts": {
|
||||
"no-restricted-imports": {
|
||||
"count": 1
|
||||
@@ -3440,10 +3420,10 @@
|
||||
},
|
||||
"tests/integration/skills-pipeline.test.ts": {
|
||||
"@typescript-eslint/no-explicit-any": {
|
||||
"count": 14
|
||||
"count": 15
|
||||
},
|
||||
"@typescript-eslint/no-unused-vars": {
|
||||
"count": 2
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"tests/integration/traffic-inspector-error-sanitization.test.ts": {
|
||||
@@ -3690,11 +3670,6 @@
|
||||
"count": 15
|
||||
}
|
||||
},
|
||||
"tests/unit/authz/probe-9033-repro.test.ts": {
|
||||
"@typescript-eslint/no-unused-vars": {
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"tests/unit/autoCombo/tieredRotation.test.ts": {
|
||||
"@typescript-eslint/no-unused-vars": {
|
||||
"count": 3
|
||||
@@ -4554,11 +4529,6 @@
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"tests/unit/compression/result-memo.test.ts": {
|
||||
"@typescript-eslint/no-unused-vars": {
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"tests/unit/compression/rtk-grouping.test.ts": {
|
||||
"@typescript-eslint/no-unused-vars": {
|
||||
"count": 1
|
||||
|
||||
@@ -229,7 +229,8 @@
|
||||
"tests/unit/vscode-token-routes.test.ts": 1633,
|
||||
"tests/unit/executor-antigravity.test.ts": 1427,
|
||||
"tests/unit/guardrails/videoBridgeResultCache.test.ts": 1040,
|
||||
"_rebaseline_2026_08_24_video_bridge_fu01_fu03_fu04_result_cache_tests": "PRs #11362 (FU-01 cache hardening) + #11382 (FU-03 visual dedup policy identity) + #11383 (FU-04 focused analysis mode) own test growth: videoBridgeResultCache.test.ts <1000->1040, +40 (sum of three stacked PRs boarded together in the same merge-batch, each adding its own cache-identity assertions on the shared result-cache seam). Owner pre-authorized rebaseline for legitimate PR growth (2026-08-19 directive)."
|
||||
"_rebaseline_2026_08_24_video_bridge_fu01_fu03_fu04_result_cache_tests": "PRs #11362 (FU-01 cache hardening) + #11382 (FU-03 visual dedup policy identity) + #11383 (FU-04 focused analysis mode) own test growth: videoBridgeResultCache.test.ts <1000->1040, +40 (sum of three stacked PRs boarded together in the same merge-batch, each adding its own cache-identity assertions on the shared result-cache seam). Owner pre-authorized rebaseline for legitimate PR growth (2026-08-19 directive).",
|
||||
"tests/integration/skills-pipeline.test.ts": 1010
|
||||
},
|
||||
"_rebaseline_2026_06_09": "Re-baseline consciente pre-release v3.8.19: 9 arquivos cresceram durante o ciclo (features mergeadas: RequestLoggerV2 +281 request-logger rework, stream +101, combo +73, chatCore +45, catalog +32 fable-5/catalog-flag, callLogs +4, accountFallback +2, usageHistory novo 840) + core.ts +7 (fix resetAllDbModuleState, PR 3536). A catraca segue valendo destes valores — proximo crescimento falha. Decisao: encolher (esp. RequestLoggerV2/chatCore) e a issue #3501 ficam para o ciclo seguinte.",
|
||||
"_rebaseline_2026_06_11_phase1f": "Phase 1f (#3501): ProviderDetailPageClient.tsx 4948→4062 (-886 LOC); 3 novos hooks extraídos. useProviderConnections.ts=954 acima do cap=800 — justificado: extração direta do god-component (zero lógica nova), própria redução do cliente supera o custo. useProviderSettings.ts=263 e useProviderModels.ts=154 já abaixo do cap.",
|
||||
@@ -435,7 +436,8 @@
|
||||
"src/shared/components/analytics/charts.tsx": 1346,
|
||||
"src/shared/services/cliRuntime.ts": 1459,
|
||||
"src/sse/handlers/chat.ts": 2493,
|
||||
"src/sse/services/auth.ts": 3432,
|
||||
"src/sse/services/auth.ts": 3443,
|
||||
"_rebaseline_2026_08_28_mergebatch_v3851_provenance_sweep_batch6": "/merge-batch 2026-08-27/28 (v3.8.51) provider/asset provenance & legal compliance sweep — combining the Designer Web + Felo Web + Runtime + GPL-derived (Raycast/Hailuo Web, #11691) retirement guards at their shared chokepoints: src/sse/services/auth.ts 3432->3443 (+11, getProviderCredentials()'s two sequential retirement-check if-blocks plus getModelInfoOrRetirementResponse() catch-branch wiring), src/sse/handlers/chatHelpers.ts 1019->1037 (+18, the combined retirement-error catch branches in the executor dispatch path), src/shared/constants/providers/apikey/gateways.ts 1330->1347 (+17, catalog drift from the same PR chain since the prior 2026-08-11 rebaseline), open-sse/services/autoCombo/virtualFactory.ts 1130->1132 (+2, retirement guard import wiring at the virtual-instance factory chokepoint). Each guard call is irreducible per-mechanism wiring at pre-existing chokepoints (getExecutor, resolveExecutorWithProxy, chat.ts/chatHelpers.ts catch branches, providers.ts write paths) — combining them is additive, not a new branch. Covered by the focused test suites of each boarded PR (chatcore-executor-proxy.test.ts, provider-node-reserved-prefix.test.ts, gpl-derived-provider-removals.test.ts, migration-166-retire-gpl-derived-providers.test.ts, among others).",
|
||||
"_rebaseline_2026_08_24_lasterror_provider_error_detail": "PR (ntdat812) own growth: src/sse/services/auth.ts 3344->3346 (+2). One line is the import of describeUpstreamFailure from @/shared/utils/upstreamError, which replaces the string-only collapse `typeof errorText === \"string\" ? errorText.slice(0, 100) : \"Provider error\"` at the single markAccountUnavailable chokepoint (net 0 lines there) — the logic itself lives in upstreamError.ts, next to the extractErrorMessage it reuses, so nothing else moved into this file. The second line is the repo's own lint-staged prettier pass splitting a pre-existing two-statements-on-one-line at getProviderCredentials (`invalidateManagedLease(...); log.warn(...)`); it re-applies on any commit that touches this file, so it is not separable from the change. Covered by tests/unit/provider-error-detail-lastError.test.ts.",
|
||||
"_rebaseline_2026_08_23_11186_synced_inventory_routing": "PR #11186 (pacocartones) own growth: src/sse/services/auth.ts 3260->3337 (+77, loadAdvertisedModelsForSelfHostedConnections + the modelNotAdvertised candidate-filter predicate — pins chat routing to the connection whose synced inventory actually advertises the model, fixing spurious model-not-found on multi-host self-hosted setups; at the existing credential-selection chokepoint, not extractable without splitting the selection flow). Covered by tests/unit/chat-routing-synced-inventory-11089.test.ts. Owner pre-authorized baseline bumps 2026-08-22.",
|
||||
"tests/unit/account-fallback-service.test.ts": 2044,
|
||||
@@ -459,14 +461,14 @@
|
||||
"_rebaseline_2026_08_22_11156_enter_check_disabled": "PR #11156 (rqzbeh) own growth: AddApiKeyModal.tsx 1080->1082 (+2, Enter keydown handler now mirrors the isCheckDisabled condition — owner-requested post-merge polish from #11056; the rest of the diff is Prettier reflow). Covered by tests/unit/ui/add-api-key-modal-enter-key.test.tsx (jsdom render test, Enter dispatch assertions).",
|
||||
"src/app/(dashboard)/dashboard/providers/[id]/hooks/useProviderConnections.ts": 1051,
|
||||
"src/shared/components/ModelSelectModal.tsx": 1138,
|
||||
"src/shared/constants/providers/apikey/gateways.ts": 1330,
|
||||
"src/shared/constants/providers/apikey/gateways.ts": 1347,
|
||||
"open-sse/vendor/codex-chatgpt-web/bridge.ts": 1387,
|
||||
"_rebaseline_2026_08_11_v3850_merge_storm_provider_registry": "DRIFT do merge-storm 2026-08-11 (99 PRs mergeados no release/v3.8.50). AddApiKeyModal.tsx (PR #8949 ChatGPT Web provider) e useProviderConnections.ts/ModelSelectModal.tsx (PRs #9011 combo test-all, #9499 image combos) = UI nova legitima acima do cap; gateways.ts = god-file de catalogo de providers que cresceu com PRs #9009/#9421/#9468/#9594 (qualquer split arriscaria corromper o merge de novo — o proprio PR #9421 quebrou o arquivo); bridge.ts (PR #8949) = ponte Chromium vendored; proxyFetch.ts 1207->1220 = drift herdado de merges. Owner autorizou rebaseline com anotacao (2026-08-11).",
|
||||
"src/lib/modelCapabilities.ts": 1072,
|
||||
"_rebaseline_2026_08_21_11034_effort_variants": "DRIFT do tip (base-red #9985): modelCapabilities.ts 1016->1072 (+56) acumulado por PRs ja mergeadas no release/v3.8.50 — principalmente #11034 (resolve effort-variant capabilities a partir do modelo base), alem de #10963/#11040/#10987 growth dos catalogos. Tip puro ficou vermelho neste gate; rebaseline no tip por push direto (owner pre-autorizou crescimento legitimo). Nao tocou no arquivo da #11038.",
|
||||
"src/app/(dashboard)/dashboard/providers/[id]/providerPageHelpers.ts": 1014,
|
||||
"open-sse/config/imageRegistry.ts": 1034,
|
||||
"src/sse/handlers/chatHelpers.ts": 1019,
|
||||
"src/sse/handlers/chatHelpers.ts": 1037,
|
||||
"src/shared/middleware/chatBodyAdmission.ts": 1118,
|
||||
"_rebaseline_2026_08_22_11020_sigterm_drain": "PR #11020 (RaviTharuma) own growth: chatBodyAdmission.ts 1005->1009 (+4, heavyweight admission leases now increment the SIGTERM drain counter and releaseChatAdmissionWhenDone holds it for the SSE lifetime — closes #11015; +4 are the lease/drain wiring lines at the existing admission chokepoint). Covered by tests/unit/chat-body-admission.test.ts heavyweight-lease cases. Owner pre-authorized baseline bumps 2026-08-22.",
|
||||
"_rebaseline_2026_08_20_10668_tabitoken_gateway": "#10668 (yawar-aquil) own catalog growth: src/shared/constants/providers/apikey/gateways.ts 1268->1283 (+15, entirely this PR diff -- one new tabitoken gateway entry, data lines only; base moved from 1255 to 1268 via other merges since the PR forked). Not combination drift: reproducible on the PR branch alone, so the WS5.5 release-captain rule does not apply. Extraction is not available -- the file is pure data (own header: \"Pure data; merged by apikey/index.ts via spread\") and already split into 6 family files under apikey/. Same precedent as _rebaseline_2026_08_14_imagetotext_servicekinds (#10275/#10291, gateways.ts 1250->1255, data lines only) and _rebaseline_2026_08_11_v3850_merge_storm_provider_registry (owner-authorized for this same file).",
|
||||
@@ -479,7 +481,7 @@
|
||||
"_rebaseline_2026_08_24_11355_cooldown_recovery_guards": "PR #11355 own growth: test/route.ts 1215->1237, +22 (startup crash-recovery guard: clearStaleCrashCooldowns() now parses the persisted rate_limited_until deadline and skips clearing rows still genuinely in the future, instead of clearing every non-terminal cooldown unconditionally). Cohesive fix at the existing test-route dispatch chokepoint alongside the #11141 probe builder. Covered by tests/unit/startup-stale-cooldown-recovery.test.ts + tests/unit/repro-zai-cooldown-cleared-by-connection-test.test.ts.",
|
||||
"src/lib/guardrails/videoBridgeRuntime.ts": 1009,
|
||||
"_rebaseline_2026_08_24_video_bridge_fu02_fu07_sampler": "PRs #11344 (FU-02 one-frame scene-aware determinism) + #11381 (FU-07 opt-in segment_aware structural sampling) own growth: videoBridgeRuntime.ts <1000->1009, +9 (sum of both boarded together in the same merge-batch). #11344 adds the deterministic one-frame midpoint fallback + policyEffective=uniform report at the existing scene_aware seam; #11381 adds the bounded local-only FFmpeg structural pre-analysis pass (scene/freeze/blur/exposure/SI-TI) and its budget-reallocation logic. Covered by tests/unit/guardrails/videoBridgeSampler.test.ts, tests/unit/guardrails/videoBridgeFu07StructuralSampling.test.ts, tests/integration/video-bridge-sampler-ffmpeg.test.ts. Owner pre-authorized rebaseline for legitimate PR growth (2026-08-19 directive).",
|
||||
"open-sse/services/autoCombo/virtualFactory.ts": 1130,
|
||||
"open-sse/services/autoCombo/virtualFactory.ts": 1132,
|
||||
"src/lib/cloudflaredTunnel.ts": 1078,
|
||||
"src/shared/components/RequestLoggerDetail.tsx": 1018
|
||||
},
|
||||
@@ -652,5 +654,6 @@
|
||||
"_rebaseline_2026_08_20_imageregistry_1034": "imageRegistry.ts 1033->1034: +1 line drift between #10842 (cursor image provider, froze at 1033) and its actual merged state on release (measured 1034) — trivial rebaseline, not a new feature.",
|
||||
"_rebaseline_2026_08_25_11146_subscription_first_auto": "PR #11146 (@yourspraveen, subscription-first auto groupings auto/subscription+auto/thrifty): open-sse/services/autoCombo/virtualFactory.ts is a NEW file in this PR landing at 1128 lines (+2 margin) — two opt-in flat auto ids built on the established auto/best-free pattern (connectionBillingCatalog + subscriptionLadder pure functions). Frozen at merge size per owner-authorized rebaseline directive (2026-08-19, merge-batch Step 4); no further growth without split rationale.",
|
||||
"_rebaseline_2026_08_26_mergebatch_v3851_batch1": "/merge-batch 2026-08-26 (v3.8.51): three legitimate growths from this batch. #11448 src/app/api/providers/[id]/test/route.ts 1237->1262 (auto-test-on-create wiring). #11495 src/sse/services/auth.ts 3346->3376 (web-cookie health-sweep verify-only path). #11561 src/lib/cloudflaredTunnel.ts new named-tunnel mode, lands at 1078 (+78 over the 1000 new-file cap) for the CLOUDFLARED_CONFIG named-tunnel flow (login->create->route dns config parsing + readiness detection). Owner-authorized rebaseline per merge-batch Step 4 (2026-08-19 directive); no further growth without split rationale.",
|
||||
"_rebaseline_2026_08_26_mergebatch_v3851_batch2": "/merge-batch 2026-08-26 (v3.8.51) batch 2: three legitimate growths. #11083 src/shared/components/RequestLoggerDetail.tsx new-file cap, lands at 1018 (+18 over 1000) — copy-all button for request detail modal. #11631 src/shared/constants/providers/apikey/gateways.ts 1321->1330 (1min.ai gateway entry). #11628 src/sse/services/auth.ts 3376->3432 (credential-health isolation from model failures). Owner-authorized rebaseline per merge-batch Step 4 (2026-08-19 directive); no further growth without split rationale."
|
||||
"_rebaseline_2026_08_26_mergebatch_v3851_batch2": "/merge-batch 2026-08-26 (v3.8.51) batch 2: three legitimate growths. #11083 src/shared/components/RequestLoggerDetail.tsx new-file cap, lands at 1018 (+18 over 1000) — copy-all button for request detail modal. #11631 src/shared/constants/providers/apikey/gateways.ts 1321->1330 (1min.ai gateway entry). #11628 src/sse/services/auth.ts 3376->3432 (credential-health isolation from model failures). Owner-authorized rebaseline per merge-batch Step 4 (2026-08-19 directive); no further growth without split rationale.",
|
||||
"_rebaseline_2026_08_26_mergebatch_v3851_batch5": "/merge-batch 2026-08-26 (v3.8.51) batch 5: #11642 tests/integration/skills-pipeline.test.ts new regression test for the configured-provider-over-fallback search selection (#11524), lands at 1010 lines (+10 over the 1000 new-file testCap). Owner-authorized rebaseline per merge-batch Step 4 (2026-08-19 directive); no further growth without split rationale."
|
||||
}
|
||||
|
||||
231
config/quality/provider-assets-provenance.jsonl
Normal file
@@ -0,0 +1,231 @@
|
||||
{"recordType":"manifest","schemaVersion":1,"expectedAssetCount":225,"auditedCommit":"091589089cd134a94df9f6cdab9ba562b2cefd18","auditedAt":"2026-08-26","scope":"Every regular file directly under public/providers at the audited commit.","statusSemantics":{"proven":"Immutable source plus byte-exact or SVG path-data match.","probable":"Repository evidence suggests provenance, but no immutable upstream match is proven.","unresolved":"No sufficient immutable provenance evidence is recorded."},"enforcement":"All physical files, hashes, magic MIME values, statuses, and duplicate aliases are blocking. Probable and unresolved statuses are recorded but non-blocking in schema version 1.","legalScope":"Provenance records source matching only; it does not establish copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/360ai.svg","mediaType":"image/svg+xml","sha256":"59366fe04a4336518b8277b430f4a464a91e7ec944c9cf6f40a945c74002386d","provenanceStatus":"proven","source":{"kind":"npm","url":"https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz","ref":"5.10.0","path":"package/es/Ai360/components/Color.js","integrity":"sha512-CIpjkISCLRK7haDtSugGFd0o3odaJts8ewJOkUiEFtns3xvsqbl8i24eowBnjw+yMDQVQyNONlhqTD58YC6Ljg==","packageShasum":"add1baced073a60157d39c7820b8d5c1928a1054","match":"svg-path-data","matchDetail":"All 5/5 local SVG path d values match the pinned Color component."},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"@lobehub/icons@5.10.0 package/LICENSE","evidence":"https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz#package/LICENSE","independentlyVerified":true,"scope":"Pinned package distribution only; no trademark clearance."},"trademarkClearance":null,"evidenceNote":"All local SVG path data matches the pinned LobeHub Color component. This proves source provenance only, not trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/adapta-web.png","mediaType":"image/png","sha256":"4b6e748879bd76ced99f3885767ead179739c5d56a63daf7baccda0805b69d11","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/agentrouter.png","mediaType":"image/png","sha256":"32132a307cad98d7f93b0384de87411f087bb34c148c932dcd5eea92101cbec3","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/aimlapi.png","mediaType":"image/png","sha256":"775ac2602a35e725b4f452b29c0827ca51872914a6f834afaf451342c1400c90","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/alibaba.svg","mediaType":"image/svg+xml","sha256":"1cd1e7be5108d1e847508dc9e40591fb6eb29aac20bbf7f4c56c6f082359b323","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/alibaba/default.svg","integrity":"sha256:1cd1e7be5108d1e847508dc9e40591fb6eb29aac20bbf7f4c56c6f082359b323","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://alibaba.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/anthropic-m.png","mediaType":"image/png","sha256":"2440273e0dde1c58af905aa5c6246e603d949b11aceef70dc39502e620e4e3ee","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/anthropic.svg","mediaType":"image/svg+xml","sha256":"7fea3100bfc2a9480e181fc615d4791cab014f54674b83953785abb86dc293f0","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/anthropic/default.svg","integrity":"sha256:7fea3100bfc2a9480e181fc615d4791cab014f54674b83953785abb86dc293f0","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://www.anthropic.com/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/api-airforce.svg","mediaType":"image/svg+xml","sha256":"1b03c991ad613f781fa02b3a22e357e753beee6e8801249ac366acec7a6b974f","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/apikey.svg","mediaType":"image/svg+xml","sha256":"b348407ccd0b19eaa00b5ed4e5cf7e69ea8e244291c9cadc41dfb2495f80c381","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/arcee-ai.svg","mediaType":"image/svg+xml","sha256":"41a8ed8278ec89d6a12ba5c96172ee30d6fadc93474792a8c95732ad7466233e","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/arcee.svg","mediaType":"image/svg+xml","sha256":"c54fde7b3f98270594daaa1215f07c22d705bb89799d9a116321fd2b3379e971","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/arcee/default.svg","integrity":"sha256:c54fde7b3f98270594daaa1215f07c22d705bb89799d9a116321fd2b3379e971","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://arcee.ai/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/arena-dark.svg","mediaType":"image/svg+xml","sha256":"5c783b4dadd9c76f65cc64d4a42a3a285d12dfe3d6b297280223b5f893350735","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/arena-light.svg","mediaType":"image/svg+xml","sha256":"b4e3a8342fa5e9669455581d68e5ae0b34deaf3dde7e99297bc002626b7f3679","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/assemblyai.svg","mediaType":"image/svg+xml","sha256":"12b95e8db89da1d2676fe289b942e5ebd23e61743bfbae5291c18e07509f5f1a","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/assemblyai/default.svg","integrity":"sha256:12b95e8db89da1d2676fe289b942e5ebd23e61743bfbae5291c18e07509f5f1a","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://assemblyai.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/auggie.svg","mediaType":"image/svg+xml","sha256":"deef0f33f2be4516c977d1ca0c2580265752eb6b2111ffa6a10d99ae6e39f3fb","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/aws.svg","mediaType":"image/svg+xml","sha256":"65e2ca39ef0669dbb0323bc5ab69f981b8087d8ebb3e4a3bce1d3b32b3b67151","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/aws/default.svg","integrity":"sha256:65e2ca39ef0669dbb0323bc5ab69f981b8087d8ebb3e4a3bce1d3b32b3b67151","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://aws.amazon.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/azure.svg","mediaType":"image/svg+xml","sha256":"6c6f0097f0e4a2b4adb7c29f770205c25b7b5c97fb317f3eaebab603f0de4a35","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/azure/default.svg","integrity":"sha256:6c6f0097f0e4a2b4adb7c29f770205c25b7b5c97fb317f3eaebab603f0de4a35","match":"byte-exact"},"upstreamLicenseClaim":{"value":"brand-use","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://azure.microsoft.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/azureai.svg","mediaType":"image/svg+xml","sha256":"a8ad4524c2b8277209bfd0fda29dd9a659fa0d8c2d75f7adb0acd36045b98f96","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/baichuan.svg","mediaType":"image/svg+xml","sha256":"7d49311206402734850ed9dc112759780429bb363dcee31eccb5a92f428532a6","provenanceStatus":"proven","source":{"kind":"npm","url":"https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz","ref":"5.10.0","path":"package/es/Baichuan/components/Color.js","integrity":"sha512-CIpjkISCLRK7haDtSugGFd0o3odaJts8ewJOkUiEFtns3xvsqbl8i24eowBnjw+yMDQVQyNONlhqTD58YC6Ljg==","packageShasum":"add1baced073a60157d39c7820b8d5c1928a1054","match":"svg-path-data","matchDetail":"The local SVG path d value matches the pinned Color component (1/1)."},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"@lobehub/icons@5.10.0 package/LICENSE","evidence":"https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz#package/LICENSE","independentlyVerified":true,"scope":"Pinned package distribution only; no trademark clearance."},"trademarkClearance":null,"evidenceNote":"All local SVG path data matches the pinned LobeHub Color component. This proves source provenance only, not trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/baidu.svg","mediaType":"image/svg+xml","sha256":"1059750a2069aec6080ff48732931e87a99bd3d22db3e8471cebe255b6014b75","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/bailian.svg","mediaType":"image/svg+xml","sha256":"240f4584c8ae0a32ec84ab53068abc6649881393e831af716c389e4825ac6779","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/bailian/default.svg","integrity":"sha256:240f4584c8ae0a32ec84ab53068abc6649881393e831af716c389e4825ac6779","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://bailian.console.aliyun.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/baseten.svg","mediaType":"image/svg+xml","sha256":"345e69ec97668ac946cdeb36cd47f39f82d9d0a9fb597325df21874881c6c95c","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/baseten/default.svg","integrity":"sha256:345e69ec97668ac946cdeb36cd47f39f82d9d0a9fb597325df21874881c6c95c","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://baseten.co"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/bazaarlink.svg","mediaType":"image/svg+xml","sha256":"9e16ff0a57ca5badc2e2fdcc3661b69ea4c5395c5cedc839d93ae670f043f9a8","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/blackbox-web.png","mediaType":"image/png","sha256":"ba3be1b3edff386b3a55bedb03e219d6cd497504ead4eae93a20d4172924af54","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/blackbox.png","mediaType":"image/png","sha256":"4f5f895b0b6a777f0ab75e9be328ca7c092be2625c89414a2d994d1255c6524f","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/bluesminds.svg","mediaType":"image/svg+xml","sha256":"669efe432349463f0753fc093e55181f91ac604a08ef23d354085c2ed439c9e4","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/brave-search.svg","mediaType":"image/svg+xml","sha256":"2530f80fdf2144b62f96953a81c6988c9c31a6cc7c9de72e069079485817cbe7","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/brave.svg","mediaType":"image/svg+xml","sha256":"2530f80fdf2144b62f96953a81c6988c9c31a6cc7c9de72e069079485817cbe7","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/byteplus.svg","mediaType":"image/svg+xml","sha256":"8fe36c991b3f5a4f7ab32d381f8685705894ee9167bd54def172065cc90e8667","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/bytez.svg","mediaType":"image/svg+xml","sha256":"64e352d06ecb3f5d4ecb64506eea82f6b1583118574dd203316b750e2737421b","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/cartesia.svg","mediaType":"image/svg+xml","sha256":"f9771f7cc47f6ead48cc82202fcf48343ca7c8d6acc112d2a810aa0719f37341","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/cerebras.svg","mediaType":"image/svg+xml","sha256":"b0f331de0f07ef52cd9078b7cd85a646b3363fbdafe8203a022a8ce01038d0d4","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/cerebras/default.svg","integrity":"sha256:b0f331de0f07ef52cd9078b7cd85a646b3363fbdafe8203a022a8ce01038d0d4","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://cerebras.ai"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/charm-hyper.svg","mediaType":"image/svg+xml","sha256":"2203baaa2c92e3ba51ce1102a56d5252de464769f3a136e0e541dd770f6e0493","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/cheaperinference.svg","mediaType":"image/svg+xml","sha256":"ba0bc069c23635cec121631c00a83821c2b37a9c305047e1137c5ed91c206f04","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/chipotle.svg","mediaType":"image/svg+xml","sha256":"a6dbd58ac2709f911f72a5b3f7b213eefaf386e45ca57265bb5d846490b41802","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/chutes.svg","mediaType":"image/svg+xml","sha256":"0da85d29012d21825d7a23e9ed9733f1736fb4457aaa807ac1cbb6ccd50447e5","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/clarifai.svg","mediaType":"image/svg+xml","sha256":"329d129d742c7a98ddb9609d14fd5fa40ed6a6acb0df37f7df1ec6a625d7b3cf","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/claude-web.svg","mediaType":"image/svg+xml","sha256":"a3101f3047a119aa11825ad9369510f0c472428c8c52d420e31bc62db44a8364","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/claude.svg","mediaType":"image/svg+xml","sha256":"a3101f3047a119aa11825ad9369510f0c472428c8c52d420e31bc62db44a8364","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/cli-generic.svg","mediaType":"image/svg+xml","sha256":"7e84afa7786c12713ef24fae43636ac569238baa183f4f4cf447bfe8927abef2","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository history describes a neutral terminal glyph, but no immutable authorship or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/cline.svg","mediaType":"image/svg+xml","sha256":"9ba76231c007d458b43d6ed104feff2e0e32299cef30e43f643f941ff92a7153","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/cline/default.svg","integrity":"sha256:9ba76231c007d458b43d6ed104feff2e0e32299cef30e43f643f941ff92a7153","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://cline.bot/assets/branding/logos/cline-wordmark-black.svg"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/cliproxyapi.png","mediaType":"image/png","sha256":"ec3768ec99fe47ac13e748720e85f67c7e05aa6794d619d13af50f5b8f8d1f21","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/cloudflare.svg","mediaType":"image/svg+xml","sha256":"a986a9eda9b111bb0e3745bb4453f3c7aad33b974367348d36b5c02719ae01a2","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/codex.svg","mediaType":"image/svg+xml","sha256":"4a2f43ce46b5b6e3722c95088f88d26ef91e6a8c2e598e70642a1c54367386e4","provenanceStatus":"proven","source":{"kind":"npm","url":"https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz","ref":"5.10.0","path":"package/es/Codex/components/Color.js","integrity":"sha512-CIpjkISCLRK7haDtSugGFd0o3odaJts8ewJOkUiEFtns3xvsqbl8i24eowBnjw+yMDQVQyNONlhqTD58YC6Ljg==","packageShasum":"add1baced073a60157d39c7820b8d5c1928a1054","match":"svg-path-data","matchDetail":"All 2/2 local SVG path d values match the pinned Color component."},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"@lobehub/icons@5.10.0 package/LICENSE","evidence":"https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz#package/LICENSE","independentlyVerified":true,"scope":"Pinned package distribution only; no trademark clearance."},"trademarkClearance":null,"evidenceNote":"All local SVG path data matches the pinned LobeHub Color component. This proves source provenance only, not trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/cohere.svg","mediaType":"image/svg+xml","sha256":"f6aa4ebde660951b60e9f3438bbf82f48d7e64ddcd1707a672b92ba57626a024","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/comfyui.svg","mediaType":"image/svg+xml","sha256":"0867b6df03d94ac9240993abb8f7636e4d1254aa8a0cb69fe3c29be1d30fbdcf","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/comfyui/default.svg","integrity":"sha256:0867b6df03d94ac9240993abb8f7636e4d1254aa8a0cb69fe3c29be1d30fbdcf","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://comfy.org"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/command-code.svg","mediaType":"image/svg+xml","sha256":"7137a48d8522ee555dde47166edc3b36f1078a8952e77943df037648f6b5b571","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/continue.svg","mediaType":"image/svg+xml","sha256":"c289d46ef6901c5fa9f4968e314d209af4d3bb774b9f390d7aeb4a5290b9ed2b","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/continue/default.svg","integrity":"sha256:c289d46ef6901c5fa9f4968e314d209af4d3bb774b9f390d7aeb4a5290b9ed2b","match":"byte-exact"},"upstreamLicenseClaim":{"value":"Apache-2.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://continue.dev"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/copilot.svg","mediaType":"image/svg+xml","sha256":"04f15d0556fbac10a4e0f82d1560610db8b33cd04780a4f24ad3b91c4abd278d","provenanceStatus":"proven","source":{"kind":"npm","url":"https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz","ref":"5.10.0","path":"package/es/Copilot/components/Color.js","integrity":"sha512-CIpjkISCLRK7haDtSugGFd0o3odaJts8ewJOkUiEFtns3xvsqbl8i24eowBnjw+yMDQVQyNONlhqTD58YC6Ljg==","packageShasum":"add1baced073a60157d39c7820b8d5c1928a1054","match":"svg-path-data","matchDetail":"All 6/6 local SVG path d values match the pinned Color component."},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"@lobehub/icons@5.10.0 package/LICENSE","evidence":"https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz#package/LICENSE","independentlyVerified":true,"scope":"Pinned package distribution only; no trademark clearance."},"trademarkClearance":null,"evidenceNote":"All local SVG path data matches the pinned LobeHub Color component. This proves source provenance only, not trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/coze.svg","mediaType":"image/svg+xml","sha256":"6e941b56746e9c58e9b3ec9734f92384462bec857fff7234abb671b0aa81a5e6","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository history shows a shared generic initial-badge pattern, but no immutable authorship or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/crof.svg","mediaType":"image/svg+xml","sha256":"10287dca3f0efca484d917a6abb8b3b1b7cb9458127522dedd1df3095df792bf","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/cursor.svg","mediaType":"image/svg+xml","sha256":"cd0e3e5d8991a4cdd4577f8896cd063105207665165c73e25a1ff918dd367eb7","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/cursor/default.svg","integrity":"sha256:cd0e3e5d8991a4cdd4577f8896cd063105207665165c73e25a1ff918dd367eb7","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://www.cursor.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/dahl.png","mediaType":"image/png","sha256":"f89396a077cd4118157fca8d983ff31397baabe6531d03c4e7fd3bc3a7342982","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/deepgram.svg","mediaType":"image/svg+xml","sha256":"391f7d32e87f97489a3f409fc80a38bc8ef592617070e735055bfaa2c6e6f711","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/deepgram/default.svg","integrity":"sha256:391f7d32e87f97489a3f409fc80a38bc8ef592617070e735055bfaa2c6e6f711","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://deepgram.com/company/newsroom"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/deepinfra.svg","mediaType":"image/svg+xml","sha256":"e2daddb98348277845a52a78bf1b04d33d333aaaf06fd641b020f26e5a0669ee","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/deepinfra/default.svg","integrity":"sha256:e2daddb98348277845a52a78bf1b04d33d333aaaf06fd641b020f26e5a0669ee","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://deepinfra.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/deepseek.svg","mediaType":"image/svg+xml","sha256":"2ac9f2281f078ffd2857c050b7828fe5eb49a69bdcea65da3839fdc46af70335","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/dgrid.svg","mediaType":"image/svg+xml","sha256":"7b55bc9f408193c2a6e9967b33ef1e17522194341a4f51c54025ec7c68afb5a6","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/dify.svg","mediaType":"image/svg+xml","sha256":"6c1704b6f14eb995d010549847b733dbbc54af66974a2bc62623fbdad4981c66","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/digitalocean.svg","mediaType":"image/svg+xml","sha256":"095e5839f856cc930d8cf33c619470480dddbf785b930cd4c20a360347effdce","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/dit.svg","mediaType":"image/svg+xml","sha256":"2df81e2ba3401ed8024b01dd1f11704744574e5333dbf0ef0a5c1898e9be6f93","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/docker-model-runner.svg","mediaType":"image/svg+xml","sha256":"d516c4eda88941f8816786d310624e42a40941712c9801abe2a918d1a6fdcbc7","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/doubao.svg","mediaType":"image/svg+xml","sha256":"3cd31ba03ae44b8c29561597a3b863809efecb13fcdfd08407a086df86a69b55","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/droid.svg","mediaType":"image/svg+xml","sha256":"96290a3c012904a4796e51629ef72ff20fddc6a24d1a21fece96f17c0439e062","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/duckduckgo-web.svg","mediaType":"image/svg+xml","sha256":"83fde60229cb98fd381a1b0f01e7330ac74bcd50cbaf43db5d2e3004a3eeab84","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/elevenlabs.svg","mediaType":"image/svg+xml","sha256":"24e2fe318bc1ed54a29ceb867e4ecead952355cda4241b07402d1ff6510dc133","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/elevenlabs/default.svg","integrity":"sha256:24e2fe318bc1ed54a29ceb867e4ecead952355cda4241b07402d1ff6510dc133","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://elevenlabs.io/brand"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/empower.png","mediaType":"image/png","sha256":"ea0dbf43dbbcc8d6ea22681a95ca694f2ba7797ce5a8abdfced3f73eb1b0a72a","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/exa.svg","mediaType":"image/svg+xml","sha256":"2ccd7ec05fa43dbfcfa7d0df1810f07978edb82afca3b2cb83a9393aa2e33ee8","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/exa/default.svg","integrity":"sha256:2ccd7ec05fa43dbfcfa7d0df1810f07978edb82afca3b2cb83a9393aa2e33ee8","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://exa.ai"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/factory.svg","mediaType":"image/svg+xml","sha256":"472057d6a04afc32a23af1e90ce318491dee2f3fc03ab3e6b6c06d254c419253","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/fal.svg","mediaType":"image/svg+xml","sha256":"5214ae1cf705b0ce4c155f03efadca2b16685586fc46a237910610b920a46e2f","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/fal/default.svg","integrity":"sha256:5214ae1cf705b0ce4c155f03efadca2b16685586fc46a237910610b920a46e2f","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://fal.ai"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/fireworks.svg","mediaType":"image/svg+xml","sha256":"1df32a350d032f6d8a0860271473c10ae5d9d97273f3f8402c454e7feb33a626","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/fireworks/default.svg","integrity":"sha256:1df32a350d032f6d8a0860271473c10ae5d9d97273f3f8402c454e7feb33a626","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://fireworks.ai"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/freeaiapikey.svg","mediaType":"image/svg+xml","sha256":"36dac65bf68ce787c222d342fa497e2c1c2e051ca011befa4e3d27f6e9dd3b0d","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/freebuff-dark.svg","mediaType":"image/svg+xml","sha256":"4d48a1405c68b00121fa7100e080025fa3e9e090c59055b56e4ad0aee1a7de7f","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/freebuff-light.svg","mediaType":"image/svg+xml","sha256":"4d48a1405c68b00121fa7100e080025fa3e9e090c59055b56e4ad0aee1a7de7f","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/freebuff.png","mediaType":"image/png","sha256":"ef3ddde4bbda499f6d9e04139bfef9a9eac310244d8b5215da7c075806388011","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/freebuff.svg","mediaType":"image/svg+xml","sha256":"4d48a1405c68b00121fa7100e080025fa3e9e090c59055b56e4ad0aee1a7de7f","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/freemodel-dev.svg","mediaType":"image/svg+xml","sha256":"492311bb580cb397a8ba245fcd7585912bc3e3ffc09c2e0a6a245319c6005c77","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/friendli.svg","mediaType":"image/svg+xml","sha256":"2c39f9cfb3cb37dd96c72972495341b6e5dc5077a49566a232a692428a39aefa","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/friendli/default.svg","integrity":"sha256:2c39f9cfb3cb37dd96c72972495341b6e5dc5077a49566a232a692428a39aefa","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://friendli.ai"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/galadriel.svg","mediaType":"image/svg+xml","sha256":"c515553cb07a098a9e494fc139954deb19abd97ed9a0fa212005d3fb1c0ad31d","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/gemini.svg","mediaType":"image/svg+xml","sha256":"c11d94a9e3ecb32f67dd9350848cf3124d617680533275c672e1e6bf61ce8cd4","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/gemini/default.svg","integrity":"sha256:c11d94a9e3ecb32f67dd9350848cf3124d617680533275c672e1e6bf61ce8cd4","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://gemini.google.com/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/gigachat.png","mediaType":"image/jpeg","sha256":"e541f8a2537150bec9c1f09ed4e850205af6f553a31207c95372af3ba1f9d3a9","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/gitlab-duo.svg","mediaType":"image/svg+xml","sha256":"67413dbdc9be21ca995ad318234e5463af1262668b4a203da72388e22ef3ac40","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/gitlab.svg","mediaType":"image/svg+xml","sha256":"67413dbdc9be21ca995ad318234e5463af1262668b4a203da72388e22ef3ac40","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/gitlawb-gmi.svg","mediaType":"image/svg+xml","sha256":"7e79329c67b011fece39606151f500720ff6017bc2c2cb2ca8a841a453fb14ef","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/gitlawb.svg","mediaType":"image/svg+xml","sha256":"4f8a7ba91c2db0383bbab00c80d45919de1394337e83269396afedad1c957a15","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/google.svg","mediaType":"image/svg+xml","sha256":"fb800918b0b68f12d7a143cb3f51316e478697daa662e7c3d03621f15a4d1d73","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/grok.svg","mediaType":"image/svg+xml","sha256":"b20648e2f111d7fbc91f58b22d1e76e9885b68a163cb5a1010f7f11bf5840491","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/grok/default.svg","integrity":"sha256:b20648e2f111d7fbc91f58b22d1e76e9885b68a163cb5a1010f7f11bf5840491","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://grok.com/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/groq.svg","mediaType":"image/svg+xml","sha256":"f8b4420340ff8875a1f04ce80909325dd81b0cb78d0c7a15fd567977338ae956","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/groq/default.svg","integrity":"sha256:f8b4420340ff8875a1f04ce80909325dd81b0cb78d0c7a15fd567977338ae956","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://groq.com/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/haiper.svg","mediaType":"image/svg+xml","sha256":"961d91a3cbcf20372128a5e2a12f568ff8fb5b09cd6d63e5b85fe2e8f5e47c48","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/hcnsec.svg","mediaType":"image/svg+xml","sha256":"ea059057d9f92f7ad8ee0fea634812ff31e454924043f26009f6c1f58db58146","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/heroku.svg","mediaType":"image/svg+xml","sha256":"eed8d3cb106c7d1047cbf85d974011911c46aed78616dc748133fe6b7740ee33","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/heroku/default.svg","integrity":"sha256:eed8d3cb106c7d1047cbf85d974011911c46aed78616dc748133fe6b7740ee33","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://www.heroku.com/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/huggingchat.svg","mediaType":"image/svg+xml","sha256":"5d39d66bb6c9b026d3cb5de7bd9978dad3906570df2aca8f00078a6f8a3d0f5e","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/huggingface.svg","mediaType":"image/svg+xml","sha256":"596c7b0e1fb7598c0b178276bfba4a33022e9e285461db42c5903b07375f81fa","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/huggingface/default.svg","integrity":"sha256:596c7b0e1fb7598c0b178276bfba4a33022e9e285461db42c5903b07375f81fa","match":"byte-exact"},"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source, but that registry ref has no license metadata for this slug. No legal clearance is inferred."}
|
||||
{"recordType":"asset","path":"public/providers/hyperbolic.svg","mediaType":"image/svg+xml","sha256":"f61f429451497ffc5d03e3e4dfc09f79ac067d848336a048e0a373aa5299990a","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/hyperbolic/default.svg","integrity":"sha256:f61f429451497ffc5d03e3e4dfc09f79ac067d848336a048e0a373aa5299990a","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://hyperbolic.xyz"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/ibm.svg","mediaType":"image/svg+xml","sha256":"b68f2d7e0cb1e0a7c09a54574402528be3b00bfdd4bb7710e85aec7a50efb6f2","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/ibm/default.svg","integrity":"sha256:b68f2d7e0cb1e0a7c09a54574402528be3b00bfdd4bb7710e85aec7a50efb6f2","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://www.ibm.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/ideogram.svg","mediaType":"image/svg+xml","sha256":"bbccfb17aaf068aeebdfd598b4130f0992feea075f553015be82f086b9ff68ad","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/iflytek.svg","mediaType":"image/svg+xml","sha256":"0012c7c24cf8d987a9e2fd17e9b555ff8082e4a7369b3e57dc0a827146bb0868","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/inclusionai.svg","mediaType":"image/svg+xml","sha256":"5f400bfb76593c16907eecc95fa875e3d0751ba49b32c6c10d7c07744d5d1ba0","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository history shows a shared generic initial-badge pattern, but no immutable authorship or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/inference.svg","mediaType":"image/svg+xml","sha256":"f3f44ad6cb293023d7df21dd38109377197503df52b1baeb2f51556a6d52873b","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/inference/default.svg","integrity":"sha256:f3f44ad6cb293023d7df21dd38109377197503df52b1baeb2f51556a6d52873b","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://inference.net"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/inner-ai.png","mediaType":"image/png","sha256":"fbc0bf77452b6b705c788aeef0c396d8cafe32a5e7143f9fcb3030ce221b9ebc","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/inworld.svg","mediaType":"image/svg+xml","sha256":"04d63fe0089ba50aaa98a5e77f6970ff8cfa8aa807f51c38967170879762f9ed","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/ironclaw.png","mediaType":"image/png","sha256":"af3a8075083264332fc8a3d5b0d4f936716753738e57f3b63e9c81f16bb83171","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/kenari.svg","mediaType":"image/svg+xml","sha256":"d5c66cc423f69cbd326c1b4612e343d97278ec0cc1bcdfc39a23e074ac06420c","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/kie.png","mediaType":"image/png","sha256":"c1854980b86614a6539341cf38bb1f83ddcda1ce11e3718543d3a8562973f6a7","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/kilo-gateway.svg","mediaType":"image/svg+xml","sha256":"0bf05e2f9c1355e8a1d020c07f433ea725f1270607f04b83c398d44914ebe422","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/kilocode.svg","mediaType":"image/svg+xml","sha256":"0bf05e2f9c1355e8a1d020c07f433ea725f1270607f04b83c398d44914ebe422","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/kimi-logomark-dark.svg","mediaType":"image/svg+xml","sha256":"e15425da3274436f2203cfe532e8194965cbc2602c49baf60e320fe3c6f76b08","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #8039 describes official partnership logomarks, but no immutable asset URL or explicit rights grant is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/kimi-logomark-light.svg","mediaType":"image/svg+xml","sha256":"dbb37a7a98d6661516c35229376b9bfd22d3d802a559aeebca274d7ad7140be8","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #8039 describes official partnership logomarks, but no immutable asset URL or explicit rights grant is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/kimi.svg","mediaType":"image/svg+xml","sha256":"193be48cd5306bf67ab3bc349e8fba9bfdeae85b3a52ffa86fd145ed2ff23f0e","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/kiro.svg","mediaType":"image/svg+xml","sha256":"4eae4d6e818da7342c32c7d443ab7c97b93c544db9af379d5b5bf7f0a3127d66","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/krutrim.svg","mediaType":"image/svg+xml","sha256":"7ab68a187354ea58039e5d9129886e063b9fa21af4e3875bb395e8eba727808b","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository history shows a shared generic initial-badge pattern, but no immutable authorship or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/lambda.svg","mediaType":"image/svg+xml","sha256":"5749cb1b812858dca0c85233e9b1400d67dfbdd47c5ddea5ec70e1b47538799d","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/lambda/default.svg","integrity":"sha256:5749cb1b812858dca0c85233e9b1400d67dfbdd47c5ddea5ec70e1b47538799d","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://lambdalabs.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/lemonade.png","mediaType":"image/png","sha256":"e7717e379558213ec9675dac8c07cd74ed62b485259b02e76359a8489885f30a","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/leonardo.svg","mediaType":"image/svg+xml","sha256":"5269781259061dae191cde70884e3a108c215d8c530e7b1458d9d7dc1b698243","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/letta.png","mediaType":"image/png","sha256":"f3f47bce18599153df5b8a683172f9fc644f343da3ba2d8416d791c3b2941e57","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/linkup-search.png","mediaType":"image/png","sha256":"ba30bce9eb7e7eac2669df05174d64215a584022e86fd7c1a3cea06bd242e384","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/liquid.svg","mediaType":"image/svg+xml","sha256":"a09beaff7addad17c5a55add836aabb95acfe3147055a9d9a38000ce076e153c","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository history shows a shared generic initial-badge pattern, but no immutable authorship or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/llamafile.png","mediaType":"image/png","sha256":"dba51fea70faacb3dc985dbc33142a459e74c983222a818375ca455c0dd2e300","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/llamagate.png","mediaType":"image/jpeg","sha256":"255510f8d30b26bee7618c5524e1c3b27524cc9594eb70e0500c05c0ac5cf75c","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/llm7.svg","mediaType":"image/svg+xml","sha256":"0b763a74f152dbaea9d55171bedad9614259ac1979feeb8452a7f09dfa402e32","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/logfare.png","mediaType":"image/png","sha256":"f08afcdb0e3886de6f9433dccfd915a14006a554f01f2f6cf4064d9f4fffd6ec","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/longcat.svg","mediaType":"image/svg+xml","sha256":"73e6838c126557998803a3c864ceb8ac6982597fa680fa139ff942d456c23687","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/longcat/default.svg","integrity":"sha256:73e6838c126557998803a3c864ceb8ac6982597fa680fa139ff942d456c23687","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://longcat.chat/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/maritalk.png","mediaType":"image/png","sha256":"61cf3c66581e4b2c356b3ca37e056efb4cf2bcefd5560f0f7a7613ce6c2744e0","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/meta.svg","mediaType":"image/svg+xml","sha256":"f983ce7206fa1a889255f47b4a70bd13ddcbb01e8cefb4f2d0f98638f6d5d500","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/metaai.svg","mediaType":"image/svg+xml","sha256":"a7b52cfde49434eab56dfaf8550633fe2200885d7fe9880f0ddac49ecef71393","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/minimax.svg","mediaType":"image/svg+xml","sha256":"e514235f472e335f8bb0094ddcc2762b7e38e0dca66225893294457081cc6abf","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/minimax/default.svg","integrity":"sha256:e514235f472e335f8bb0094ddcc2762b7e38e0dca66225893294457081cc6abf","match":"byte-exact"},"upstreamLicenseClaim":{"value":"Custom","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://github.com/MiniMax-AI/MiniMax-01/blob/57cf223b177e99636c7711a0f179e9fdc9c38e8a/figures/minimax.svg"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/mistral.svg","mediaType":"image/svg+xml","sha256":"a21838f4a3714b9f537bd849de4848dca712778517bfc4177621cc58b3050006","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/mistral/default.svg","integrity":"sha256:a21838f4a3714b9f537bd849de4848dca712778517bfc4177621cc58b3050006","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://mistral.ai"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/modal.svg","mediaType":"image/svg+xml","sha256":"650307e51a2972207ac3f480db2c6326f08b21978b9fcfed4a383997a6da3575","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/modelscope.svg","mediaType":"image/svg+xml","sha256":"abf2eed2273769c447af57bcbb0b13e23c23fac97182664b31c5cf67c8cb321e","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/monsterapi.svg","mediaType":"image/svg+xml","sha256":"463d672cbb1caa930d50457c4f4c0319a67305b03d45328eef4c3c00ce451da7","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository history shows a shared generic initial-badge pattern, but no immutable authorship or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/moonshot.svg","mediaType":"image/svg+xml","sha256":"a6ac95d972fdb044cd4155b0f75d9c1c816348868c810f63c7e5c8840c9e3e12","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/moonshot/default.svg","integrity":"sha256:a6ac95d972fdb044cd4155b0f75d9c1c816348868c810f63c7e5c8840c9e3e12","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://moonshot.cn"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/morph.svg","mediaType":"image/svg+xml","sha256":"0fdb479e13c5d5de15aa89d1f87c8d55f8f8a56d33fc5dee8c566d2e0dbd5b96","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/morph/default.svg","integrity":"sha256:0fdb479e13c5d5de15aa89d1f87c8d55f8f8a56d33fc5dee8c566d2e0dbd5b96","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://morphllm.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/nanobot.png","mediaType":"image/png","sha256":"5ddd4b100b012b9f48f29e5f8e2d254ffb802f73afb34617f86005c2d1f343a6","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/nanogpt.png","mediaType":"image/png","sha256":"38cef0646e02d8b98da4577e2c83950cb77e4f12b217b83d0b543d2dae37a4b5","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/nebius.svg","mediaType":"image/svg+xml","sha256":"fb190b4efb1d143442ef6c5eb0258801fc27b7316e88216c59a0f4b58b8b0281","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/nebius/default.svg","integrity":"sha256:fb190b4efb1d143442ef6c5eb0258801fc27b7316e88216c59a0f4b58b8b0281","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://nebius.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/nlpcloud.svg","mediaType":"image/svg+xml","sha256":"ace1d772d2a7d6fa10ecf76f45af550c9c9a6f96ce1783f398472ba46fe79f85","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/nomic.svg","mediaType":"image/svg+xml","sha256":"73cc513c9d5f460ec8f00a097f3fabaa54c0e1f824944412e9a4461c0620fba6","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository history shows a shared generic initial-badge pattern, but no immutable authorship or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/novita.svg","mediaType":"image/svg+xml","sha256":"ab99ef3113a12e64ef8b44eda132094017359ede5bdb33e830ed855b69520612","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/novita/default.svg","integrity":"sha256:ab99ef3113a12e64ef8b44eda132094017359ede5bdb33e830ed855b69520612","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://novita.ai/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/nscale.png","mediaType":"image/png","sha256":"6a8b22c12696fe55048793b251921c7c19673cc17dce76cad27bd4f11085adf8","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/nube.svg","mediaType":"image/svg+xml","sha256":"e5eff793cbc8a917e499c18365979f001010b229dd53b0802d5f29d9dfb963e1","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/nvidia.svg","mediaType":"image/svg+xml","sha256":"c0ba24515aa21f07119e15914abbde64dd17b42fd95518a15df208a615c3810e","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/nvidia/default.svg","integrity":"sha256:c0ba24515aa21f07119e15914abbde64dd17b42fd95518a15df208a615c3810e","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://www.nvidia.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/oai-cc.png","mediaType":"image/png","sha256":"ad7f82ac767381117a6eee9102184611fd9b930c8f5e1ed60381872482137eb9","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/oai-r.png","mediaType":"image/png","sha256":"6d8111fb61596d0d445f869d40f82eb115ee19c5d6e8c56ba88ce40a96ef3398","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/oauth.svg","mediaType":"image/svg+xml","sha256":"661c74f5381a85ebc04edb7bae8fffbf1610a248d4389b8c2745191065fa6c88","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/oci.svg","mediaType":"image/svg+xml","sha256":"c4886bba91144a634b646343911da7801524e1c7118b1542172483bddeaa83ad","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/ollama.svg","mediaType":"image/svg+xml","sha256":"04d95aa0e2cccdd24f8f6c9c58ac2f312464d0f8280a6744fdd48b28b15aebab","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/ollama/default.svg","integrity":"sha256:04d95aa0e2cccdd24f8f6c9c58ac2f312464d0f8280a6744fdd48b28b15aebab","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://www.ollama.com/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/omp.png","mediaType":"image/png","sha256":"1e67ede0be3373c6fdfe32be6d0704692db368010fa05d8cf5de8064071c4977","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/openadapter.svg","mediaType":"image/svg+xml","sha256":"dd55136c854f36a2ffe93062e5296ac77f3d4b753f7106cf832212f87f81c408","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/openai.svg","mediaType":"image/svg+xml","sha256":"db81a8225166f02f773304ba4d8f0141343da5f43870d8b41f10bf6bc59840c8","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/openai/default.svg","integrity":"sha256:db81a8225166f02f773304ba4d8f0141343da5f43870d8b41f10bf6bc59840c8","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://openai.com/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/openclaw.svg","mediaType":"image/svg+xml","sha256":"4123c0c75dda5b28e3e0d38075514085bf546178a620776344813c08fa41277c","provenanceStatus":"proven","source":{"kind":"npm","url":"https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz","ref":"5.10.0","path":"package/es/OpenClaw/components/Color.js","integrity":"sha512-CIpjkISCLRK7haDtSugGFd0o3odaJts8ewJOkUiEFtns3xvsqbl8i24eowBnjw+yMDQVQyNONlhqTD58YC6Ljg==","packageShasum":"add1baced073a60157d39c7820b8d5c1928a1054","match":"svg-path-data","matchDetail":"All 6/6 local SVG path d values match the pinned Color component."},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"@lobehub/icons@5.10.0 package/LICENSE","evidence":"https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz#package/LICENSE","independentlyVerified":true,"scope":"Pinned package distribution only; no trademark clearance."},"trademarkClearance":null,"evidenceNote":"All local SVG path data matches the pinned LobeHub Color component. This proves source provenance only, not trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/opencode-dark.svg","mediaType":"image/svg+xml","sha256":"4e84f87aa7bc2a5f8a72eeb08d3d4f1836b422189256d0bd5e7bfabc830d7ed0","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/opencode-light.svg","mediaType":"image/svg+xml","sha256":"5eeb3a5f14dbbccc03111296ecfd3cd05cc98844150d4f9d77ba921847953380","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/opencode.svg","mediaType":"image/svg+xml","sha256":"231e3f47f332a0ace170bae2605488ac016cc85e584d89b1f9f9f0dff47170ee","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/openference.svg","mediaType":"image/svg+xml","sha256":"c70cc7e1a0e2e14b5e42d53a2b4432218e223d520fcfdf7da592352283a91851","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/openrouter.svg","mediaType":"image/svg+xml","sha256":"d05021526e72fddf3426eabc066924aca83da0cd66a699a3de3bac58ed2fe0a2","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/openrouter/default.svg","integrity":"sha256:d05021526e72fddf3426eabc066924aca83da0cd66a699a3de3bac58ed2fe0a2","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://openrouter.ai/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/openvecta.svg","mediaType":"image/svg+xml","sha256":"97f49e7096ef502e8c498011989e467294a5b997707beea4455e0cc1160cb89c","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/orcarouter.svg","mediaType":"image/svg+xml","sha256":"06b36d030492901cada4c1e757b613c3ada340727d74f601fe407cfad7b529cf","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/ovhcloud.svg","mediaType":"image/svg+xml","sha256":"ab65efec83d5106fa649e1f3ec5db98beb20ec6708158362844c912c34e1d31a","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/ovhcloud/default.svg","integrity":"sha256:ab65efec83d5106fa649e1f3ec5db98beb20ec6708158362844c912c34e1d31a","match":"byte-exact"},"upstreamLicenseClaim":{"value":"brand-use","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://ovhcloud.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/perplexity.svg","mediaType":"image/svg+xml","sha256":"c7a4c847b6b3c0e8a10868d35b0b4a89727c03f8db3394060dcdb33c4b21c83b","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/phind.svg","mediaType":"image/svg+xml","sha256":"d22bfa86c189016aad4a8f2fa115549f33af825b5be91c31f5566c672009cf01","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository history shows a shared generic initial-badge pattern, but no immutable authorship or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/piapi.png","mediaType":"image/png","sha256":"6f3d64217aa149098db84d4a5c5608918781cf864947275aae51e3f5ab6ccfca","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/picoclaw.jpg","mediaType":"image/jpeg","sha256":"f2274cc93345c8218f574f6c51a26f624a56ecc2b6f909d5b7e0c3d7d4f49c92","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/picoclaw.svg","mediaType":"image/svg+xml","sha256":"a4efdede50ec1d327f83bc61d2e811ac9b245f1b8c82aff45fd3fac299bc6a57","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/picoclaw/default.svg","integrity":"sha256:a4efdede50ec1d327f83bc61d2e811ac9b245f1b8c82aff45fd3fac299bc6a57","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://picoclaw.io"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/pioneer.svg","mediaType":"image/svg+xml","sha256":"d30adb4ffa16988af01f49682ca0c849dca173efa8d894053e3628449247d44a","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/playht.svg","mediaType":"image/svg+xml","sha256":"ec4a7bf38b10c1ea045237f2c7b01f3781a7c9c00ac2d79d6a7b3ad5841485fe","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/poe.svg","mediaType":"image/svg+xml","sha256":"5e50e10d6ef231593fc406b0d78bea24f8266e2555cab47a8bbbb88e42d31797","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/poe/default.svg","integrity":"sha256:5e50e10d6ef231593fc406b0d78bea24f8266e2555cab47a8bbbb88e42d31797","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://poe.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/pollinations.svg","mediaType":"image/svg+xml","sha256":"49011d5b329349754c7722571ae0d9d384ea32331e22c0fb6a9a2d1a22862346","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/pollinations/default.svg","integrity":"sha256:49011d5b329349754c7722571ae0d9d384ea32331e22c0fb6a9a2d1a22862346","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://pollinations.ai"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/poolside.svg","mediaType":"image/svg+xml","sha256":"1bf4dfc87c887b8abc93eb7df5faa0588139a89052c7d3fa25abcf8bd259a223","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository history shows a shared generic initial-badge pattern, but no immutable authorship or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/predibase.png","mediaType":"image/png","sha256":"70c8d3b98500d2f3a169771cfd53e2cc65b2b7152fa11cae342c8d3fe1d4c8e4","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/publicai.svg","mediaType":"image/svg+xml","sha256":"6553a9acf2e8cbe8cc2253ddd589d8132dc81c5301013a9ca94d2661f0d6e46f","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/qianfan.svg","mediaType":"image/svg+xml","sha256":"a6fb89080675ae00a4a240b7aa50dae31c80e67b24bfa2dc08f2c98277f2a0a7","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/qiniu.svg","mediaType":"image/svg+xml","sha256":"f92a36faea7b76b8e708f3866ccb315011f0f91dd486868546dfe8523199a728","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/qwen.svg","mediaType":"image/svg+xml","sha256":"1729febe65990585b1ba96c223143f108f709f722c1d354238fd470630b51f54","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/qwen/default.svg","integrity":"sha256:1729febe65990585b1ba96c223143f108f709f722c1d354238fd470630b51f54","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://chat.qwenlm.ai/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/qwencloud.svg","mediaType":"image/svg+xml","sha256":"84ae1a3822a67a9281c3f19221f046fb4fe7f8dcd5ec71bb2470503a8dcfa086","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/recraft.svg","mediaType":"image/svg+xml","sha256":"1fab4aeaf66fc3f9ffdc08bc2e13d9f99335e246e5be2877fae5801045ff4ce6","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/recraft/default.svg","integrity":"sha256:1fab4aeaf66fc3f9ffdc08bc2e13d9f99335e246e5be2877fae5801045ff4ce6","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://recraft.ai"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/reka.png","mediaType":"image/jpeg","sha256":"6881acff8cd7b2dc92bbe90066f549114e6d4066ffc4c43ac84cb69402834aca","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/replicate.svg","mediaType":"image/svg+xml","sha256":"3a1a39f81c20c507bb84b105d022f5c3af35c1f561005493b1c654bcf356f3a5","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/replicate/default.svg","integrity":"sha256:3a1a39f81c20c507bb84b105d022f5c3af35c1f561005493b1c654bcf356f3a5","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://replicate.com/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/requesty.svg","mediaType":"image/svg+xml","sha256":"edaf34203dd8c575b460435e01eabbc764c80724bfb5d9891420329949d7008e","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/roocode.svg","mediaType":"image/svg+xml","sha256":"6f3f1767bbe13ec049aa179689d66354fc2ec8c8ffb083eeab56b6730d3f92e4","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/roocode/default.svg","integrity":"sha256:6f3f1767bbe13ec049aa179689d66354fc2ec8c8ffb083eeab56b6730d3f92e4","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://roocode.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/runway.svg","mediaType":"image/svg+xml","sha256":"ef0fbd9493bef73b1db7d69910078fbc90024780e4e326d33107983ebd66a4e0","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/runway/default.svg","integrity":"sha256:ef0fbd9493bef73b1db7d69910078fbc90024780e4e326d33107983ebd66a4e0","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://runwayml.com/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/sambanova.svg","mediaType":"image/svg+xml","sha256":"1eae1179dbeb2a31edcabeca5f2c9d593bb1255aa8354e784be60a94dd850aa9","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/sambanova/default.svg","integrity":"sha256:1eae1179dbeb2a31edcabeca5f2c9d593bb1255aa8354e784be60a94dd850aa9","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://sambanova.ai"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/sap.svg","mediaType":"image/svg+xml","sha256":"99df1825ec8254f712794c8e980d844967427d6720855ebad02ec6803df04374","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/scaleway.svg","mediaType":"image/svg+xml","sha256":"4fc81081bd54878b20e05c9344f34d9e77df4a8f37844f4e29a7cfe99eaeea76","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/searchapi.svg","mediaType":"image/svg+xml","sha256":"124f551340b92a8493faeddce914d7034377ab1d0364c5b4285ecc940e80a2c1","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/searchapi/default.svg","integrity":"sha256:124f551340b92a8493faeddce914d7034377ab1d0364c5b4285ecc940e80a2c1","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://searchapi.io"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/searxng-search.svg","mediaType":"image/svg+xml","sha256":"7e40327a9ce25056fd73712b2ea0bd57490bbb86ce7330cacac893c13e7adbcf","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/sensenova.svg","mediaType":"image/svg+xml","sha256":"bd2e0f8e310ff6a5edcc56a85560221923262767ba76b660a193f45c40c123fa","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/serper-search.svg","mediaType":"image/svg+xml","sha256":"b417fbf30fe71bac4350b0e18d91bd0917c732257a74b50a0cc59b2984b9c0dd","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/snowflake.svg","mediaType":"image/svg+xml","sha256":"262b832658b821a8ff2eb0c536b5deb151dca0915f780f10161e3b2d219abe63","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/soniox.svg","mediaType":"image/svg+xml","sha256":"92b81993f7fd72b17b957d13e6b49a19d75f7668230a6cf9ef0d4975d6e825db","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/sparkdesk.svg","mediaType":"image/svg+xml","sha256":"e597fc689ea06a6a23166ff769fac8a6839535a9b626565913d87989c724b559","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository history shows a shared generic initial-badge pattern, but no immutable authorship or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/stepfun.svg","mediaType":"image/svg+xml","sha256":"f55afc0e6004c8854f76bd5bbcc0fce9fc0ed9316691d54fb02d088c24fab40d","provenanceStatus":"proven","source":{"kind":"npm","url":"https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz","ref":"5.10.0","path":"package/es/Stepfun/components/Color.js","integrity":"sha512-CIpjkISCLRK7haDtSugGFd0o3odaJts8ewJOkUiEFtns3xvsqbl8i24eowBnjw+yMDQVQyNONlhqTD58YC6Ljg==","packageShasum":"add1baced073a60157d39c7820b8d5c1928a1054","match":"svg-path-data","matchDetail":"The local SVG path d value matches the pinned Color component (1/1)."},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"@lobehub/icons@5.10.0 package/LICENSE","evidence":"https://registry.npmjs.org/@lobehub/icons/-/icons-5.10.0.tgz#package/LICENSE","independentlyVerified":true,"scope":"Pinned package distribution only; no trademark clearance."},"trademarkClearance":null,"evidenceNote":"All local SVG path data matches the pinned LobeHub Color component. This proves source provenance only, not trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/sumopod.svg","mediaType":"image/svg+xml","sha256":"a0a903dbb021049a6faa62c757d18abbb192d4a26a4352e459a9e462facee42f","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/suno.svg","mediaType":"image/svg+xml","sha256":"03bd7a6888d7ba010c616ae6402c222683d7f909eddb028241220f227ff6d1a6","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/suno/default.svg","integrity":"sha256:03bd7a6888d7ba010c616ae6402c222683d7f909eddb028241220f227ff6d1a6","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://suno.com/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/synthetic.svg","mediaType":"image/svg+xml","sha256":"c6db0e026416fdee7376185ce6cbeda05b1afdc74bdd2ee8f5d158767aa5ce4b","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/t3-web.svg","mediaType":"image/svg+xml","sha256":"776c95beab6f441754bac9911cc6669ffdf6631f76661a659ee69de2af053a06","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/tavily.svg","mediaType":"image/svg+xml","sha256":"80dddf9848f8761a2552c10ad0b60e4d11ad399f6ae014a8b43af6150456aa1a","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/tavily/default.svg","integrity":"sha256:80dddf9848f8761a2552c10ad0b60e4d11ad399f6ae014a8b43af6150456aa1a","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://tavily.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/tencent.svg","mediaType":"image/svg+xml","sha256":"7c370ad4b75e3f30d0fa7da71f90466a0ee95a887189479aa9df414079b50eb6","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/theoldllm.svg","mediaType":"image/svg+xml","sha256":"41214483e28c7464d44ade68c29d05ec9eb5f9413a7df8a30ed2e2ff6bb171c5","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/tokenrouter.svg","mediaType":"image/svg+xml","sha256":"a9613d5a485878613e50300a5d675c456fd551ca37c978522342a4d2d0313a21","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/topazlabs.svg","mediaType":"image/svg+xml","sha256":"93b23f19b6c9ef2f5edc88205318dbd908d8071435fc971cef5f05dd13b97450","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/topazlabs/default.svg","integrity":"sha256:93b23f19b6c9ef2f5edc88205318dbd908d8071435fc971cef5f05dd13b97450","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://topazlabs.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/trae.svg","mediaType":"image/svg+xml","sha256":"1445a2fa3fba86fe876175e23ddb0bc8dbfa889971628bc451d5d2f53f974703","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/trae/default.svg","integrity":"sha256:1445a2fa3fba86fe876175e23ddb0bc8dbfa889971628bc451d5d2f53f974703","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://trae.ai"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/udio.svg","mediaType":"image/svg+xml","sha256":"ae4b9af080f08bb1aedbe6f5b7fa2532c3a0b3e5de129b2dbcb795245ff05ee6","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/udio/default.svg","integrity":"sha256:ae4b9af080f08bb1aedbe6f5b7fa2532c3a0b3e5de129b2dbcb795245ff05ee6","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://udio.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/uncloseai.svg","mediaType":"image/svg+xml","sha256":"09de727ac4976b6bf737d7f6f02ea2d7919d8c4ea19228d80f5b872eabf65f98","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/unorouter.svg","mediaType":"image/svg+xml","sha256":"89024ca813164d736836addc83d5f313095ce2b27474d39c941236fc45ea9cae","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/upstage.svg","mediaType":"image/svg+xml","sha256":"14dc984f2f6d1dcb3481387438d5b4528f794aea8ac20f1a4442bb5d8f2dcedc","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/upstage/default.svg","integrity":"sha256:14dc984f2f6d1dcb3481387438d5b4528f794aea8ac20f1a4442bb5d8f2dcedc","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://upstage.ai"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/v0.svg","mediaType":"image/svg+xml","sha256":"e33ce9865356b381e2752a07a100d136ed80179645084eef185448be29c65a17","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/v0/default.svg","integrity":"sha256:e33ce9865356b381e2752a07a100d136ed80179645084eef185448be29c65a17","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://v0.dev/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/veoaifree-web.svg","mediaType":"image/svg+xml","sha256":"24a38f25e677b479907feccdd00d19476f2a0646c37f88b1dd5d68a109b58664","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/vercel.svg","mediaType":"image/svg+xml","sha256":"a9ae5ad4ea10c39122cc6b07927132f9c684dd2f1a7bef5337b0eb7364e139ae","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/vercel/default.svg","integrity":"sha256:a9ae5ad4ea10c39122cc6b07927132f9c684dd2f1a7bef5337b0eb7364e139ae","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://vercel.com/"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/vllm.svg","mediaType":"image/svg+xml","sha256":"918d594cfb73c0dd269b725cf6672f4863d10c39a443d58c68c0662ae6ae84b1","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/vllm/default.svg","integrity":"sha256:918d594cfb73c0dd269b725cf6672f4863d10c39a443d58c68c0662ae6ae84b1","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://github.com/vllm-project"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/volcengine.svg","mediaType":"image/svg+xml","sha256":"e519337670163eb3babc1fb5ce8abe24b8777f3180aeb135870c40672d757a58","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/volcengine/default.svg","integrity":"sha256:e519337670163eb3babc1fb5ce8abe24b8777f3180aeb135870c40672d757a58","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://volcengine.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/voyage.svg","mediaType":"image/svg+xml","sha256":"f20ac1f2bef06f52e34bb63dbb215163641d4703fe347337250d03b19bcecb2c","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/voyage/default.svg","integrity":"sha256:f20ac1f2bef06f52e34bb63dbb215163641d4703fe347337250d03b19bcecb2c","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://voyageai.com"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/wafer.svg","mediaType":"image/svg+xml","sha256":"6b00a03f1e8781e94effd6ac93f812a2c2feb386bf87793a2483f72aaf297058","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/wandb.svg","mediaType":"image/svg+xml","sha256":"bbb87752bb3b16555841198b6fa77a9d934be317c0109280b16739d30abc98b1","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/windsurf.svg","mediaType":"image/svg+xml","sha256":"e961c08c7e84e90d74e67830cc4812298af404f2e205a9b120a16bff80b1d617","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/windsurf/default.svg","integrity":"sha256:e961c08c7e84e90d74e67830cc4812298af404f2e205a9b120a16bff80b1d617","match":"byte-exact"},"upstreamLicenseClaim":{"value":"CC0-1.0","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://windsurf.com/editor"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/x5lab.svg","mediaType":"image/svg+xml","sha256":"52f9eb439192a563dd0b8f5545e851b5bcd6b661d64538997ca338616d0f2716","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/xai.svg","mediaType":"image/svg+xml","sha256":"823bbbf2c6781192aa849f69dbaf57c8caffa21d39e79992c473dacaad2b09f5","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/xai/default.svg","integrity":"sha256:823bbbf2c6781192aa849f69dbaf57c8caffa21d39e79992c473dacaad2b09f5","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://x.ai"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/xinference.svg","mediaType":"image/svg+xml","sha256":"e0caa389b4acd614f4f6a809fddf55d96563936fd47c12d6cb6f8e5ff335aeb9","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/yi.svg","mediaType":"image/svg+xml","sha256":"d78b1ce0eeb7a7d1a6132785dfa0218be48d6d1ccd3751ca3f9240a2e3b38756","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6317 and the asset structure indicate a likely source family, but no immutable upstream source or hash was proven."}
|
||||
{"recordType":"asset","path":"public/providers/youcom-search.svg","mediaType":"image/svg+xml","sha256":"0657bd314df49bcca7d0e2446099a517272c0166db84b45c9994a9b62638d742","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/yuanbao-web.svg","mediaType":"image/svg+xml","sha256":"21b658d85bcda8344b484db75cf10ec1bdbbc60ee428071b7a747ed80b9780f8","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/zed-hosted.svg","mediaType":"image/svg+xml","sha256":"52435227cd02ff2152ae2e69e5737cb7f5c87d9169c16591c6f50040beb8d197","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/zenmux-free.svg","mediaType":"image/svg+xml","sha256":"13cb431c91a018d16ad384de205a2b2aff7d786306f2401ea88f3caac0ee4d9e","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/zenmux.svg","mediaType":"image/svg+xml","sha256":"e16974c1ef2177b93e5820967f07542f433b56e46f28447a62e2a00bee91f597","provenanceStatus":"probable","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"Repository PR #6926 describes this family as letter-in-circle placeholders, but original authorship and license were not independently proven."}
|
||||
{"recordType":"asset","path":"public/providers/zeroclaw.png","mediaType":"image/png","sha256":"247a7d9519a4e97ffa1c8691ce071bfbd9b85dc9d9158b1f1b3810a5dc82ba0f","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"asset","path":"public/providers/zhipu.svg","mediaType":"image/svg+xml","sha256":"4e7400476df64ad7c41a19828bd1dc8250cfab014a97e7cc89a1536384c48e31","provenanceStatus":"proven","source":{"kind":"git","url":"https://github.com/GLINCKER/thesvg","ref":"7870bc1c5f657d9accbb7f96cc457b8dd3363ee8","path":"public/icons/zhipu/default.svg","integrity":"sha256:4e7400476df64ad7c41a19828bd1dc8250cfab014a97e7cc89a1536384c48e31","match":"byte-exact"},"upstreamLicenseClaim":{"value":"MIT","assertedBy":"theSVG pinned registry","evidence":"https://github.com/GLINCKER/thesvg/blob/7870bc1c5f657d9accbb7f96cc457b8dd3363ee8/src/data/icons.json","independentlyVerified":false,"scope":"Upstream SVG copyright claim only; no trademark clearance.","upstreamUrl":"https://zhipuai.cn"},"trademarkClearance":null,"evidenceNote":"Local bytes are byte-identical to the pinned theSVG source. This proves source provenance only, not copyright or trademark clearance."}
|
||||
{"recordType":"asset","path":"public/providers/zoocode.png","mediaType":"image/png","sha256":"a90d9ff41a3436e35069dc0c3d3c8f1ce27a2df2fd7fea1692913021f83292a5","provenanceStatus":"unresolved","source":null,"upstreamLicenseClaim":null,"trademarkClearance":null,"evidenceNote":"No immutable upstream source or license evidence is recorded."}
|
||||
{"recordType":"contentAlias","sha256":"2530f80fdf2144b62f96953a81c6988c9c31a6cc7c9de72e069079485817cbe7","canonicalPath":"public/providers/brave.svg","aliases":["public/providers/brave-search.svg"]}
|
||||
{"recordType":"contentAlias","sha256":"a3101f3047a119aa11825ad9369510f0c472428c8c52d420e31bc62db44a8364","canonicalPath":"public/providers/claude.svg","aliases":["public/providers/claude-web.svg"]}
|
||||
{"recordType":"contentAlias","sha256":"4d48a1405c68b00121fa7100e080025fa3e9e090c59055b56e4ad0aee1a7de7f","canonicalPath":"public/providers/freebuff.svg","aliases":["public/providers/freebuff-dark.svg","public/providers/freebuff-light.svg"]}
|
||||
{"recordType":"contentAlias","sha256":"67413dbdc9be21ca995ad318234e5463af1262668b4a203da72388e22ef3ac40","canonicalPath":"public/providers/gitlab.svg","aliases":["public/providers/gitlab-duo.svg"]}
|
||||
{"recordType":"contentAlias","sha256":"0bf05e2f9c1355e8a1d020c07f433ea725f1270607f04b83c398d44914ebe422","canonicalPath":"public/providers/kilocode.svg","aliases":["public/providers/kilo-gateway.svg"]}
|
||||
@@ -188,14 +188,15 @@
|
||||
"dedicatedGate": true
|
||||
},
|
||||
"bundleSize": {
|
||||
"value": 8461,
|
||||
"value": 8653,
|
||||
"direction": "down",
|
||||
"dedicatedGate": true,
|
||||
"_rebaseline_2026_07_07_v3846_release_close": "5601->6534 (+933). v3.8.46 release close: gzip of the 4 bin/*.mjs entrypoints (size-limit + @size-limit/file) grew from this cycle's feature/fix merges pulled transitively into the CLI entrypoints (new providers, combo pipeline strategy #6396, effort/thinking standardization #6241, catalog cache-invalidation #6408). Measured 6534 locally via `check:bundle-size --ratchet` (deterministic gzip, matches CI). Legitimate cycle growth; shrink is separate debt.",
|
||||
"_rebaseline_2026_07_19_7808_codeql_alias_resolver_hook": "6534->6762 (+228). PR #7808 (CodeQL js/incomplete-url-substring-sanitization fix): the ESM loader hook source moved out of the inline `HOOK_SOURCE` template literal in bin/aliasResolver.mjs into a real file bin/aliasResolverHook.mjs, loaded via pathToFileURL() instead of a dynamically-built `data:text/javascript,...` URL. The new file is now counted by size-limit as a 5th bin/*.mjs entrypoint. Net +228 = the hook's gzip size (previously hidden inside aliasResolver.mjs because the template literal was compressed away). Security-driven; no shrink opportunity.",
|
||||
"_rebaseline_2026_07_28_v3849_release_preflight": "6762 -> 7666 (+904). Fechamento do ciclo v3.8.49: gzip dos entrypoints bin/*.mjs (size-limit + @size-limit/file) cresceu com o que os merges do ciclo puxam transitivamente para o CLI (novos provedores — 271->290, seletor de protocolo por conexão #8861, catálogos de busca #8814, resiliência). Crescimento legítimo de ciclo, medido localmente com `npm run check:bundle-size` = 7666 (gzip determinístico, bate com o CI). Encolher é dívida separada.",
|
||||
"_rebaseline_2026_08_09_v3850_release_close": "7666 -> 8045 (+379 gzip bytes, +4.9%). Release v3.8.50 close reconciliation measured twice with the real size-limit + @size-limit/file path on tip e0ce95c592. Per-entry measurements remain below their absolute budgets: omniroute.mjs 4380/15000, mcp-server.mjs 1195/5000, nodeRuntimeSupport.mjs 887/8000, reset-password.mjs 1583/6000. The growth accumulated through legitimate CLI/runtime work in this cycle, including global-install ESM alias resolution, Termux cache preparation, and MCP stdio startup hardening; no entrypoint is near its absolute ceiling. The direction:down ratchet stays blocking from this exact measured tip.",
|
||||
"_rebaseline_2026_08_24_ci_green_gates_f95b03d7": "8045 -> 8461 (+416 gzip bytes, +5.2%). CI run 32786966560 (release PR #8875, tip f95b03d7) measured bundleSize=8461 via check:bundle-size --ratchet, above the 8045 baseline left at the v3.8.50 close. The growth comes from the post-freeze back-merge cycle landing in the CLI entrypoints (Synthetic + Kilo Gateway providers, kilo-gateway routing surface). Re-baseline per the gate's own instruction (legitimate cycle growth); shrinking the entrypoints remains separate debt; direction:down ratchet stays blocking from this measured tip."
|
||||
"_rebaseline_2026_08_24_ci_green_gates_f95b03d7": "8045 -> 8461 (+416 gzip bytes, +5.2%). CI run 32786966560 (release PR #8875, tip f95b03d7) measured bundleSize=8461 via check:bundle-size --ratchet, above the 8045 baseline left at the v3.8.50 close. The growth comes from the post-freeze back-merge cycle landing in the CLI entrypoints (Synthetic + Kilo Gateway providers, kilo-gateway routing surface). Re-baseline per the gate's own instruction (legitimate cycle growth); shrinking the entrypoints remains separate debt; direction:down ratchet stays blocking from this measured tip.",
|
||||
"_rebaseline_2026_08_27_v3851_volatile_env_warning_11437": "8461 -> 8653 (+192 gzip bytes, +2.3%). Exact paired size-limit measurements on the VPS compared f95b03d709 with release/v3.8.51: only bin/omniroute.mjs changed, 4700 -> 4892; the other three entries remained 1195/983/1583. The growth originates in 943b9aaa84 (#11437), which warns users before a package-local .env is lost on the next global install. The CLI entry remains 4892/15000 bytes (32.6% of its absolute budget). Legitimate bug-fix growth; shrinking stays separate debt and direction:down remains blocking from this measured tip."
|
||||
},
|
||||
"openapiBreaking": {
|
||||
"value": 4,
|
||||
|
||||
@@ -25,6 +25,48 @@
|
||||
"tests/unit/providers-page-utils.test.ts": "v3.8.47 #6675: remoção dos providers obsoletos glhf/kluster/cablyai/inclusionai — os 2 asserts que citavam providers removidos do catálogo foram removidos junto (net 276→274). Superfície aposentada, não mascaramento. Verificado legítimo. Prune após v3.8.47 mergear para main.",
|
||||
"_deletedWithReplacement": {
|
||||
"_comment": "Deleções de arquivo de teste com SUBSTITUTO verificado (o gate exige que o replacement exista no HEAD e seja arquivo de teste). Uso restrito ao caso 'reescrito em outro path sem rename detectável pelo -M do git'. Cada entrada precisa de reason com PR ref e passa por revisão humana no release PR. Prune após o release mergear para main.",
|
||||
"tests/unit/gemini-web-image-account-fallback.test.ts": {
|
||||
"replacement": "tests/unit/gemini-web-image-retirement.test.ts",
|
||||
"reason": "v3.8.50 #11708: a capacidade Gemini Web Images foi aposentada em HOLD de procedencia/licenca, sem aposentar Gemini Web chat/auth/tools. O teste positivo de fallback da integracao removida foi substituido pelo guard negativo no catalogo/handler e pelo controle que preserva o executor/registry de chat e provedores legitimos de Nano Banana. Superficie extinta, nao mascaramento."
|
||||
},
|
||||
"tests/unit/gemini-web-image-generation-10466.test.ts": {
|
||||
"replacement": "tests/unit/gemini-web-image-retirement.test.ts",
|
||||
"reason": "v3.8.50 #11708: parser, image-mode, handler e modelo gemini-web/nano-banana-web foram aposentados em HOLD de procedencia/licenca. O replacement prova a ausencia no catalogo e request path, a remocao dos artefatos dedicados, a neutralizacao da antiga extensao image-mode e a preservacao de Gemini Web chat e imagens Gemini/Nano Banana em provedores legitimos. Superficie extinta, nao mascaramento."
|
||||
},
|
||||
"tests/unit/felo-web-executor.test.ts": {
|
||||
"replacement": "tests/unit/felo-web-retirement.test.ts",
|
||||
"reason": "v3.8.50 #11698: the Felo Web integration remains on a GPL provenance/licensing HOLD, so its executor and registry no longer ship. The replacement proves runtime/catalog/source absence; generic no-auth and strict-zero-cost behavior remains covered with independent fixtures."
|
||||
},
|
||||
"tests/unit/executor-hailuo-web.test.ts": {
|
||||
"replacement": "tests/unit/gpl-derived-provider-removals.test.ts",
|
||||
"sourceRemoved": [
|
||||
"open-sse/executors/hailuo-web.ts",
|
||||
"open-sse/config/providers/registry/minimax/web/index.ts"
|
||||
],
|
||||
"reason": "v3.8.50 provenance remediation: the GPL-derived Hailuo Web executor and registry were removed. The replacement proves runtime/source absence while preserving both official MiniMax API providers."
|
||||
},
|
||||
"tests/unit/raycast-auth.test.ts": {
|
||||
"replacement": "tests/unit/gpl-derived-provider-removals.test.ts",
|
||||
"sourceRemoved": [
|
||||
"open-sse/services/raycast.ts",
|
||||
"src/lib/oauth/providers/raycast.ts",
|
||||
"src/lib/oauth/services/raycast.ts"
|
||||
],
|
||||
"reason": "v3.8.50 provenance remediation: the GPL-derived Raycast protocol and OAuth service were removed. The replacement proves raycast/rc runtime and source absence while preserving the independent GitHub provider."
|
||||
},
|
||||
"tests/unit/raycast-local-extract.test.ts": {
|
||||
"replacement": "tests/unit/gpl-derived-provider-removals.test.ts",
|
||||
"sourceRemoved": ["src/lib/oauth/services/raycastLocal.ts"],
|
||||
"reason": "v3.8.50 provenance remediation: the retired Raycast integration no longer ships local credential extraction. The replacement checks exact source closure and the negative runtime contract."
|
||||
},
|
||||
"tests/unit/web-cookie-hailuo-web-11000.test.ts": {
|
||||
"replacement": "tests/unit/gpl-derived-provider-removals.test.ts",
|
||||
"sourceRemoved": [
|
||||
"open-sse/executors/hailuo-web.ts",
|
||||
"open-sse/config/providers/registry/minimax/web/index.ts"
|
||||
],
|
||||
"reason": "v3.8.50 provenance remediation: the Hailuo Web cookie transport was removed with its GPL-derived executor. The replacement proves absence while preserving MiniMax and MiniMax China."
|
||||
},
|
||||
"open-sse/services/combo/__tests__/targetExhaustion.test.ts": {
|
||||
"replacement": "tests/unit/combo/combo-target-exhaustion.test.ts",
|
||||
"reason": "v3.8.44 #5976: os testes de exaustão eram flake-prone (delays Math.random, timeouts 30s, >3min no CI) e foram REESCRITOS como unit determinístico com MAIS cobertura (21 casos/52 asserts vs 13 casos/37 asserts). Documentado no commit 5fe225850. Revisão humana: apresentado ao operador no STOP #1 do release v3.8.44."
|
||||
@@ -80,6 +122,18 @@
|
||||
"tests/unit/gemini-3-5-flash-thinking.test.ts": {
|
||||
"replacement": "tests/unit/model-capabilities-registry.test.ts",
|
||||
"reason": "v3.8.50 back-merge f95b03d7: the provider-neutral Gemini 3.5 Flash tier catalog was RETIRED (MODEL_SPECS entries removed; the thinking tiers now live under antigravity/gemini-3.7-flash-*), so the deleted file's thinking-capable/routing-policy fixtures pinned a retired surface and red-fail against HEAD. The replacement guards the retirement itself (retired ids have no provider-neutral specs) plus resolvable capability floors for the surviving gemini-3-flash-agent id. Verified legitimate, not masking."
|
||||
},
|
||||
"tests/unit/edgetts-provider.test.ts": {
|
||||
"replacement": "tests/unit/edgetts-retirement.test.ts",
|
||||
"reason": "v3.8.50 #11711: the EdgeTTS executor and its positive protocol tests were retired together after a provenance/licensing HOLD. The replacement pins the new public contract across the speech registry, handler and UI-derived catalog while preserving gTTS, AWS Polly and ElevenLabs. Feature retirement, not test masking; prune after v3.8.50 merges to main."
|
||||
},
|
||||
"tests/unit/microsoft-designer-web-6672.test.ts": {
|
||||
"replacement": "tests/unit/microsoft-designer-web-retirement.test.ts",
|
||||
"reason": "v3.8.51 #11720: the Microsoft Designer Web runtime, handler, executor, catalogs and public credential were retired. The replacement pins the fail-closed runtime contract, exact-ID matching, source removal and preservation of unrelated image providers. Feature removal, not masking."
|
||||
},
|
||||
"tests/unit/designer-web-empty-response-502.test.ts": {
|
||||
"replacement": "tests/unit/microsoft-designer-web-retirement.test.ts",
|
||||
"reason": "v3.8.51 #11720: the deleted test exercised polling behavior in the removed Designer handler. The replacement verifies that the handler stays absent and both retired IDs fail closed while OpenAI DALL-E and other media providers remain available. Feature removal, not masking."
|
||||
}
|
||||
},
|
||||
"tests/unit/catalog-updates-v3x.test.ts": "v3.8.45 #6248: fix(providers) remove deprecated MiMo V2 entries — os 5 asserts removidos pinavam specs de modelos mimo-v2-* que deixaram de existir no catálogo (54→49). Asserts seguem a remoção dos modelos, não enfraquecimento. Verificado legítimo. Prune após v3.8.45 mergear para main.",
|
||||
@@ -111,7 +165,6 @@
|
||||
"tests/unit/translator-openai-to-kiro.test.ts": "v3.8.49 #8565: auto-kiro passou a ser REJEITADO com erro (KIRO_REMOVED_AUTO_ALIAS_MESSAGE, \"not a real Kiro upstream model\") em vez de mapeado silenciosamente para \"auto\"; o teste do comportamento antigo foi removido porque hoje ele asseriria o comportamento errado. A rejeição está coberta em kiro-model-aliases.test.ts (assert.throws /not a real Kiro/) e kiro-available-models.test.ts. Net 119→118. Verificado legítimo. Prune após v3.8.49 mergear para main.",
|
||||
"tests/unit/usage-providers.test.ts": "v3.8.49 #7866: o case \"qwen\" saiu de getUsageForProvider (não há mais case \"qwen\" no switch de open-sse/services/usage.ts); o teste cobria esse ramo extinto (net 20→19). Verificado legítimo. Prune após v3.8.49 mergear para main.",
|
||||
"tests/unit/usage-service-hardening.test.ts": "v3.8.49 #7866/#8565/#8013: qwen removido (−3 asserts); o Kimi/Kiro builder-id (uso profileless) passou a ter SUCESSO real em vez de erro de ARN — supportsProfilelessKiroUsage(\"builder-id\") retorna true —, trocando 1 assert de regex de erro por 3 asserts de valor; e os ids de bucket de quota do Antigravity foram atualizados para o catálogo atual. Rodado no HEAD: 23/23 passam. Net 210→209. Verificado legítimo. Prune após v3.8.49 mergear para main.",
|
||||
"tests/unit/virtual-auto-combo.test.ts": "v3.8.49 #7928/#8183: o pooling de contas passou a agrupar conexões web-session do mesmo provider numa entrada lógica com allowedConnectionIds (campo confirmado em open-sse/services/autoCombo/virtualFactory.ts), e o pool no-auth virou uma allowlist fixa (AUTO_COMBO_NOAUTH_ALLOWLIST = opencode, felo-web) — os testes antigos esperavam duplicatas e a inclusão de duckduckgo-web/theoldllm/chipotle, que hoje são corretamente excluídos. Guard dedicado em noauth-autocombo-allowlist.test.ts. Rodado no HEAD: 10/10 passam. Net 39→31. Verificado legítimo. Prune após v3.8.49 mergear para main.",
|
||||
"open-sse/services/__tests__/tierResolver.test.ts": "v3.8.49 #7866: refactor(qwen) remove o provider OAuth legado — o teste \"classifies Qwen as free\" e a entrada de qwen na lista do batch saíram junto com o provider, e os índices do batch desceram de 10 para 9 elementos (net 61→59). Superfície extinta, não enfraquecimento. Verificado legítimo. Prune após v3.8.49 mergear para main.",
|
||||
"tests/unit/plugins-welcome-banner-e2e.test.ts": "v3.8.50 #9126 (commit 8fac6bcd48): o teste único 'BUILTIN_EVENTS has all 14 events' (13 asserts .ok/.equal) foi reestruturado em 3 testes mais específicos — 'contains only emitted/public events' (assert.deepEqual da lista completa), 'does not advertise dead events' (7 asserts .equal(false) para eventos sem emissor real: onModelSelect/onComboResolve/onRateLimit/onQuotaExhaust/onProviderError/onStreamStart/onStreamEnd) e 'lifecycle events remain represented' (4 asserts .ok). Contrato mais forte (agora também nega presença dos eventos mortos), não mais fraco — a contagem líquida cai (73→61) porque o assert.deepEqual único substitui múltiplos assert.ok redundantes com a mesma cobertura. Asserts restruturados, não removidos sem substituição. Verificado legítimo.",
|
||||
"tests/unit/web-tools-translation-2820.test.ts": "v3.8.50 #9343 (commit d969555417): fix(security) exige envelope <tool> explicito — JSON puro NAO deve mais ser promovido a tool_calls. Os 5 testes foram REESCRITOS para o contrato oposto (antes: 'promove e valida name/arguments'; agora: 'toolCalls === null e content preservado'), o que naturalmente usa menos asserts: verificar a NAO-promocao custa 2 asserts, verificar o objeto promovido custava 4. Contrato mais restritivo, nao mais fraco (39->35). Verificado legitimo — a inversao esta explicita nos proprios nomes dos testes ('does NOT promote ... (#9343)').",
|
||||
|
||||
@@ -27,7 +27,7 @@ Core capabilities:
|
||||
- Embedding generation via `/v1/embeddings` (6 providers, 9 models)
|
||||
- Image generation via `/v1/images/generations` (10+ providers, 20+ models)
|
||||
- Audio transcription via `/v1/audio/transcriptions` (7 providers)
|
||||
- Text-to-speech via `/v1/audio/speech` (10 providers)
|
||||
- Text-to-speech via `/v1/audio/speech` (24 built-in providers)
|
||||
- Video generation via `/v1/videos/generations` (ComfyUI + SD WebUI)
|
||||
- Music generation via `/v1/music/generations` (ComfyUI)
|
||||
- Web search via `/v1/search` (5 providers)
|
||||
@@ -324,7 +324,7 @@ Domain layer modules:
|
||||
OAuth provider modules (22 individual files under `src/lib/oauth/providers/`):
|
||||
|
||||
- Registry index: `src/lib/oauth/providers/index.ts`
|
||||
- Individual providers: `agy.ts`, `antigravity.ts`, `claude.ts`, `cline.ts`, `codebuddy-cn.ts`, `codex.ts`, `cursor.ts`, `devin-desktop.ts`, `ghe-copilot.ts`, `github.ts`, `gitlab-duo.ts`, `grok-cli-oauth.ts`, `grok-cli.ts`, `kilocode.ts`, `kimi-coding.ts`, `kiro.ts`, `qoder.ts`, `raycast.ts`, `trae.ts`, `xai-oauth.ts`, `zed-hosted.ts`, `zed.ts`
|
||||
- Individual providers: `agy.ts`, `antigravity.ts`, `claude.ts`, `cline.ts`, `codebuddy-cn.ts`, `codex.ts`, `cursor.ts`, `devin-desktop.ts`, `ghe-copilot.ts`, `github.ts`, `gitlab-duo.ts`, `grok-cli-oauth.ts`, `grok-cli.ts`, `kilocode.ts`, `kimi-coding.ts`, `kiro.ts`, `openference.ts`, `qoder.ts`, `trae.ts`, `xai-oauth.ts`, `zed-hosted.ts`, `zed.ts`
|
||||
- Thin wrapper: `src/lib/oauth/providers.ts` — re-exports from individual modules
|
||||
|
||||
## 5) Embedded Services (v3.8.4)
|
||||
@@ -980,7 +980,7 @@ All other providers (including custom compatible nodes) use the `DefaultExecutor
|
||||
| KIE | openai | API Key | ✅ | ✅ | ❌ | ❌ |
|
||||
| Devin Desktop | openai | Imported API key | ✅ (Connect→SSE) | ✅ | ❌ | ⚠️ Per request |
|
||||
| GitLab Duo | openai | OAuth (GitLab) | ✅ | ✅ | ✅ | ❌ |
|
||||
| Devin CLI | openai | Local CLI login | ✅ | ✅ | ❌ | ✅ Task API |
|
||||
| Devin CLI | openai | Local CLI login | ✅ | ✅ | ❌ | ✅ Task API |
|
||||
| Codex Cloud | openai-responses | OAuth | ✅ | ❌ | ✅ | ✅ Rate limits |
|
||||
| Jules | openai | OAuth | ✅ | ✅ | ✅ | ✅ Task API |
|
||||
| AgentRouter | openai | API Key | ✅ | ✅ | ❌ | ❌ |
|
||||
|
||||
@@ -292,7 +292,7 @@ table groups the actual directories and notable top-level files.
|
||||
| `jobs/` | Background jobs (`autoUpdate.ts`, …) |
|
||||
| `memory/` | Persistent memory: `store.ts`, `cache.ts`, `retrieval.ts`, `summarization.ts`, `extraction.ts`, `injection.ts`, `qdrant.ts`, `settings.ts`, `verify.ts`, `schemas.ts`, `types.ts` |
|
||||
| `monitoring/` | `observability.ts` |
|
||||
| `oauth/` | OAuth/import provider modules (22): `agy`, `antigravity`, `claude`, `cline`, `codebuddy-cn`, `codex`, `cursor`, `devin-desktop`, `ghe-copilot`, `github`, `gitlab-duo`, `grok-cli-oauth`, `grok-cli`, `kilocode`, `kimi-coding`, `kiro`, `qoder`, `raycast`, `trae`, `xai-oauth`, `zed-hosted`, `zed`, plus `services/`, `utils/`, and `constants/oauth.ts` |
|
||||
| `oauth/` | OAuth/import provider modules (22): `agy`, `antigravity`, `claude`, `cline`, `codebuddy-cn`, `codex`, `cursor`, `devin-desktop`, `ghe-copilot`, `github`, `gitlab-duo`, `grok-cli-oauth`, `grok-cli`, `kilocode`, `kimi-coding`, `kiro`, `openference`, `qoder`, `trae`, `xai-oauth`, `zed-hosted`, `zed`, plus `services/`, `utils/`, and `constants/oauth.ts` |
|
||||
| `plugins/` | Plugin loader (`index.ts`) |
|
||||
| `promptCache/` | `prefixAnalyzer.ts`, `index.ts` |
|
||||
| `providerModels/` | Managed model lifecycle: `modelDiscovery.ts`, `managedModelImport.ts`, `managedAvailableModels.ts`, `cursorAgent.ts` |
|
||||
|
||||
@@ -195,7 +195,7 @@ src/
|
||||
| `memory/vectorStore.ts` | sqlite-vec v0.1.9 wrapper — KNN brute-force + hybrid RRF (FTS5 + vector, k=60). Lazy-init, degrades gracefully when sqlite-vec unavailable. (plan 21) |
|
||||
| `memory/reindex.ts` | `runReindexBatch()` — processes memories with `needs_reindex=1` in background; called by `POST /api/memory/reindex` and lazy-backfill path. (plan 21) |
|
||||
| `monitoring/` | Health checks, metrics emission |
|
||||
| `oauth/` | OAuth/import flows for 22 provider modules (agy, antigravity, claude, cline, codebuddy-cn, codex, cursor, devin-desktop, ghe-copilot, github, gitlab-duo, grok-cli-oauth, grok-cli, kilocode, kimi-coding, kiro, qoder, raycast, trae, xai-oauth, zed-hosted, zed) |
|
||||
| `oauth/` | OAuth/import flows for 22 provider modules (agy, antigravity, claude, cline, codebuddy-cn, codex, cursor, devin-desktop, ghe-copilot, github, gitlab-duo, grok-cli-oauth, grok-cli, kilocode, kimi-coding, kiro, openference, qoder, trae, xai-oauth, zed-hosted, zed) |
|
||||
| `plugins/` | Plugin registry |
|
||||
| `promptCache/` | Anthropic-style prompt cache breakpoints |
|
||||
| `skills/` | Skills framework (built-in + marketplace + SkillsSH) — see `docs/frameworks/SKILLS.md` |
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<svg viewBox="0 0 1200 350" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Animated terminal demoing the OmniRoute CLI: omniroute providers list (354 providers registered, anthropic, codex, glm, kimi shown active), omniroute combo list (always-on priority, cost-saver, fusion-panel, context-relay) and omniroute health (healthy, 18412 requests in 24h, p95 412ms, circuit breakers 24 closed, 1 half-open, 0 open), cycling over 85 top-level commands: providers, oauth, keys, combo, nodes, models, cache, compression, cost, usage, quota, health, resilience, telemetry, logs, audit, mcp, a2a, cloud, memory, skills, eval, doctor, repl, tunnel, backup, sync, webhooks, policy, pricing, translator, simulate and more.">
|
||||
<svg viewBox="0 0 1200 350" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Animated terminal demoing the OmniRoute CLI: omniroute providers list (357 providers registered, anthropic, codex, glm, kimi shown active), omniroute combo list (always-on priority, cost-saver, fusion-panel, context-relay) and omniroute health (healthy, 18412 requests in 24h, p95 412ms, circuit breakers 24 closed, 1 half-open, 0 open), cycling over 85 top-level commands: providers, oauth, keys, combo, nodes, models, cache, compression, cost, usage, quota, health, resilience, telemetry, logs, audit, mcp, a2a, cloud, memory, skills, eval, doctor, repl, tunnel, backup, sync, webhooks, policy, pricing, translator, simulate and more.">
|
||||
<desc>Compact animated terminal cycling three real OmniRoute CLI commands with a typewriter effect and a scrolling subcommand ticker; the first frame shows the completed providers-list screen.</desc>
|
||||
<defs><clipPath id="tickerClip"><rect x="12" y="304" width="1176" height="40"/></clipPath><clipPath id="tw0"><rect x="64" y="46" height="26" width="0"><animate attributeName="width" calcMode="discrete" values="0;31;61;92;122;153;184;214;245;245" keyTimes="0;0.012;0.018;0.024;0.030;0.036;0.042;0.048;0.054;1" dur="18s" repeatCount="indefinite"/></rect></clipPath><clipPath id="tw1"><rect x="64" y="46" height="26" width="0"><animate attributeName="width" calcMode="discrete" values="0;26;51;76;102;128;153;178;204;204" keyTimes="0;0.348;0.351;0.357;0.363;0.369;0.375;0.381;0.387;1" dur="18s" repeatCount="indefinite"/></rect></clipPath><clipPath id="tw2"><rect x="64" y="46" height="26" width="0"><animate attributeName="width" calcMode="discrete" values="0;20;41;61;82;102;122;143;163;163" keyTimes="0;0.678;0.684;0.690;0.696;0.702;0.708;0.714;0.720;1" dur="18s" repeatCount="indefinite"/></rect></clipPath></defs>
|
||||
<rect width="1200" height="350" fill="#0d1117"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@@ -1,4 +1,4 @@
|
||||
<svg viewBox="0 0 1200 780" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Comparison table: OmniRoute versus 9router, OpenRouter, CLIProxyAPI and LiteLLM across 13 capabilities. OmniRoute is the only one with the full set: 354 providers, 90+ free providers built-in, 19 routing strategies, 12-engine token compression, a built-in MCP server with 110 tools, A2A protocol, persistent memory, guardrails, cloud agents, TLS fingerprint stealth, desktop/Termux/PWA, 43 UI locales and 100% MIT self-hosted. 9router has free providers, RTK compression and translation but no MCP, A2A, memory, guardrails, cloud agents or stealth. OpenRouter is a hosted SaaS with 400+ models, guardrails and a hosted MCP but is not self-hosted and lacks A2A, memory, cloud agents and stealth. CLIProxyAPI is a light OAuth proxy with two routing strategies. LiteLLM has 100+ providers, A2A and extensive guardrails but no memory, compression, free tier, stealth or cloud agents.">
|
||||
<svg viewBox="0 0 1200 780" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Comparison table: OmniRoute versus 9router, OpenRouter, CLIProxyAPI and LiteLLM across 13 capabilities. OmniRoute is the only one with the full set: 357 providers, 90+ free providers built-in, 19 routing strategies, 12-engine token compression, a built-in MCP server with 110 tools, A2A protocol, persistent memory, guardrails, cloud agents, TLS fingerprint stealth, desktop/Termux/PWA, 43 UI locales and 100% MIT self-hosted. 9router has free providers, RTK compression and translation but no MCP, A2A, memory, guardrails, cloud agents or stealth. OpenRouter is a hosted SaaS with 400+ models, guardrails and a hosted MCP but is not self-hosted and lacks A2A, memory, cloud agents and stealth. CLIProxyAPI is a light OAuth proxy with two routing strategies. LiteLLM has 100+ providers, A2A and extensive guardrails but no memory, compression, free tier, stealth or cloud agents.">
|
||||
<desc>Static-header comparison table where each capability row fades in top to bottom; the OmniRoute column is highlighted and shows a check or a leading value in every row, while competitors show a mix of checks, partials and crosses.</desc>
|
||||
<defs>
|
||||
<pattern id="gC" width="32" height="32" patternUnits="userSpaceOnUse"><path d="M 32 0 L 0 0 0 32" fill="none" stroke="#ffffff" stroke-opacity="0.05" stroke-width="1"/></pattern>
|
||||
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@@ -1,4 +1,4 @@
|
||||
<svg viewBox="0 0 1200 842" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="OmniRoute free-tier budget: about 1.51 billion free tokens per month steady, up to about 2.13 billion in the first month with signup credits. The catalog contains 455 rows, 448 active and 7 discontinued, grouped into 40 recurring pool keys; 20 pools have a published positive monthly token budget and 20 have a zero, uncapped, or keyless budget. Honest pool-deduped math counts each shared free pool once; 15 providers carry a terms-of-service avoid flag. The 20 quantified pools are Mistral 1 billion, LLM7 150 million, Nara 150 million, Gemini 60 million, Cerebras 30 million, Cloudflare AI 30 million, API Airforce 24 million, Ollama Cloud 20 million, Groq 15 million, Bluesminds 7.2 million, SambaNova 6 million, Arcee 4.8 million, Navy 4.5 million, BazaarLink 3.6 million, OpenRouter 1.2 million, Cohere 800 thousand, HuggingChat 500 thousand, Morph 400 thousand, Hugging Face 200 thousand, and Kiro 25 thousand. One-time signup credits add about 626 million. Uncapped providers and the OpenRouter top-up boost are shown separately so they do not inflate the headline. Live usage remains available at /dashboard/free-tiers.">
|
||||
<svg viewBox="0 0 1200 842" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="OmniRoute free-tier budget: about 1.51 billion free tokens per month steady, up to about 2.13 billion in the first month with signup credits. The catalog contains 451 rows, 444 active and 7 discontinued, grouped into 39 recurring pool keys; 20 pools have a published positive monthly token budget and 19 have a zero, uncapped, or keyless budget. Honest pool-deduped math counts each shared free pool once; 14 providers carry a terms-of-service avoid flag. The 20 quantified pools are Mistral 1 billion, LLM7 150 million, Nara 150 million, Gemini 60 million, Cerebras 30 million, Cloudflare AI 30 million, API Airforce 24 million, Ollama Cloud 20 million, Groq 15 million, Bluesminds 7.2 million, SambaNova 6 million, Arcee 4.8 million, Navy 4.5 million, BazaarLink 3.6 million, OpenRouter 1.2 million, Cohere 800 thousand, HuggingChat 500 thousand, Morph 400 thousand, Hugging Face 200 thousand, and Kiro 25 thousand. One-time signup credits add about 626 million. Uncapped providers and the OpenRouter top-up boost are shown separately so they do not inflate the headline. Live usage remains available at /dashboard/free-tiers.">
|
||||
<desc>Pool-deduplicated chart of the 20 recurring free-token pools with positive published budgets, plus signup credits and uncapped providers shown separately.</desc>
|
||||
<defs>
|
||||
<pattern id="gridPaperF" width="32" height="32" patternUnits="userSpaceOnUse">
|
||||
@@ -64,7 +64,7 @@
|
||||
<text x="60" y="228" font-family="Consolas, 'Courier New', monospace" font-size="104" font-weight="800" fill="url(#gradBrandF)">~1.51B</text>
|
||||
<text x="62" y="266" font-family="Consolas, 'Courier New', monospace" font-size="15" letter-spacing="3" font-weight="700" fill="#a1a1aa">FREE TOKENS / MONTH · <tspan fill="#22c55e">STEADY</tspan></text>
|
||||
<text x="62" y="298" font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif" font-size="16" fill="#F7F6FC">up to <tspan font-weight="800" fill="#22c55e">~2.13B</tspan> in your first month — signup credits</text>
|
||||
<text x="62" y="326" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#71717a">documented free tiers · <tspan fill="#8b5cf6">40 recurring pools</tspan> · <tspan fill="#8b5cf6">455 catalog entries</tspan> · one endpoint</text>
|
||||
<text x="62" y="326" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#71717a">documented free tiers · <tspan fill="#8b5cf6">39 recurring pools</tspan> · <tspan fill="#8b5cf6">451 catalog entries</tspan> · one endpoint</text>
|
||||
|
||||
<!-- ═══ Panel · The honest math ═══ -->
|
||||
<rect x="680" y="84" width="460" height="216" rx="14" fill="#161b22" stroke="#ffffff" stroke-opacity="0.08" stroke-width="1"/>
|
||||
@@ -78,7 +78,7 @@
|
||||
<text x="704" y="240" font-family="Consolas, 'Courier New', monospace" font-size="34" font-weight="800" fill="#22c55e">~1.51B</text>
|
||||
<text x="836" y="224" font-family="Consolas, 'Courier New', monospace" font-size="11.5" fill="#a1a1aa">each shared free pool</text>
|
||||
<text x="836" y="244" font-family="Consolas, 'Courier New', monospace" font-size="11.5" fill="#22c55e">counted once ✓</text>
|
||||
<text x="704" y="280" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#f59e0b"><tspan font-weight="800">15 providers</tspan> ToS-flagged <tspan fill="#71717a">— we flag it · you decide</tspan></text>
|
||||
<text x="704" y="280" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#f59e0b"><tspan font-weight="800">14 providers</tspan> ToS-flagged <tspan fill="#71717a">— we flag it · you decide</tspan></text>
|
||||
|
||||
<!-- ═══ Budget bar · 20 quantified recurring pools ═══ -->
|
||||
<text x="60" y="356" font-family="Consolas, 'Courier New', monospace" font-size="10.5" letter-spacing="2.5" font-weight="700" fill="#a78bfa">WHERE IT COMES FROM · <tspan fill="#F7F6FC">20 QUANTIFIED RECURRING POOLS</tspan></text>
|
||||
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@@ -1,4 +1,4 @@
|
||||
<svg viewBox="0 0 1200 540" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="The OmniRoute promise: one endpoint and 354 providers. Six pillars. Resilient fallback: automatic routing continues while another healthy target is available. Save up to 95 percent of eligible tokens: RTK plus Caveman stacked compression averages about 89 percent on tool-heavy sessions. Zero dollars to start: 90+ providers with a free tier and 56 recurring or keyless free-forever providers. Every tool works: 35 CLI and agent integration records, including Claude Code, Codex, Cursor, Cline, Copilot and Antigravity, through one config. One endpoint: OpenAI, Claude, Gemini and Responses API translation at /v1. Production controls: circuit breakers, TLS stealth, MCP with 110 tools, A2A, memory, guardrails, evals, and 39,000+ static test declarations across 5,100+ tracked test files.">
|
||||
<svg viewBox="0 0 1200 540" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="The OmniRoute promise: one endpoint and 357 providers. Six pillars. Resilient fallback: automatic routing continues while another healthy target is available. Save up to 95 percent of eligible tokens: RTK plus Caveman stacked compression averages about 89 percent on tool-heavy sessions. Zero dollars to start: 90+ providers with a free tier and 56 recurring or keyless free-forever providers. Every tool works: 35 CLI and agent integration records, including Claude Code, Codex, Cursor, Cline, Copilot and Antigravity, through one config. One endpoint: OpenAI, Claude, Gemini and Responses API translation at /v1. Production controls: circuit breakers, TLS stealth, MCP with 110 tools, A2A, memory, guardrails, evals, and 39,000+ static test declarations across 5,100+ tracked test files.">
|
||||
<desc>Animated promise card: six pillar tiles fade in in reading order, then a soft colored border highlight sweeps from tile to tile in a continuous cycle.</desc>
|
||||
<defs>
|
||||
<pattern id="gridPaperP" width="32" height="32" patternUnits="userSpaceOnUse">
|
||||
@@ -21,7 +21,7 @@
|
||||
<line x1="150" y1="53" x2="1160" y2="53" stroke="#232b38" stroke-width="1.5"/>
|
||||
</g>
|
||||
<g>
|
||||
<text x="40" y="100" font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif" font-size="23" font-weight="600" fill="#c9d1d9">One endpoint. <tspan fill="#a78bfa" font-weight="800">354 providers.</tspan> Never stop building — OmniRoute picks <tspan fill="#7ee787" font-weight="700">the cheapest one that works</tspan>.</text>
|
||||
<text x="40" y="100" font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif" font-size="23" font-weight="600" fill="#c9d1d9">One endpoint. <tspan fill="#a78bfa" font-weight="800">357 providers.</tspan> Never stop building — OmniRoute picks <tspan fill="#7ee787" font-weight="700">the cheapest one that works</tspan>.</text>
|
||||
</g>
|
||||
|
||||
<g font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif">
|
||||
@@ -38,7 +38,7 @@
|
||||
<line x1="3.9" y1="3.9" x2="18.1" y2="18.1"/>
|
||||
</g>
|
||||
<text x="102" y="170" font-size="18" font-weight="800" fill="#74b9ff">Never hit limits</text>
|
||||
<text x="66" y="204" font-size="13.5" fill="#a1a1aa">Auto-fallback across 354 providers in</text>
|
||||
<text x="66" y="204" font-size="13.5" fill="#a1a1aa">Auto-fallback across 357 providers in</text>
|
||||
<text x="66" y="226" font-size="13.5" fill="#a1a1aa">milliseconds. Quota out? The next provider</text>
|
||||
<text x="66" y="248" font-size="13.5" fill="#a1a1aa">takes over while a healthy target remains.</text>
|
||||
</g>
|
||||
@@ -73,7 +73,7 @@
|
||||
<circle cx="6.6" cy="6.6" r="1.4" fill="#fdcb6e" stroke="none"/>
|
||||
</g>
|
||||
<text x="862" y="170" font-size="18" font-weight="800" fill="#fdcb6e">$0 to start</text>
|
||||
<text x="826" y="204" font-size="13.5" fill="#a1a1aa">90+ providers with a free tier, 56 free</text>
|
||||
<text x="826" y="204" font-size="13.5" fill="#a1a1aa">90+ providers with a free tier, 55 free</text>
|
||||
<text x="826" y="226" font-size="13.5" fill="#a1a1aa">forever — Qoder, Pollinations, Cloudflare,</text>
|
||||
<text x="826" y="248" font-size="13.5" fill="#a1a1aa">SiliconFlow… No card needed.</text>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
@@ -1,4 +1,4 @@
|
||||
<svg viewBox="0 0 1200 548" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="OmniRoute hero: Never stop coding. Every AI tool to 354 providers — 90+ free — through one endpoint. Claude Code, Codex, Cursor, Cline, Copilot and Antigravity into free Claude, GPT and Gemini with auto-fallback. RTK + Caveman stacked compression saves 15 to 95 percent of tokens — about 89 percent average on tool-heavy sessions — so you never hit limits. Stats: 354 AI providers, 90+ free tiers, about 1.51B free tokens per month, 15 to 95 percent token savings, 19 routing strategies, zero dollars to start.">
|
||||
<svg viewBox="0 0 1200 548" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="OmniRoute hero: Never stop coding. Every AI tool to 357 providers — 90+ free — through one endpoint. Claude Code, Codex, Cursor, Cline, Copilot and Antigravity into free Claude, GPT and Gemini with auto-fallback. RTK + Caveman stacked compression saves 15 to 95 percent of tokens — about 89 percent average on tool-heavy sessions — so you never hit limits. Stats: 357 AI providers, 90+ free tiers, about 1.51B free tokens per month, 15 to 95 percent token savings, 19 routing strategies, zero dollars to start.">
|
||||
<desc>Animated hero card: a pulse travels the divider line and a compression bar demo repeatedly shrinks a prompt by up to 95 percent; all headline content is static and readable on the first frame.</desc>
|
||||
<defs>
|
||||
<pattern id="gridPaperH" width="32" height="32" patternUnits="userSpaceOnUse">
|
||||
@@ -28,7 +28,7 @@
|
||||
<text x="48" y="138" font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif" font-size="60" font-weight="800" fill="#e9edf3">Never stop coding<tspan fill="#a855f7">.</tspan></text>
|
||||
|
||||
<!-- subheadline -->
|
||||
<text x="48" y="184" font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif" font-size="25" font-weight="600" fill="#c9d1d9">Every AI tool → <tspan fill="#a78bfa" font-weight="800">354 providers</tspan> — <tspan fill="#7ee787" font-weight="800">90+ free</tspan> — through one endpoint.</text>
|
||||
<text x="48" y="184" font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif" font-size="25" font-weight="600" fill="#c9d1d9">Every AI tool → <tspan fill="#a78bfa" font-weight="800">357 providers</tspan> — <tspan fill="#7ee787" font-weight="800">90+ free</tspan> — through one endpoint.</text>
|
||||
|
||||
<!-- plug line -->
|
||||
<text x="48" y="222" font-family="Inter, 'Segoe UI', Arial, Helvetica, system-ui, sans-serif" font-size="16.5" fill="#a1a1aa">Claude Code · Codex · Cursor · Cline · Copilot · Antigravity  →  <tspan fill="#7ee787" font-weight="700">FREE</tspan> Claude / GPT / Gemini · auto-fallback</text>
|
||||
|
||||
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
@@ -1,4 +1,4 @@
|
||||
<svg viewBox="0 0 1200 430" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Works the second you install it — zero config. Three steps: 1. Install — npm install -g omniroute, one command, server on localhost port 20128. 2. Point your tool at http://localhost:20128/v1 — any OpenAI-compatible tool. 3. It answers — call model auto and get an instant reply with no API key, no signup, no configuration. Keyless free providers OpenCode Free and Felo are pre-wired into the auto combo, so a fresh install responds out of the box.">
|
||||
<svg viewBox="0 0 1200 430" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Works the second you install it — zero config. Three steps: 1. Install — npm install -g omniroute, one command, server on localhost port 20128. 2. Point your tool at http://localhost:20128/v1 — any OpenAI-compatible tool. 3. It answers — call model auto and get an instant reply with no API key, no signup, no configuration. Keyless provider OpenCode Free is pre-wired into the auto combo, so a fresh install responds out of the box.">
|
||||
<desc>Animated flow card: three step tiles (Install, Point your tool, It answers) fade in left to right, a dot travels along the connectors between them in a loop, and the final check pulses.</desc>
|
||||
<defs>
|
||||
<pattern id="gridW" width="32" height="32" patternUnits="userSpaceOnUse">
|
||||
@@ -112,6 +112,6 @@
|
||||
</g>
|
||||
|
||||
<!-- footer -->
|
||||
<text x="40" y="406" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#71717a">OpenCode Free & Felo are pre-wired into <tspan fill="#7ee787">auto</tspan> — a fresh install responds out of the box.</text>
|
||||
<text x="40" y="406" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#71717a">OpenCode Free is pre-wired into <tspan fill="#7ee787">auto</tspan> — a fresh install responds out of the box.</text>
|
||||
<text x="1160" y="406" text-anchor="end" font-family="Consolas, 'Courier New', monospace" font-size="12" letter-spacing="1.5" fill="#71717a">$0 · MIT</text>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.2 KiB |
@@ -172,11 +172,16 @@ When set, configures `undici`'s global dispatcher with the extra CA cert, allowi
|
||||
|
||||
### 2.7 Secret masking (`src/mitm/maskSecrets.ts`)
|
||||
|
||||
Applied to all request bodies and headers **before** they enter the Traffic Inspector buffer or any log:
|
||||
The independent clean-room scanner is applied to request bodies and credential headers
|
||||
**before** they enter the Traffic Inspector buffer or any log. It performs a single linear pass:
|
||||
|
||||
- `sk-` / `ak-` / `pk-` prefixed tokens (OpenAI/Anthropic-style)
|
||||
- `Authorization: Bearer <token>` headers
|
||||
- Generic long tokens (≥40 chars)
|
||||
- RFC 6750 `Authorization: Bearer <token>` credentials, with whole-token precedence
|
||||
- Generic long opaque tokens (≥40 chars), including dotted and padded forms
|
||||
|
||||
`sanitizeHeaders()` lowercases retained names, joins array values deterministically, drops the
|
||||
shared hop-by-hop/framing denylist (including proxy authentication), fully redacts `cookie` and
|
||||
`set-cookie`, and delegates credential values to the scanner.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ New tab for extracting content from a URL via `POST /v1/web/fetch` (created in p
|
||||
- Submit → fetch → render `ScrapeResult.tsx`.
|
||||
- `ScrapeResult` renders markdown preview + raw toggle.
|
||||
- Cap: if response body > **256 KB**, UI shows `(truncated, view raw)` and opens raw in a Monaco modal (D21).
|
||||
- Metadata panel: provider (firecrawl/jina-reader/tavily-search/tinyfish/nimble-search), latency, cost, response size, links count.
|
||||
- Metadata panel: provider (firecrawl/jina-reader/tavily-search/tinyfish/nimble-search/anysearch-search), latency, cost, response size, links count.
|
||||
- Uses `useScrapeFetch.ts` hook.
|
||||
|
||||
### Compare Tab
|
||||
@@ -105,15 +105,7 @@ Runs the same query/URL across up to **4 providers in parallel** (D22):
|
||||
`ProviderCatalog.tsx` exposes the full provider list from `GET /api/search/providers`
|
||||
(extended in F4 to include fetch providers):
|
||||
|
||||
| Field | Source |
|
||||
| ------------------------------ | ------------------------------------------------------------------------------------------ |
|
||||
| `id`, `name` | `searchRegistry.ts` |
|
||||
| `kind` | `"search"` or `"fetch"` (firecrawl, jina-reader, tavily-search, tinyfish, nimble-search) |
|
||||
| `costPerQuery` | Registry data |
|
||||
| `freeMonthlyQuota` | Registry data |
|
||||
| `searchTypes` / `fetchFormats` | Registry data |
|
||||
| `status` | `"configured"` / `"missing"` / `"rate_limited"` — derived at runtime from credential store |
|
||||
| `configureHref` | `/dashboard/providers` |
|
||||
| `kind` | `"search"` (20 providers) or `"fetch"` (firecrawl, jina-reader, tavily-search, tinyfish, nimble-search, anysearch-search) |
|
||||
|
||||
The status is **derived at request time** by checking whether credentials exist and whether
|
||||
all keys are currently in cooldown.
|
||||
@@ -136,7 +128,7 @@ Only one backend change was needed for this feature:
|
||||
|
||||
`src/app/api/search/providers/route.ts` was extended to:
|
||||
|
||||
- Include every fetch provider (`firecrawl`, `jina-reader`, `tavily-search`, `tinyfish`, `nimble-search`) in the array.
|
||||
- Include all 6 fetch providers (`firecrawl`, `jina-reader`, `tavily-search`, `tinyfish`, `nimble-search`, `anysearch-search`) in the array.
|
||||
- Add `kind: "search" | "fetch"` to every item.
|
||||
- Add `status: "configured" | "missing" | "rate_limited"` derived from live credential state.
|
||||
- Maintain backward compatibility — existing fields (`id`, `name`, etc.) unchanged.
|
||||
|
||||
@@ -174,7 +174,7 @@ This is a substantial subsystem with its own dedicated operator guide — see **
|
||||
| Control | Action |
|
||||
| ---------------- | --------------------------------------------------------------------- |
|
||||
| ⎉ Pause | Stops rendering new requests; "X new" badge accumulates |
|
||||
| 🗑 Clear | Clears the UI list (server buffer is not affected) |
|
||||
| 🗑 Clear | Clears the UI list (server buffer is not affected) |
|
||||
| ⬇ Export .har | Downloads current filtered list as HAR file |
|
||||
| ● Record session | Starts a named recording session |
|
||||
| Profile selector | LLM only / Custom hosts / All |
|
||||
@@ -207,12 +207,18 @@ Custom hosts added via Mode 2 inherit their `kind` from the form input (defaults
|
||||
|
||||
### 4.2 SSE merger (`src/mitm/inspector/sseMerger.ts`)
|
||||
|
||||
**MIT port from [chouzz/llm-interceptor](https://github.com/chouzz/llm-interceptor)**
|
||||
**Independent clean-room implementation.** Event parsing follows the
|
||||
[WHATWG server-sent events algorithm](https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream),
|
||||
while reconstruction follows the public [OpenAI](https://platform.openai.com/docs/api-reference/chat/create),
|
||||
[Anthropic](https://platform.claude.com/docs/en/build-with-claude/streaming), and
|
||||
[Gemini](https://ai.google.dev/api/generate-content#method:-models.streamgeneratecontent)
|
||||
streaming schemas.
|
||||
|
||||
Reconstructs the final assistant message from raw SSE delta events:
|
||||
|
||||
- **Anthropic**: accumulates `content_block_delta` by index; handles `text_delta`, `input_json_delta` (tool calls), `thinking_delta`
|
||||
- **OpenAI**: accumulates `choices[i].delta.content` and `tool_calls` by index
|
||||
- **OpenAI**: accumulates Chat Completions choices/tool calls and Responses API output items
|
||||
by index
|
||||
- **Gemini**: accumulates `candidates[i].content.parts`
|
||||
- **Unknown**: returns raw events as-is
|
||||
|
||||
@@ -220,7 +226,9 @@ The Response tab shows a toggle: **"Raw events ↔ Merged"**.
|
||||
|
||||
### 4.3 Conversation normalizer (`src/mitm/inspector/conversationNormalizer.ts`)
|
||||
|
||||
**MIT port from [chouzz/llm-interceptor](https://github.com/chouzz/llm-interceptor)**
|
||||
**Independent clean-room implementation.** Normalization is defined by local black-box
|
||||
contracts and the public OpenAI, Anthropic, and Gemini message schemas; no upstream
|
||||
implementation source is used.
|
||||
|
||||
Converts OpenAI, Anthropic, and Gemini message formats to a single `NormalizedConversation` before rendering:
|
||||
|
||||
@@ -337,14 +345,14 @@ Export via `GET /api/tools/traffic-inspector/sessions/{id}/export.har` or the
|
||||
|
||||
Traffic Inspector shows **all intercepted HTTPS traffic**, including authorization headers and request bodies. The following controls are in place:
|
||||
|
||||
| Control | Details |
|
||||
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| **LOCAL_ONLY** | All routes and the WebSocket endpoint are loopback-only (enforced in `routeGuard.ts` before auth) |
|
||||
| **Secret masking** | `maskSecrets()` applied to all headers and bodies before `TrafficBuffer.push()` — enabled by default (`INSPECTOR_MASK_SECRETS=true`) |
|
||||
| **Body size cap** | Bodies > `INSPECTOR_MAX_BODY_KB` (default 1024 KB) are truncated with `"(truncated for performance)"` notice |
|
||||
| **Sensitive header masking** | `authorization`, `cookie`, `api-key`, `x-api-key`, `proxy-authorization` → `Bearer ***` in Headers tab; "Show secrets" toggle |
|
||||
| **CSP** | Strict Content Security Policy on Traffic Inspector pages to prevent XSS via injected response bodies |
|
||||
| **No persistence by default** | The `TrafficBuffer` is in-memory and lost on server restart. Sessions are persisted only when explicitly recorded |
|
||||
| Control | Details |
|
||||
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **LOCAL_ONLY** | All routes and the WebSocket endpoint are loopback-only (enforced in `routeGuard.ts` before auth) |
|
||||
| **Secret masking** | Linear `maskSecret()` scanner redacts RFC 6750 Bearer credentials, provider-prefixed keys and long opaque tokens before `TrafficBuffer.push()` |
|
||||
| **Body size cap** | Bodies > `INSPECTOR_MAX_BODY_KB` (default 1024 KB) are truncated with `"(truncated for performance)"` notice |
|
||||
| **Header sanitization** | Names are lowercased; framing/hop-by-hop and proxy-auth headers are dropped; cookies are fully redacted; credential values delegate to `maskSecret()` |
|
||||
| **CSP** | Strict Content Security Policy on Traffic Inspector pages to prevent XSS via injected response bodies |
|
||||
| **No persistence by default** | The `TrafficBuffer` is in-memory and lost on server restart. Sessions are persisted only when explicitly recorded |
|
||||
|
||||
### Hard Rules applied
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Free Tiers Guide: Understand and Combine Free AI Access
|
||||
|
||||
> **TL;DR**: OmniRoute registers 350 provider IDs, with **154 provider-catalog entries marked `hasFree`**. The stricter audited free-model catalog covers **40 recurring pool keys / 455 entries** (448 active + 7 discontinued). Connect several suitable providers for broader fallback capacity; every quota, approval rule, privacy policy, and paid-overage condition still applies.
|
||||
> **TL;DR**: OmniRoute registers 351 provider IDs, with **153 provider-catalog entries marked `hasFree`**. The stricter audited free-model catalog covers **39 recurring pool keys / 451 entries** (444 active + 7 discontinued). Connect several suitable providers for broader fallback capacity; every quota, approval rule, privacy policy, and paid-overage condition still applies.
|
||||
|
||||
---
|
||||
|
||||
@@ -163,9 +163,9 @@ The live, pool-deduplicated catalog currently reports:
|
||||
| ---------------------------------------------------- | -----------------------------------------------: | ----------------------------------------------------------------------------------------- |
|
||||
| Recurring quantified grant | **~1.51B tokens/month** | Shared pools counted once; excludes uncapped providers from the sum |
|
||||
| First month with signup grants | **~2.13B tokens** | Recurring total plus one-time and recurring credits |
|
||||
| Audited free-model inventory | **40 recurring pool keys / 455 catalog entries** | 448 active + 7 discontinued; distinct from the 350-provider catalog |
|
||||
| Recurring/keyless free-forever providers represented | **56** | Unique providers across recurring daily/monthly/credit/uncapped and keyless catalog types |
|
||||
| Provider catalog entries marked `hasFree` | **154 / 350** | Broader provider metadata; not all have a quantifiable recurring quota |
|
||||
| Audited free-model inventory | **39 recurring pool keys / 451 catalog entries** | 444 active + 7 discontinued; distinct from the 351-provider catalog |
|
||||
| Recurring/keyless free-forever providers represented | **55** | Unique providers across recurring daily/monthly/credit/uncapped and keyless catalog types |
|
||||
| Provider catalog entries marked `hasFree` | **153 / 351** | Broader provider metadata; not all have a quantifiable recurring quota |
|
||||
|
||||
These values are computed from `open-sse/config/freeModelCatalog.ts`; see the
|
||||
[Free Tiers Reference](../reference/FREE_TIERS.md) for pool deduplication, ToS flags,
|
||||
|
||||
@@ -226,16 +226,21 @@ Three build args control what the `builder` stage costs. They are build-time onl
|
||||
| --------------------------- | ------- | ----------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_USE_TURBOPACK` | `1` | `0` builds with webpack instead. Lower peak memory, slower. |
|
||||
| `OMNIROUTE_BUILD_MEMORY_MB` | `6144` | V8 heap ceiling (`--max-old-space-size`) for the spawned `next build`. |
|
||||
| `OMNIROUTE_BUILD_WORKERS` | `3` | Feeds `CIRCLE_NODE_TOTAL`; Next derives `workers = N - 1` for page-data collection. |
|
||||
| `OMNIROUTE_BUILD_WORKERS` | `2` | Feeds `CIRCLE_NODE_TOTAL`; Next derives `workers = N - 1` for page-data collection. |
|
||||
|
||||
`OMNIROUTE_BUILD_WORKERS` is the one to raise on a big builder and the one to
|
||||
suspect when a constrained build dies **after** `✓ Compiled successfully`. Each
|
||||
page-data worker is its own process and inherits `NODE_OPTIONS`, so the heap
|
||||
ceiling is per process, not per build: the default of `3` (→ 2 workers) is sized
|
||||
for the 16 GB / 4 vCPU GitHub-hosted runners the publish pipeline uses. At `8`
|
||||
(→ 7 workers) that runner ran out of memory and buildkit failed the step with
|
||||
`ResourceExhausted: ... cannot allocate memory`. `tests/unit/docker-build-memory-budget.test.ts`
|
||||
does the arithmetic and fails if either knob outgrows the runner.
|
||||
page-data worker is its own process, and so is the parent `next build` itself;
|
||||
a live VPS reproduction (issue #7518) measured each process's peak RSS at
|
||||
~4.5 GB independent of the `NODE_OPTIONS` heap flag (Turbopack compiles in
|
||||
native/Rust memory outside the V8 heap). The default of `2` (→ 1 worker, 2
|
||||
processes total) is sized for the 16 GB / 4 vCPU GitHub-hosted runners the
|
||||
publish pipeline uses. At `8` (→ 7 workers) that runner ran out of memory and
|
||||
buildkit failed the step with `ResourceExhausted: ... cannot allocate memory`;
|
||||
`3` (→ 2 workers) still didn't fit once the per-process RSS was measured
|
||||
directly instead of inferred. `tests/unit/docker-build-memory-budget.test.ts`
|
||||
does the arithmetic against the measured figure and fails if either knob
|
||||
outgrows the runner.
|
||||
|
||||
Turbopack compiles in native Rust memory that lives **outside** the V8 heap, so
|
||||
`OMNIROUTE_BUILD_MEMORY_MB` does not bound it. On a host with a memory ceiling the
|
||||
|
||||
@@ -40,11 +40,11 @@ Common problems and solutions for OmniRoute.
|
||||
|
||||
### Rate Limiting on Free Providers (429 / 400 / 401)
|
||||
|
||||
**Symptom**: When using `model: "auto"` with free/no-auth providers (opencode, felo-web, auggie, etc.), you intermittently get `HTTP 429`, `400`, or `401` instead of answers. The requests succeed when retrying the same prompt moments later, but automation (cron jobs, agents, scripts) breaks on the first failure.
|
||||
**Symptom**: When using `model: "auto"` with free/no-auth providers (opencode, auggie, etc.), you intermittently get `HTTP 429`, `400`, or `401` instead of answers. The requests succeed when retrying the same prompt moments later, but automation (cron jobs, agents, scripts) breaks on the first failure.
|
||||
|
||||
**Root cause**: Three independent failure modes stack up:
|
||||
|
||||
1. **Provider rate-limit (`429`)**: Free tiers (notably `felo/felo-chat`) enforce a per-window quota. A burst of parallel calls exhausts it, so the next request is refused until the window resets.
|
||||
1. **Provider rate-limit (`429`)**: Free tiers can enforce a per-window quota. A burst of parallel calls exhausts it, so the next request is refused until the window resets.
|
||||
2. **Broken model in passthrough (`400`/`401`)**: `auto/*` pools can include passthrough models from `opencode` that are registered in the catalog but have no live credentials (e.g. `oc/north-mini-code-free` → `401`). The auto-router tries one, fails, and the error propagates before fallback kicks in.
|
||||
3. **Concurrency amplification (`429` under load)**: When multiple agent/cron sessions hit `auto` at once, the aggregate request rate exceeds what free providers tolerate, so legitimate calls get flagged as abusive.
|
||||
|
||||
|
||||
@@ -1027,7 +1027,6 @@ If only OpenRouter is configured, use `openrouter/deepgram/nova-3`.
|
||||
- `kie/`
|
||||
- `aws-polly/`
|
||||
- `xiaomi-mimo/`
|
||||
- `edgetts/` (Microsoft Edge "Read Aloud" — free, no API key; unofficial/reverse-engineered endpoint)
|
||||
- `coqui/`, `tortoise/`
|
||||
- `qwen/`
|
||||
|
||||
|
||||
@@ -93,28 +93,28 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -735,12 +735,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo.
|
||||
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — provider/account limits apply |
|
||||
| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — provider/account limits apply |
|
||||
| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — provider/account limits apply |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
|
||||
**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done.
|
||||
|
||||
@@ -1191,16 +1191,16 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | ------------------------------------------ |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
|
||||
### 🟢 QODER MODELS (Free PAT via qodercli)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ---------------------- | --------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-plus` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `deepseek-r1` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
@@ -1212,11 +1212,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🟡 QWEN MODELS (Device Code Auth)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | --------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `vision-model` | `qw/` | No published token cap | Multimodal; provider/account limits may apply |
|
||||
|
||||
### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 354 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 357 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
||||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **354 AI providers** with automatic format translation
|
||||
- **357 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
@@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool
|
||||
|
||||
## v3.8.x Highlights
|
||||
|
||||
- **354-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **357-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay`
|
||||
- **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown
|
||||
- **MCP server expanded to 110 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules)
|
||||
|
||||
@@ -93,28 +93,28 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -736,12 +736,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo.
|
||||
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — provider/account limits apply |
|
||||
| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — provider/account limits apply |
|
||||
| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — provider/account limits apply |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
|
||||
**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done.
|
||||
|
||||
@@ -1192,16 +1192,16 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | ------------------------------------------ |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
|
||||
### 🟢 QODER MODELS (Free PAT via qodercli)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ---------------------- | --------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-plus` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `deepseek-r1` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
@@ -1213,11 +1213,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🟡 QWEN MODELS (Device Code Auth)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | --------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `vision-model` | `qw/` | No published token cap | Multimodal; provider/account limits may apply |
|
||||
|
||||
### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 354 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 357 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
||||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **354 AI providers** with automatic format translation
|
||||
- **357 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
@@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool
|
||||
|
||||
## v3.8.x Highlights
|
||||
|
||||
- **354-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **357-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay`
|
||||
- **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown
|
||||
- **MCP server expanded to 110 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules)
|
||||
|
||||
@@ -93,28 +93,28 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -735,12 +735,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo.
|
||||
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — provider/account limits apply |
|
||||
| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — provider/account limits apply |
|
||||
| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — provider/account limits apply |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
|
||||
**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done.
|
||||
|
||||
@@ -1191,16 +1191,16 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | ------------------------------------------ |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
|
||||
### 🟢 QODER MODELS (Free PAT via qodercli)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ---------------------- | --------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-plus` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `deepseek-r1` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
@@ -1212,11 +1212,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🟡 QWEN MODELS (Device Code Auth)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | --------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `vision-model` | `qw/` | No published token cap | Multimodal; provider/account limits may apply |
|
||||
|
||||
### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 354 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 357 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
||||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **354 AI providers** with automatic format translation
|
||||
- **357 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
@@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool
|
||||
|
||||
## v3.8.x Highlights
|
||||
|
||||
- **354-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **357-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay`
|
||||
- **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown
|
||||
- **MCP server expanded to 110 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules)
|
||||
|
||||
@@ -93,28 +93,28 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -735,12 +735,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo.
|
||||
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — provider/account limits apply |
|
||||
| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — provider/account limits apply |
|
||||
| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — provider/account limits apply |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
|
||||
**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done.
|
||||
|
||||
@@ -1191,16 +1191,16 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | ------------------------------------------ |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
|
||||
### 🟢 QODER MODELS (Free PAT via qodercli)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ---------------------- | --------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-plus` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `deepseek-r1` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
@@ -1212,11 +1212,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🟡 QWEN MODELS (Device Code Auth)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | --------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `vision-model` | `qw/` | No published token cap | Multimodal; provider/account limits may apply |
|
||||
|
||||
### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 354 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 357 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
||||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **354 AI providers** with automatic format translation
|
||||
- **357 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
@@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool
|
||||
|
||||
## v3.8.x Highlights
|
||||
|
||||
- **354-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **357-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay`
|
||||
- **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown
|
||||
- **MCP server expanded to 110 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules)
|
||||
|
||||
@@ -93,28 +93,28 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -735,12 +735,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo.
|
||||
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — provider/account limits apply |
|
||||
| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — provider/account limits apply |
|
||||
| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — provider/account limits apply |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
|
||||
**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done.
|
||||
|
||||
@@ -1191,16 +1191,16 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | ------------------------------------------ |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
|
||||
### 🟢 QODER MODELS (Free PAT via qodercli)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ---------------------- | --------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-plus` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `deepseek-r1` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
@@ -1212,11 +1212,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🟡 QWEN MODELS (Device Code Auth)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | --------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `vision-model` | `qw/` | No published token cap | Multimodal; provider/account limits may apply |
|
||||
|
||||
### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 354 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 357 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
||||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **354 AI providers** with automatic format translation
|
||||
- **357 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
@@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool
|
||||
|
||||
## v3.8.x Highlights
|
||||
|
||||
- **354-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **357-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay`
|
||||
- **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown
|
||||
- **MCP server expanded to 110 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules)
|
||||
|
||||
@@ -93,28 +93,28 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -735,12 +735,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo.
|
||||
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — provider/account limits apply |
|
||||
| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — provider/account limits apply |
|
||||
| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — provider/account limits apply |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
|
||||
**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done.
|
||||
|
||||
@@ -1191,16 +1191,16 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | ------------------------------------------ |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
|
||||
### 🟢 QODER MODELS (Free PAT via qodercli)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ---------------------- | --------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-plus` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `deepseek-r1` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
@@ -1212,11 +1212,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🟡 QWEN MODELS (Device Code Auth)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | --------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `vision-model` | `qw/` | No published token cap | Multimodal; provider/account limits may apply |
|
||||
|
||||
### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 354 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 357 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
||||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **354 AI providers** with automatic format translation
|
||||
- **357 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
@@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool
|
||||
|
||||
## v3.8.x Highlights
|
||||
|
||||
- **354-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **357-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay`
|
||||
- **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown
|
||||
- **MCP server expanded to 110 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules)
|
||||
|
||||
@@ -93,28 +93,28 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -735,12 +735,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo.
|
||||
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — provider/account limits apply |
|
||||
| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — provider/account limits apply |
|
||||
| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — provider/account limits apply |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
|
||||
**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done.
|
||||
|
||||
@@ -1191,16 +1191,16 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | ------------------------------------------ |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
|
||||
### 🟢 QODER MODELS (Free PAT via qodercli)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ---------------------- | --------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-plus` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `deepseek-r1` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
@@ -1212,11 +1212,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🟡 QWEN MODELS (Device Code Auth)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | --------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `vision-model` | `qw/` | No published token cap | Multimodal; provider/account limits may apply |
|
||||
|
||||
### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 354 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 357 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
||||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **354 AI providers** with automatic format translation
|
||||
- **357 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
@@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool
|
||||
|
||||
## v3.8.x Highlights
|
||||
|
||||
- **354-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **357-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay`
|
||||
- **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown
|
||||
- **MCP server expanded to 110 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules)
|
||||
|
||||
@@ -93,28 +93,28 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -735,12 +735,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo.
|
||||
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — provider/account limits apply |
|
||||
| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — provider/account limits apply |
|
||||
| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — provider/account limits apply |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
|
||||
**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done.
|
||||
|
||||
@@ -1191,16 +1191,16 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | ------------------------------------------ |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
|
||||
### 🟢 QODER MODELS (Free PAT via qodercli)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ---------------------- | --------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-plus` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `deepseek-r1` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
@@ -1212,11 +1212,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🟡 QWEN MODELS (Device Code Auth)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | --------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `vision-model` | `qw/` | No published token cap | Multimodal; provider/account limits may apply |
|
||||
|
||||
### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 354 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 357 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
||||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **354 AI providers** with automatic format translation
|
||||
- **357 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
@@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool
|
||||
|
||||
## v3.8.x Highlights
|
||||
|
||||
- **354-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **357-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay`
|
||||
- **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown
|
||||
- **MCP server expanded to 110 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules)
|
||||
|
||||
@@ -62,17 +62,17 @@ _پراکسی جهانی API شما - یک نقطه پایانی، 329 ورود
|
||||
<details>
|
||||
<summary><b>Click to see dashboard screenshots</b></summary>
|
||||
|
||||
| صفحه | اسکرین شات |
|
||||
| -------------- | ------------------------------------------------- |
|
||||
| **ارائه دهندگان** |  |
|
||||
| **ترکیب** |  |
|
||||
| **تحلیل** |  |
|
||||
| **سلامت** |  |
|
||||
| **مترجم** |  |
|
||||
| **تنظیمات** |  |
|
||||
| **ابزار CLI** |  |
|
||||
| ** سیاهههای استفاده ** |  |
|
||||
| **نقاط پایانی** |  |
|
||||
| صفحه | اسکرین شات |
|
||||
| ---------------------- | --------------------------------------------------- |
|
||||
| **ارائه دهندگان** |  |
|
||||
| **ترکیب** |  |
|
||||
| **تحلیل** |  |
|
||||
| **سلامت** |  |
|
||||
| **مترجم** |  |
|
||||
| **تنظیمات** |  |
|
||||
| **ابزار CLI** |  |
|
||||
| ** سیاهههای استفاده ** |  |
|
||||
| **نقاط پایانی** |  |
|
||||
|
||||
</details>
|
||||
|
||||
@@ -93,28 +93,28 @@ _هر ابزار IDE یا CLI مجهز به هوش مصنوعی را از طری
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _هر ابزار IDE یا CLI مجهز به هوش مصنوعی را از طری
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _هر ابزار IDE یا CLI مجهز به هوش مصنوعی را از طری
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>کد کیلو</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -735,12 +735,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> کدگذاری هوش مصنوعی را در چند دقیقه با **0 دلار در ماه** تنظیم کنید. این حسابهای رایگان را متصل کنید و از ترکیب داخلی **پشته رایگان** استفاده کنید.
|
||||
|
||||
| مرحله | اقدام | قفل ارائه دهندگان |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| 1 | اتصال **Kiro** (شناسه سازنده AWS OAuth) | Claude Sonnet 4.5، Haiku 4.5 — محدودیت های ارائه دهنده/حساب اعمال می شود |
|
||||
| 2 | اتصال **Qoder** (Google OAuth) | kimi-k2-thinking، qwen3-coder-plus، deepseek-r1... — محدودیت های ارائه دهنده/حساب اعمال می شود |
|
||||
| 3 | اتصال **Qwen** (کد دستگاه) | qwen3-coder-plus، qwen3-coder-flash... — محدودیت های ارائه دهنده/حساب اعمال می شود |
|
||||
| 4 | قالب `/dashboard/combos` → **پشته رایگان (0$)** | همه ارائه دهندگان رایگان را بصورت خودکار |
|
||||
| مرحله | اقدام | قفل ارائه دهندگان |
|
||||
| ----- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------- |
|
||||
| 1 | اتصال **Kiro** (شناسه سازنده AWS OAuth) | Claude Sonnet 4.5، Haiku 4.5 — محدودیت های ارائه دهنده/حساب اعمال می شود |
|
||||
| 2 | اتصال **Qoder** (Google OAuth) | kimi-k2-thinking، qwen3-coder-plus، deepseek-r1... — محدودیت های ارائه دهنده/حساب اعمال می شود |
|
||||
| 3 | اتصال **Qwen** (کد دستگاه) | qwen3-coder-plus، qwen3-coder-flash... — محدودیت های ارائه دهنده/حساب اعمال می شود |
|
||||
| 4 | قالب `/dashboard/combos` → **پشته رایگان (0$)** | همه ارائه دهندگان رایگان را بصورت خودکار |
|
||||
|
||||
**کلید IDE/CLI را به:** `http://localhost:20128/v1` · API کلید: `any-string` · انجام شد.
|
||||
|
||||
@@ -773,13 +773,13 @@ yay -S omniroute-bin
|
||||
systemctl --user enable --now omniroute.service
|
||||
```
|
||||
|
||||
| فرمان | توضیحات |
|
||||
| ----------------------- | ----------------------------------------------------------- |
|
||||
| `omniroute` | راه اندازی سرور (`PORT=20128`، API و داشبورد در همان پورت) |
|
||||
| `omniroute --port 3000` | پورت canonical/API را روی 3000 | تنظیم کنید
|
||||
| `omniroute --mcp` | راه اندازی سرور MCP (stdio transport) |
|
||||
| `omniroute --no-open` | مرورگر خودکار باز نشود |
|
||||
| `omniroute --help` | نمایش کمک |
|
||||
| فرمان | توضیحات |
|
||||
| ----------------------- | ---------------------------------------------------------- |
|
||||
| `omniroute` | راه اندازی سرور (`PORT=20128`، API و داشبورد در همان پورت) |
|
||||
| `omniroute --port 3000` | پورت canonical/API را روی 3000 | تنظیم کنید |
|
||||
| `omniroute --mcp` | راه اندازی سرور MCP (stdio transport) |
|
||||
| `omniroute --no-open` | مرورگر خودکار باز نشود |
|
||||
| `omniroute --help` | نمایش کمک |
|
||||
|
||||
حالت اسپلیت پورت اختیاری:
|
||||
|
||||
@@ -793,9 +793,9 @@ PORT=20128 DASHBOARD_PORT=20129 omniroute
|
||||
|
||||
هنگامی که دیگر نیازی به OmniRoute ندارید، ما دو اسکریپت سریع برای حذف تمیز ارائه می دهیم:
|
||||
|
||||
| فرمان | اقدام |
|
||||
| ------------------------ | ----------------------------------------------------------------------------------- |
|
||||
| `npm run uninstall` | برنامه سیستم را حذف می کند اما **DB و تنظیمات** شما را در `~/.omniroute` نگه می دارد. |
|
||||
| فرمان | اقدام |
|
||||
| ------------------------ | --------------------------------------------------------------------------------------------- |
|
||||
| `npm run uninstall` | برنامه سیستم را حذف می کند اما **DB و تنظیمات** شما را در `~/.omniroute` نگه می دارد. |
|
||||
| `npm run uninstall:full` | برنامه را حذف می کند و برای همیشه **همه پیکربندی ها، کلیدها و پایگاه داده ها را پاک می کند**. |
|
||||
|
||||
> توجه: برای اجرای این دستورات، به پوشه پروژه OmniRoute (اگر آن را شبیه سازی کرده اید) بروید و آنها را اجرا کنید. از طرف دیگر، اگر به صورت سراسری نصب شده باشد، می توانید به سادگی `npm uninstall -g omniroute` را اجرا کنید.
|
||||
@@ -804,10 +804,10 @@ PORT=20128 DASHBOARD_PORT=20129 omniroute
|
||||
|
||||
برای اکثر استقرارها، فقط نیاز دارید:
|
||||
|
||||
| متغیر | پیش فرض | هدف |
|
||||
| ------------------------ | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `REQUEST_TIMEOUT_MS` | `600000` | خط پایه مشترک برای مهلت زمانی شروع پاسخ بالادست، مهلت زمانی پنهان Undici، درخواستهای اثر انگشت TLS و زمانبندی درخواست پل/پراکسی API |
|
||||
| `STREAM_IDLE_TIMEOUT_MS` | به ارث می برد `REQUEST_TIMEOUT_MS` | حداکثر فاصله بین تکه های جریان قبل از اینکه OmniRoute جریان SSE را لغو کند |
|
||||
| متغیر | پیش فرض | هدف |
|
||||
| ------------------------ | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `REQUEST_TIMEOUT_MS` | `600000` | خط پایه مشترک برای مهلت زمانی شروع پاسخ بالادست، مهلت زمانی پنهان Undici، درخواستهای اثر انگشت TLS و زمانبندی درخواست پل/پراکسی API |
|
||||
| `STREAM_IDLE_TIMEOUT_MS` | به ارث می برد `REQUEST_TIMEOUT_MS` | حداکثر فاصله بین تکه های جریان قبل از اینکه OmniRoute جریان SSE را لغو کند |
|
||||
|
||||
سازگاری به عقب حفظ می شود: `FETCH_TIMEOUT_MS`، `API_BRIDGE_PROXY_TIMEOUT_MS`، و سایر متغیرهای وقفه زمانی هر لایه هنوز کار می کنند و خط پایه مشترک را لغو می کنند.
|
||||
|
||||
@@ -820,19 +820,19 @@ PORT=20128 DASHBOARD_PORT=20129 omniroute
|
||||
|
||||
در صورت نیاز به کنترل دقیق تر، لغو پیشرفته در دسترس است:
|
||||
|
||||
| متغیر | پیش فرض | هدف |
|
||||
| ---------------------------------------- | ------------------------------------------ | -------------------------------------------------------------------- |
|
||||
| `FETCH_TIMEOUT_MS` | به ارث می برد `REQUEST_TIMEOUT_MS` | زمان پایان پاسخ-شروع بالادستی تا رسیدن سرصفحه های پاسخ استفاده می شود |
|
||||
| `FETCH_HEADERS_TIMEOUT_MS` | به ارث می برد `FETCH_TIMEOUT_MS` | محدودیت زمانی Undici برای دریافت سرصفحه های پاسخ بالادست |
|
||||
| `FETCH_BODY_TIMEOUT_MS` | به ارث می برد `FETCH_TIMEOUT_MS` | محدودیت زمانی Undici بین تکه های بدنه بالادست (`0` آن را غیرفعال می کند) |
|
||||
| `FETCH_CONNECT_TIMEOUT_MS` | `30000` | زمان اتصال Undici TCP |
|
||||
| `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | مهلت زمانی سوکت بیکار نگه داشتن زنده Undici |
|
||||
| `TLS_CLIENT_TIMEOUT_MS` | به ارث می برد `FETCH_TIMEOUT_MS` | مهلت زمانی برای درخواست های اثر انگشت TLS که از طریق `wreq-js` |
|
||||
| `API_BRIDGE_PROXY_TIMEOUT_MS` | به ارث می برد `REQUEST_TIMEOUT_MS` یا `600000` | مهلت زمانی برای ارسال پروکسی `/v1` از پورت API به پورت داشبورد |
|
||||
| `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `max(API_BRIDGE_PROXY_TIMEOUT_MS, 300000)` | زمان درخواست ورودی در سرور پل API |
|
||||
| `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | مهلت زمانی هدر ورودی در سرور پل API |
|
||||
| `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | وقفه ماندن زنده در سرور پل API |
|
||||
| `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | پایان زمان عدم فعالیت سوکت در سرور پل API (`0` آن را غیرفعال می کند) |
|
||||
| متغیر | پیش فرض | هدف |
|
||||
| ---------------------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------ |
|
||||
| `FETCH_TIMEOUT_MS` | به ارث می برد `REQUEST_TIMEOUT_MS` | زمان پایان پاسخ-شروع بالادستی تا رسیدن سرصفحه های پاسخ استفاده می شود |
|
||||
| `FETCH_HEADERS_TIMEOUT_MS` | به ارث می برد `FETCH_TIMEOUT_MS` | محدودیت زمانی Undici برای دریافت سرصفحه های پاسخ بالادست |
|
||||
| `FETCH_BODY_TIMEOUT_MS` | به ارث می برد `FETCH_TIMEOUT_MS` | محدودیت زمانی Undici بین تکه های بدنه بالادست (`0` آن را غیرفعال می کند) |
|
||||
| `FETCH_CONNECT_TIMEOUT_MS` | `30000` | زمان اتصال Undici TCP |
|
||||
| `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | مهلت زمانی سوکت بیکار نگه داشتن زنده Undici |
|
||||
| `TLS_CLIENT_TIMEOUT_MS` | به ارث می برد `FETCH_TIMEOUT_MS` | مهلت زمانی برای درخواست های اثر انگشت TLS که از طریق `wreq-js` |
|
||||
| `API_BRIDGE_PROXY_TIMEOUT_MS` | به ارث می برد `REQUEST_TIMEOUT_MS` یا `600000` | مهلت زمانی برای ارسال پروکسی `/v1` از پورت API به پورت داشبورد |
|
||||
| `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `max(API_BRIDGE_PROXY_TIMEOUT_MS, 300000)` | زمان درخواست ورودی در سرور پل API |
|
||||
| `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | مهلت زمانی هدر ورودی در سرور پل API |
|
||||
| `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | وقفه ماندن زنده در سرور پل API |
|
||||
| `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | پایان زمان عدم فعالیت سوکت در سرور پل API (`0` آن را غیرفعال می کند) |
|
||||
|
||||
برای درخواستهای پخش جریانی، `FETCH_TIMEOUT_MS` فقط راهاندازی اتصال / انتظار برای اولین پاسخ بالادستی را پوشش میدهد. پس از فعال شدن جریان، OmniRoute فقط در حالت توقف واقعی (`STREAM_IDLE_TIMEOUT_MS`) یا عدم فعالیت بدنه Undici (`FETCH_BODY_TIMEOUT_MS`) متوقف می شود.
|
||||
|
||||
@@ -1087,10 +1087,10 @@ volumes:
|
||||
omniroute-data:
|
||||
```
|
||||
|
||||
| تصویر | برچسب | اندازه | توضیحات |
|
||||
| ------------------------ | -------- | ------ | --------------------- |
|
||||
| تصویر | برچسب | اندازه | توضیحات |
|
||||
| ------------------------ | -------- | ------------ | ----------------- |
|
||||
| `diegosouzapw/omniroute` | `latest` | ~250 مگابایت | آخرین نسخه پایدار |
|
||||
| `diegosouzapw/omniroute` | `3.6.2` | ~250 مگابایت | نسخه فعلی |
|
||||
| `diegosouzapw/omniroute` | `3.6.2` | ~250 مگابایت | نسخه فعلی |
|
||||
|
||||
---
|
||||
|
||||
@@ -1133,32 +1133,32 @@ npm run electron:build:linux # Linux (.AppImage)
|
||||
|
||||
## 💰 قیمت در یک نگاه
|
||||
|
||||
| ردیف | ارائه دهنده | هزینه | بازنشانی سهمیه | بهترین برای |
|
||||
| ------------------- | --------------------------- | ------------------------------------- | --------------------- | ---------------------------------- |
|
||||
| **💳 اشتراک ** | کد Claude (Pro) | 20 دلار در ماه | 5 ساعت + هفتگی | قبلاً مشترک شده است |
|
||||
| | Codex (Plus/Pro) | 20-200 دلار در ماه | 5 ساعت + هفتگی | کاربران OpenAI |
|
||||
| | GitHub Copilot | 10-19 دلار در ماه | ماهانه | کاربران GitHub |
|
||||
| **🔑 کلید API ** | NVIDIA NIM | **دسترسی رایگان** (شرایط فعلی اعمال می شود) | ~40 دور در دقیقه | 70+ مدل باز |
|
||||
| | Cerebras | **رایگان** (1 میلیون توک در روز) | 60K TPM / 30 RPM | سریعترین جهان |
|
||||
| | Groq | **رایگان** (30 دور در دقیقه) | 14.4K RPD | Llama/Gemma فوق العاده سریع |
|
||||
| | DeepSeek V3.2 | 0.27 دلار / 1.10 دلار در هر 1 میلیون | هیچکدام | بهترین استدلال قیمت/کیفیت |
|
||||
| | xAI Grok-4 Fast | **0.20$/0.50$ در هر 1 میلیون** 🆕 | هیچکدام | سریعترین + فراخوانی ابزار، فوق العاده کم |
|
||||
| | xAI Grok-4 (استاندارد) | 0.20 دلار / 1.50 دلار به ازای هر 1 میلیون 🆕 | هیچکدام | گل سرسبد استدلال از xAI |
|
||||
| | میسترال | آزمایشی رایگان + پولی | نرخ محدود | هوش مصنوعی اروپایی |
|
||||
| | OpenRouter | پرداخت به ازای استفاده | هیچکدام | 100+ مدل aggr. |
|
||||
| **💰 ارزان ** | GLM-5 (از طریق Z.AI) 🆕 | 0.5/1 میلیون دلار | روزانه 10 صبح | خروجی 128K، جدیدترین پرچمدار |
|
||||
| | GLM-4.7 | 0.6/1 میلیون دلار | روزانه 10 صبح | پشتیبان بودجه |
|
||||
| | MiniMax M2.5 🆕 | 0.3/1 میلیون دلار ورودی | نورد 5 ساعته | استدلال + وظایف نمایندگی |
|
||||
| | MiniMax M2.1 | 0.2/1 میلیون دلار | نورد 5 ساعته | ارزان ترین گزینه |
|
||||
| | Kimi K2.5 (Moonshot API) 🆕 | پرداخت به ازای استفاده | هیچکدام | دسترسی مستقیم Moonshot API |
|
||||
| | Kimi K2 | 9 دلار در ماه آپارتمان | 10 میلیون توکن در ماه | هزینه قابل پیش بینی |
|
||||
| **🆓 دسترسی رایگان ** | Qoder | **0$** | محدودیت اعمال می شود | مدل های منتخب؛ شرایط اعمال می شود |
|
||||
| | Qwen | **0$** | محدودیت اعمال می شود | مدل های منتخب؛ شرایط اعمال می شود |
|
||||
| | Kiro | **0$** | محدودیت اعتبار/حساب | دسترسی Claude؛ شرایط فعلی اعمال می شود |
|
||||
| | اعتبار ثبت نام LongCat | **0$** (10 میلیون یکبار مصرف؛ KYC) | یکبار مصرف | کمک هزینه ثبت نام؛ تکرار نشدن |
|
||||
| | Pollinations AI 🆕 | **0$** (بدون نیاز به کلید) | 1 req/15s | GPT-5، Claude، DeepSeek، Llama 4 |
|
||||
| | Cloudflare Workers AI 🆕 | **0$** (10 هزار نورون در روز) | ~150 بار در روز | 50+ مدل، لبه جهانی |
|
||||
| | Scaleway AI 🆕 | **0$** (مجموع 1 میلیون توکن) | نرخ محدود | EU/GDPR، Qwen3 235B، Llama 70B |
|
||||
| ردیف | ارائه دهنده | هزینه | بازنشانی سهمیه | بهترین برای |
|
||||
| --------------------- | --------------------------- | -------------------------------------------- | --------------------- | ---------------------------------------- |
|
||||
| **💳 اشتراک ** | کد Claude (Pro) | 20 دلار در ماه | 5 ساعت + هفتگی | قبلاً مشترک شده است |
|
||||
| | Codex (Plus/Pro) | 20-200 دلار در ماه | 5 ساعت + هفتگی | کاربران OpenAI |
|
||||
| | GitHub Copilot | 10-19 دلار در ماه | ماهانه | کاربران GitHub |
|
||||
| **🔑 کلید API ** | NVIDIA NIM | **دسترسی رایگان** (شرایط فعلی اعمال می شود) | ~40 دور در دقیقه | 70+ مدل باز |
|
||||
| | Cerebras | **رایگان** (1 میلیون توک در روز) | 60K TPM / 30 RPM | سریعترین جهان |
|
||||
| | Groq | **رایگان** (30 دور در دقیقه) | 14.4K RPD | Llama/Gemma فوق العاده سریع |
|
||||
| | DeepSeek V3.2 | 0.27 دلار / 1.10 دلار در هر 1 میلیون | هیچکدام | بهترین استدلال قیمت/کیفیت |
|
||||
| | xAI Grok-4 Fast | **0.20$/0.50$ در هر 1 میلیون** 🆕 | هیچکدام | سریعترین + فراخوانی ابزار، فوق العاده کم |
|
||||
| | xAI Grok-4 (استاندارد) | 0.20 دلار / 1.50 دلار به ازای هر 1 میلیون 🆕 | هیچکدام | گل سرسبد استدلال از xAI |
|
||||
| | میسترال | آزمایشی رایگان + پولی | نرخ محدود | هوش مصنوعی اروپایی |
|
||||
| | OpenRouter | پرداخت به ازای استفاده | هیچکدام | 100+ مدل aggr. |
|
||||
| **💰 ارزان ** | GLM-5 (از طریق Z.AI) 🆕 | 0.5/1 میلیون دلار | روزانه 10 صبح | خروجی 128K، جدیدترین پرچمدار |
|
||||
| | GLM-4.7 | 0.6/1 میلیون دلار | روزانه 10 صبح | پشتیبان بودجه |
|
||||
| | MiniMax M2.5 🆕 | 0.3/1 میلیون دلار ورودی | نورد 5 ساعته | استدلال + وظایف نمایندگی |
|
||||
| | MiniMax M2.1 | 0.2/1 میلیون دلار | نورد 5 ساعته | ارزان ترین گزینه |
|
||||
| | Kimi K2.5 (Moonshot API) 🆕 | پرداخت به ازای استفاده | هیچکدام | دسترسی مستقیم Moonshot API |
|
||||
| | Kimi K2 | 9 دلار در ماه آپارتمان | 10 میلیون توکن در ماه | هزینه قابل پیش بینی |
|
||||
| **🆓 دسترسی رایگان ** | Qoder | **0$** | محدودیت اعمال می شود | مدل های منتخب؛ شرایط اعمال می شود |
|
||||
| | Qwen | **0$** | محدودیت اعمال می شود | مدل های منتخب؛ شرایط اعمال می شود |
|
||||
| | Kiro | **0$** | محدودیت اعتبار/حساب | دسترسی Claude؛ شرایط فعلی اعمال می شود |
|
||||
| | اعتبار ثبت نام LongCat | **0$** (10 میلیون یکبار مصرف؛ KYC) | یکبار مصرف | کمک هزینه ثبت نام؛ تکرار نشدن |
|
||||
| | Pollinations AI 🆕 | **0$** (بدون نیاز به کلید) | 1 req/15s | GPT-5، Claude، DeepSeek، Llama 4 |
|
||||
| | Cloudflare Workers AI 🆕 | **0$** (10 هزار نورون در روز) | ~150 بار در روز | 50+ مدل، لبه جهانی |
|
||||
| | Scaleway AI 🆕 | **0$** (مجموع 1 میلیون توکن) | نرخ محدود | EU/GDPR، Qwen3 235B، Llama 70B |
|
||||
|
||||
> 🆕 **مدلهای جدید اضافه شده (مارس 2026):** خانواده Grok-4 Fast با 0.20 دلار/0.50 دلار در میلیون دلار (معیار شده در 1143 میلیثانیه — 30 درصد سریعتر از فلش Gemini 2.5)، GLM-5 از طریق Z.AI، خروجی Z.AI، Z.AI، Z. DeepSeek V3.2 قیمت به روز شده، Kimi K2.5 از طریق Moonshot مستقیم API.
|
||||
|
||||
@@ -1191,84 +1191,84 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (از طریق Kiro — AWS Builder ID)
|
||||
|
||||
| مدل | پیشوند | محدود | محدودیت نرخ |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `claude-haiku-4.5` | `kr/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `claude-opus-4.6` | `kr/` | بدون درپوش توکن منتشر شده | آخرین Opus; محدودیت های ارائه دهنده/حساب اعمال می شود |
|
||||
| مدل | پیشوند | محدود | محدودیت نرخ |
|
||||
| ------------------- | ------ | ------------------------- | ----------------------------------------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `claude-haiku-4.5` | `kr/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `claude-opus-4.6` | `kr/` | بدون درپوش توکن منتشر شده | آخرین Opus; محدودیت های ارائه دهنده/حساب اعمال می شود |
|
||||
|
||||
### مدل QODER (رایگان PAT از طریق qodercli)
|
||||
|
||||
| مدل | پیشوند | محدود | محدودیت نرخ |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| `kimi-k2-thinking` | `if/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `qwen3-coder-plus` | `if/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `deepseek-r1` | `if/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `minimax-m2.1` | `if/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `kimi-k2` | `if/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| مدل | پیشوند | محدود | محدودیت نرخ |
|
||||
| ------------------ | ------ | ------------------------- | ----------------------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `qwen3-coder-plus` | `if/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `deepseek-r1` | `if/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `minimax-m2.1` | `if/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `kimi-k2` | `if/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
|
||||
> روش اتصال پیشنهادی: ** رمز دسترسی شخصی + `qodercli`**. مرورگر OAuth است
|
||||
> آزمایشی و به طور پیش فرض غیرفعال است مگر اینکه متغیرهای محیطی `QODER_OAUTH_*` پیکربندی شده باشند.
|
||||
|
||||
### 🡑 مدلهای QWEN (تأیید کد دستگاه)
|
||||
|
||||
| مدل | پیشوند | محدود | محدودیت نرخ |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `qwen3-coder-flash` | `qw/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `qwen3-coder-next` | `qw/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `vision-model` | `qw/` | بدون درپوش توکن منتشر شده | چند وجهی؛ ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| مدل | پیشوند | محدود | محدودیت نرخ |
|
||||
| ------------------- | ------ | ------------------------- | --------------------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `qwen3-coder-flash` | `qw/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `qwen3-coder-next` | `qw/` | بدون درپوش توکن منتشر شده | ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
| `vision-model` | `qw/` | بدون درپوش توکن منتشر شده | چند وجهی؛ ممکن است محدودیت های ارائه دهنده/حساب اعمال شود |
|
||||
|
||||
### ⚫ NVIDIA NIM (کلید رایگان API — build.nvidia.com)
|
||||
|
||||
| ردیف | محدودیت روزانه | محدودیت نرخ | یادداشت ها |
|
||||
| ---------- | ------------ | ----------- | ------------------------------------------------------ |
|
||||
| ردیف | محدودیت روزانه | محدودیت نرخ | یادداشت ها |
|
||||
| ------------ | --------------- | -------------------- | ------------------------------------------------------ |
|
||||
| رایگان (Dev) | بدون درپوش رمزی | **~40 دور در دقیقه** | 70+ مدل؛ انتقال به محدودیت های نرخ خالص اواسط سال 2025 |
|
||||
|
||||
مدلهای رایگان پرطرفدار: `moonshotai/kimi-k2.5` (Kimi K2.5)، `z-ai/glm4.7` (GLM 4.7)، `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2)، KimiTXQ3.
|
||||
|
||||
### ⚪ CEREBRAS (کلید رایگان API — inference.cerebras.ai)
|
||||
|
||||
| ردیف | محدودیت روزانه | محدودیت نرخ | یادداشت ها |
|
||||
| ---- | ----------------- | ---------------- | ------------------------------------------- |
|
||||
| ردیف | محدودیت روزانه | محدودیت نرخ | یادداشت ها |
|
||||
| ------ | ------------------------ | ---------------- | ----------------------------------------------- |
|
||||
| رایگان | **1 میلیون توکن در روز** | 60K TPM / 30 RPM | سریعترین استنتاج LLM در جهان. تنظیم مجدد روزانه |
|
||||
|
||||
رایگان موجود: `llama-3.3-70b`، `llama-3.1-8b`، `deepseek-r1-distill-llama-70b`
|
||||
|
||||
### 🔴 GROQ (کلید رایگان API — console.groq.com)
|
||||
|
||||
| ردیف | محدودیت روزانه | محدودیت نرخ | یادداشت ها |
|
||||
| ---- | ------------- | ---------------- | ----------------------------------------- |
|
||||
| رایگان | **14.4K RPD** | 30 دور در دقیقه در هر مدل | بدون کارت اعتباری؛ 429 محدود، شارژ نشده |
|
||||
| ردیف | محدودیت روزانه | محدودیت نرخ | یادداشت ها |
|
||||
| ------ | -------------- | ------------------------- | --------------------------------------- |
|
||||
| رایگان | **14.4K RPD** | 30 دور در دقیقه در هر مدل | بدون کارت اعتباری؛ 429 محدود، شارژ نشده |
|
||||
|
||||
رایگان موجود: `llama-3.3-70b-versatile`، `gemma2-9b-it`، `mixtral-8x7b`، `whisper-large-v3`
|
||||
|
||||
### 🔴 LONGCAT AI (اعتبار ثبت نام — KYC مورد نیاز است)
|
||||
|
||||
| مدل | پیشوند | کمک هزینه کاتالوگ فعلی | یادداشت ها |
|
||||
| ------------- | ------ | ----------------------- | --------------------------------------------------- |
|
||||
| `LongCat-2.0` | `lc/` | **10 میلیون توکن یکبار مصرف** | کمک هزینه ثبت نام؛ نه یک استخر تکراری ماهانه یا روزانه |
|
||||
| مدل | پیشوند | کمک هزینه کاتالوگ فعلی | یادداشت ها |
|
||||
| ------------- | ------ | ----------------------------- | ------------------------------------------------------ |
|
||||
| `LongCat-2.0` | `lc/` | **10 میلیون توکن یکبار مصرف** | کمک هزینه ثبت نام؛ نه یک استخر تکراری ماهانه یا روزانه |
|
||||
|
||||
> شرایط ارائه دهنده، واجد شرایط بودن و در دسترس بودن مدل می تواند تغییر کند. [`FREE_TIERS.md`](../../reference/FREE_TIERS.md) را برای ورودی کاتالوگ ممیزی شده ببینید.
|
||||
|
||||
### AI POLLINATIONS (بدون نیاز به کلید API) 🆕
|
||||
|
||||
| مدل | پیشوند | محدودیت نرخ | ارائه دهنده پشت |
|
||||
| ---------- | ------ | ---------- | ------------------ |
|
||||
| `openai` | `pol/` | 1 req/15s | GPT-5 |
|
||||
| `claude` | `pol/` | 1 req/15s | آنتروپیک Claude |
|
||||
| `gemini` | `pol/` | 1 req/15s | گوگل جمینی |
|
||||
| `deepseek` | `pol/` | 1 req/15s | DeepSeek V3 |
|
||||
| `llama` | `pol/` | 1 req/15s | Meta Llama 4 Scout |
|
||||
| `mistral` | `pol/` | 1 req/15s | Mistral AI |
|
||||
| مدل | پیشوند | محدودیت نرخ | ارائه دهنده پشت |
|
||||
| ---------- | ------ | ----------- | ------------------ |
|
||||
| `openai` | `pol/` | 1 req/15s | GPT-5 |
|
||||
| `claude` | `pol/` | 1 req/15s | آنتروپیک Claude |
|
||||
| `gemini` | `pol/` | 1 req/15s | گوگل جمینی |
|
||||
| `deepseek` | `pol/` | 1 req/15s | DeepSeek V3 |
|
||||
| `llama` | `pol/` | 1 req/15s | Meta Llama 4 Scout |
|
||||
| `mistral` | `pol/` | 1 req/15s | Mistral AI |
|
||||
|
||||
> ✨ **اصطکاک صفر:** بدون ثبت نام، بدون کلید API. ارائه دهنده Pollinations را با یک فیلد کلید خالی اضافه کنید و بلافاصله کار می کند.
|
||||
|
||||
### CLOUDFLARE WORKERS AI (کلید رایگان API — cloudflare.com) 🆕
|
||||
|
||||
| ردیف | نورون های روزانه | استفاده معادل | یادداشت ها |
|
||||
| ---- | ------------- | --------------------------------------- | ----------------------- |
|
||||
| رایگان | **10000** | ~150 LLM resp / صدای 500s / 15K جاسازی | لبه جهانی، 50+ مدل |
|
||||
| ردیف | نورون های روزانه | استفاده معادل | یادداشت ها |
|
||||
| ------ | ---------------- | -------------------------------------- | ------------------ |
|
||||
| رایگان | **10000** | ~150 LLM resp / صدای 500s / 15K جاسازی | لبه جهانی، 50+ مدل |
|
||||
|
||||
مدل های رایگان محبوب: `@cf/meta/llama-3.3-70b-instruct`، `@cf/google/gemma-3-12b-it`، `@cf/openai/whisper-large-v3-turbo` (صدای رایگان!)، `@cf/qwen/qwen2.5-coder-15b-instruct`
|
||||
|
||||
@@ -1276,8 +1276,8 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### SCALEWAY AI (1 میلیون توکن رایگان — scaleway.com) 🆕
|
||||
|
||||
| ردیف | سهمیه آزاد | مکان | یادداشت ها |
|
||||
| ---- | ------------- | ------------ | ----------------------------------- |
|
||||
| ردیف | سهمیه آزاد | مکان | یادداشت ها |
|
||||
| ------ | ----------------- | ----------------------- | ----------------------------------- |
|
||||
| رایگان | **1 میلیون توکن** | 🇫🇷 پاریس، اتحادیه اروپا | بدون نیاز به کارت اعتباری در محدوده |
|
||||
|
||||
رایگان موجود: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!)، `llama-3.1-70b-instruct`، `mistral-small-3.2-24b-instruct-2506`، `deepseek-v3-0324`
|
||||
@@ -1304,11 +1304,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
> دسترسی به رونویسی به هر کمک هزینه بالادستی بستگی دارد - اعتبارات ثبت نام Deepgram و AssemblyAI می توانند منجر شوند، با Groq Whisper به عنوان یک بازگشت با نرخ محدود.
|
||||
|
||||
| ارائه دهنده | اعتبار رایگان | بهترین مدل | محدودیت نرخ |
|
||||
| ----------------- | --------------------------- | -------------------------------------------- | ---------------------------------------- |
|
||||
| 🢢 **دیپگرام** | **200 دلار رایگان** (ثبت نام) | `nova-3` — بهترین دقت، بیش از 30 زبان | بدون محدودیت RPM در اعتبارات رایگان |
|
||||
| 🔵 **AssemblyAI** | **50 دلار رایگان ** (ثبت نام) | `universal-3-pro` — فصول، احساسات، PII | بدون محدودیت RPM در اعتبارات رایگان |
|
||||
| 🔴 **Groq** | ** ردیف آزاد؛ محدودیت اعمال می شود** | `whisper-large-v3` — OpenAI Whisper | محدودیتهای نرخ ویژه مدل فعلی اعمال میشود |
|
||||
| ارائه دهنده | اعتبار رایگان | بهترین مدل | محدودیت نرخ |
|
||||
| ----------------- | ------------------------------------ | -------------------------------------- | ------------------------------------------ |
|
||||
| 🢢 **دیپگرام** | **200 دلار رایگان** (ثبت نام) | `nova-3` — بهترین دقت، بیش از 30 زبان | بدون محدودیت RPM در اعتبارات رایگان |
|
||||
| 🔵 **AssemblyAI** | **50 دلار رایگان ** (ثبت نام) | `universal-3-pro` — فصول، احساسات، PII | بدون محدودیت RPM در اعتبارات رایگان |
|
||||
| 🔴 **Groq** | ** ردیف آزاد؛ محدودیت اعمال می شود** | `whisper-large-v3` — OpenAI Whisper | محدودیتهای نرخ ویژه مدل فعلی اعمال میشود |
|
||||
|
||||
** ترکیب پیشنهادی در `/dashboard/combos`:**
|
||||
|
||||
@@ -1329,168 +1329,168 @@ OmniRoute v3.6 به عنوان یک پلت فرم عملیاتی ساخته شد
|
||||
|
||||
### 🆕 جدید — نسخه های برجسته نسخه 3.6.x (آوریل 2026)
|
||||
|
||||
| ویژگی | چه می کند |
|
||||
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 🌐 ** پل V1 WebSocket ** | ترافیک OpenAI سازگار با WebSocket ارتقا یافته و از طریق `/v1/ws` پروکسی شده است — پخش جریانی کامل از طریق WS با تأیید جلسه (کلید API یا کوکی جلسه) |
|
||||
| 🔑 **همگام سازی نشانه ها و بسته پیکربندی** | برای نقاط پایانی همگام سازی پیکربندی، نشانه های همگام سازی را صادر/لغو کنید. بستههای پیکربندی با ETag برای نظرسنجی با پهنای باند کارآمد نسخهبندی شدهاند |
|
||||
| 🧠 **GLM از پیش تنظیم تفکر (glmt)** | GLM Thinking ثبت شده درجه یک: 65 536 حداکثر توکن، 24 576 بودجه فکری، مهلت زمانی 900s، همگام سازی استفاده و قیمت گذاری — Claude سازگار API |
|
||||
| 🔢 **شمارش توکن هیبریدی** | در صورت موجود بودن از `/messages/count_tokens` سمت ارائه دهنده استفاده می کند. بازگشت به تخمین - ردیابی دقیق استفاده بدون حدس زدن |
|
||||
| 🌱 **مدل مستعار خودکار بذر ** | بیش از 30 نام مستعار گویش متقابل پروکسی در هنگام راهاندازی عادی شدند — دیگر عدم تطابق مسیریابی |
|
||||
| 🛡️ **واکشی ایمن خروجی** | تمام اعتبار سنجی ارائه دهنده و کشف مدل از طریق یک لایه واکشی محافظت شده انجام می شود که URL های خصوصی/محلی را با تلاش مجدد، مهلت زمانی و حفاظت SSRF مسدود می کند |
|
||||
| ⏳ **منتظر خنک شدن باشید** | هنگامی که هر اتصال نامزد در حال خنک شدن است، چت سمت سرور دوباره تکرار می شود. قابل تنظیم `enabled`، `maxRetries`، و `maxRetryWaitSec` |
|
||||
| 🔍 **Runtime Env Validation** | راهاندازی تمام env vars را با طرحوارههای Zod تأیید میکند - خطاهای پاک برای اسرار گمشده، URLهای نامعتبر یا انواع اشتباه |
|
||||
| 📋 **توسعه حسابرسی انطباق** | گزارشهای حسابرسی ساختاریافته با صفحهبندی، زمینه درخواست، رویدادهای احراز هویت، رویدادهای CRUD ارائهدهنده، و ثبت اعتبارسنجی مسدود شده با SSRF |
|
||||
| 🔐 **TPS Log Metric** | جزئیات گزارش مودال نشان می دهد نشانه ها در هر ثانیه (TPS) — عملکرد سریع در یک نگاه برای هر درخواست |
|
||||
| 🗑️ **حذف نصب / حذف کامل ** | `npm run uninstall` داده ها را نگه می دارد، `npm run uninstall:full` همه چیز را حذف می کند — حذف تمیز برای همه روش های نصب |
|
||||
| 🔧 **OAuth Env Repair** | اقدام "Repair env" با یک کلیک برای ارائه دهندگان OAuth، vars env گم شده را بازیابی می کند و وضعیت احراز هویت شکسته را رفع می کند |
|
||||
| 🔒 **خاموشی برازنده الکترون** | Electron `before-quit` Next.js را با زیبایی خاموش می کند و از قفل شدن پایگاه داده SQLite WAL در دسکتاپ جلوگیری می کند |
|
||||
| 👁️ **تغییر قابلیت مشاهده مدل** | جابجایی نمای هر مدل (نماد 👁) با فیلتر جستجو و نشان شمارش فعال (`N/M active`) در صفحات ارائه دهنده |
|
||||
| 📧 **پوشش حریم خصوصی ایمیل** | ایمیل های حساب OAuth پوشانده شده است (`di*****@g****.com`)، آدرس کامل قابل مشاهده در شناور |
|
||||
| 🔗 **استراتژی رله زمینه** | استراتژی ترکیبی حفظ تداوم جلسه از طریق خلاصههای دستیابی ساختاریافته هنگامی که حسابها در میانه مکالمه میچرخند |
|
||||
| 🛡️ **سخت شدن پروکسی** | بررسی سلامت توکن، اعتبار سنجی کلید API و undici dispatcher تمام پیکربندی پروکسی افتخاری |
|
||||
| ⚠️ **اخطار ورود به سیستم Node.js 24** | صفحه ورود به طور فعال نسخه های ناسازگار Node.js را شناسایی می کند و یک بنر هشدار واضح را نشان می دهد |
|
||||
| 📎 **ضمیمه های PDF Gemini** | پیوستهای پیدیاف بهدرستی به Gemini از طریق `inline_data` و تشخیص عمومی base64 هدایت شدند |
|
||||
| 🔒 **CodeQL Security Hardening** | SSRF حلشده، تصادفی ناامن، چندجملهای ReDoS و هشدارهای بهداشتی ناقص URL |
|
||||
| ویژگی | چه می کند |
|
||||
| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 🌐 ** پل V1 WebSocket ** | ترافیک OpenAI سازگار با WebSocket ارتقا یافته و از طریق `/v1/ws` پروکسی شده است — پخش جریانی کامل از طریق WS با تأیید جلسه (کلید API یا کوکی جلسه) |
|
||||
| 🔑 **همگام سازی نشانه ها و بسته پیکربندی** | برای نقاط پایانی همگام سازی پیکربندی، نشانه های همگام سازی را صادر/لغو کنید. بستههای پیکربندی با ETag برای نظرسنجی با پهنای باند کارآمد نسخهبندی شدهاند |
|
||||
| 🧠 **GLM از پیش تنظیم تفکر (glmt)** | GLM Thinking ثبت شده درجه یک: 65 536 حداکثر توکن، 24 576 بودجه فکری، مهلت زمانی 900s، همگام سازی استفاده و قیمت گذاری — Claude سازگار API |
|
||||
| 🔢 **شمارش توکن هیبریدی** | در صورت موجود بودن از `/messages/count_tokens` سمت ارائه دهنده استفاده می کند. بازگشت به تخمین - ردیابی دقیق استفاده بدون حدس زدن |
|
||||
| 🌱 **مدل مستعار خودکار بذر ** | بیش از 30 نام مستعار گویش متقابل پروکسی در هنگام راهاندازی عادی شدند — دیگر عدم تطابق مسیریابی |
|
||||
| 🛡️ **واکشی ایمن خروجی** | تمام اعتبار سنجی ارائه دهنده و کشف مدل از طریق یک لایه واکشی محافظت شده انجام می شود که URL های خصوصی/محلی را با تلاش مجدد، مهلت زمانی و حفاظت SSRF مسدود می کند |
|
||||
| ⏳ **منتظر خنک شدن باشید** | هنگامی که هر اتصال نامزد در حال خنک شدن است، چت سمت سرور دوباره تکرار می شود. قابل تنظیم `enabled`، `maxRetries`، و `maxRetryWaitSec` |
|
||||
| 🔍 **Runtime Env Validation** | راهاندازی تمام env vars را با طرحوارههای Zod تأیید میکند - خطاهای پاک برای اسرار گمشده، URLهای نامعتبر یا انواع اشتباه |
|
||||
| 📋 **توسعه حسابرسی انطباق** | گزارشهای حسابرسی ساختاریافته با صفحهبندی، زمینه درخواست، رویدادهای احراز هویت، رویدادهای CRUD ارائهدهنده، و ثبت اعتبارسنجی مسدود شده با SSRF |
|
||||
| 🔐 **TPS Log Metric** | جزئیات گزارش مودال نشان می دهد نشانه ها در هر ثانیه (TPS) — عملکرد سریع در یک نگاه برای هر درخواست |
|
||||
| 🗑️ **حذف نصب / حذف کامل ** | `npm run uninstall` داده ها را نگه می دارد، `npm run uninstall:full` همه چیز را حذف می کند — حذف تمیز برای همه روش های نصب |
|
||||
| 🔧 **OAuth Env Repair** | اقدام "Repair env" با یک کلیک برای ارائه دهندگان OAuth، vars env گم شده را بازیابی می کند و وضعیت احراز هویت شکسته را رفع می کند |
|
||||
| 🔒 **خاموشی برازنده الکترون** | Electron `before-quit` Next.js را با زیبایی خاموش می کند و از قفل شدن پایگاه داده SQLite WAL در دسکتاپ جلوگیری می کند |
|
||||
| 👁️ **تغییر قابلیت مشاهده مدل** | جابجایی نمای هر مدل (نماد 👁) با فیلتر جستجو و نشان شمارش فعال (`N/M active`) در صفحات ارائه دهنده |
|
||||
| 📧 **پوشش حریم خصوصی ایمیل** | ایمیل های حساب OAuth پوشانده شده است (`di*****@g****.com`)، آدرس کامل قابل مشاهده در شناور |
|
||||
| 🔗 **استراتژی رله زمینه** | استراتژی ترکیبی حفظ تداوم جلسه از طریق خلاصههای دستیابی ساختاریافته هنگامی که حسابها در میانه مکالمه میچرخند |
|
||||
| 🛡️ **سخت شدن پروکسی** | بررسی سلامت توکن، اعتبار سنجی کلید API و undici dispatcher تمام پیکربندی پروکسی افتخاری |
|
||||
| ⚠️ **اخطار ورود به سیستم Node.js 24** | صفحه ورود به طور فعال نسخه های ناسازگار Node.js را شناسایی می کند و یک بنر هشدار واضح را نشان می دهد |
|
||||
| 📎 **ضمیمه های PDF Gemini** | پیوستهای پیدیاف بهدرستی به Gemini از طریق `inline_data` و تشخیص عمومی base64 هدایت شدند |
|
||||
| 🔒 **CodeQL Security Hardening** | SSRF حلشده، تصادفی ناامن، چندجملهای ReDoS و هشدارهای بهداشتی ناقص URL |
|
||||
|
||||
### 🆕 جدید - بهبودهای الهام گرفته از ClawRouter (مارس 2026)
|
||||
|
||||
| ویژگی | چه می کند |
|
||||
| ------------------------------------ | ------------------------------------------------------------------------------------------- |
|
||||
| ⚡ **Grok-4 Fast Family** | مدلهای xAI با قیمت 0.20 دلار / 0.50 دلار در میلیون - 1143 میلیثانیه (30 درصد سریعتر از فلش Gemini 2.5) محکگذاری شده |
|
||||
| 🧠 **GLM-5 از طریق Z.AI** | زمینه خروجی 128 هزار دلاری، 0.5/1 میلیون دلار — جدیدترین پرچمدار خانواده GLM |
|
||||
| 🔮 **MiniMax M2.5** | استدلال + وظایف نمایندگی با 0.30 دلار / 1 میلیون دلار - ارتقاء قابل توجه از M2.1 |
|
||||
| 🎯 **ابزار Calling Flag در هر مدل** | هر مدل `toolCalling: true/false` در رجیستری — AutoCombo مدلهای غیرقابل ابزار را حذف میکند |
|
||||
| 🌍 **تشخیص قصد چند زبانه** | کلمات کلیدی PT/ZH/ES/AR در امتیازدهی AutoCombo — انتخاب مدل بهتر برای محتوای غیر انگلیسی |
|
||||
| 📊 **معیارهای بازگشتی** | تأخیر واقعی p95 از درخواستهای زنده امتیازدهی ترکیبی — AutoCombo از دادههای واقعی یاد میگیرد |
|
||||
| 🔁 **درخواست حذف مجدد ** | پنجره dedup مبتنی بر هش محتوا — ایمن چند عاملی، از هزینه های تکراری جلوگیری می کند |
|
||||
| 🔌 **استراتژی روتر قابل اتصال** | رابط توسعه پذیر `RouterStrategy` — اضافه کردن منطق مسیریابی سفارشی به عنوان پلاگین |
|
||||
| ویژگی | چه می کند |
|
||||
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
|
||||
| ⚡ **Grok-4 Fast Family** | مدلهای xAI با قیمت 0.20 دلار / 0.50 دلار در میلیون - 1143 میلیثانیه (30 درصد سریعتر از فلش Gemini 2.5) محکگذاری شده |
|
||||
| 🧠 **GLM-5 از طریق Z.AI** | زمینه خروجی 128 هزار دلاری، 0.5/1 میلیون دلار — جدیدترین پرچمدار خانواده GLM |
|
||||
| 🔮 **MiniMax M2.5** | استدلال + وظایف نمایندگی با 0.30 دلار / 1 میلیون دلار - ارتقاء قابل توجه از M2.1 |
|
||||
| 🎯 **ابزار Calling Flag در هر مدل** | هر مدل `toolCalling: true/false` در رجیستری — AutoCombo مدلهای غیرقابل ابزار را حذف میکند |
|
||||
| 🌍 **تشخیص قصد چند زبانه** | کلمات کلیدی PT/ZH/ES/AR در امتیازدهی AutoCombo — انتخاب مدل بهتر برای محتوای غیر انگلیسی |
|
||||
| 📊 **معیارهای بازگشتی** | تأخیر واقعی p95 از درخواستهای زنده امتیازدهی ترکیبی — AutoCombo از دادههای واقعی یاد میگیرد |
|
||||
| 🔁 **درخواست حذف مجدد ** | پنجره dedup مبتنی بر هش محتوا — ایمن چند عاملی، از هزینه های تکراری جلوگیری می کند |
|
||||
| 🔌 **استراتژی روتر قابل اتصال** | رابط توسعه پذیر `RouterStrategy` — اضافه کردن منطق مسیریابی سفارشی به عنوان پلاگین |
|
||||
|
||||
### 🚀 قبلی نسخه 2.0.9+ — زمین بازی، اثر انگشت CLI و ACP
|
||||
|
||||
| ویژگی | چه می کند |
|
||||
| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 🎮 **مدل زمین بازی** | صفحه داشبورد برای آزمایش مستقیم هر مدل — ارائه دهنده/مدل/انتخاب کننده نقطه پایانی، ویرایشگر موناکو، پخش جریانی، لغو، زمان بندی |
|
||||
| 🔏 **تطابق اثر انگشت CLI** | سفارش سرصفحه/بدنه هر ارائه دهنده برای مطابقت با امضاهای بومی CLI — در تنظیمات > امنیت، هر ارائه دهنده را تغییر دهید. **IP پروکسی شما حفظ می شود** |
|
||||
| 🤖 **داشبورد نمایندگان ACP** | اشکال زدایی › صفحه نمایندگان - شبکه ای از 14 عامل با وضعیت نصب، نسخه، فرم عامل سفارشی برای هر ابزار CLI. **کاربران OpenCode** دکمه "دانلود opencode.json" را دریافت می کنند که به طور خودکار یک پیکربندی آماده برای استفاده را با همه مدل های موجود ایجاد می کند. |
|
||||
| 🔧 **مدل سفارشی `apiFormat` مسیریابی** | مدلهای سفارشی با `apiFormat: "responses"` اکنون به درستی به مترجم Responses API میروند |
|
||||
| 🏢 **Codex جداسازی فضای کاری** | چندین فضای کاری Codex در هر ایمیل — OAuth به درستی اتصالات را با شناسه فضای کاری جدا می کند |
|
||||
| 🔄 **به روز رسانی خودکار الکترونیک** | برنامه دسکتاپ برای به روز رسانی ها + نصب خودکار در راه اندازی مجدد |
|
||||
| ویژگی | چه می کند |
|
||||
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 🎮 **مدل زمین بازی** | صفحه داشبورد برای آزمایش مستقیم هر مدل — ارائه دهنده/مدل/انتخاب کننده نقطه پایانی، ویرایشگر موناکو، پخش جریانی، لغو، زمان بندی |
|
||||
| 🔏 **تطابق اثر انگشت CLI** | سفارش سرصفحه/بدنه هر ارائه دهنده برای مطابقت با امضاهای بومی CLI — در تنظیمات > امنیت، هر ارائه دهنده را تغییر دهید. **IP پروکسی شما حفظ می شود** |
|
||||
| 🤖 **داشبورد نمایندگان ACP** | اشکال زدایی › صفحه نمایندگان - شبکه ای از 14 عامل با وضعیت نصب، نسخه، فرم عامل سفارشی برای هر ابزار CLI. **کاربران OpenCode** دکمه "دانلود opencode.json" را دریافت می کنند که به طور خودکار یک پیکربندی آماده برای استفاده را با همه مدل های موجود ایجاد می کند. |
|
||||
| 🔧 **مدل سفارشی `apiFormat` مسیریابی** | مدلهای سفارشی با `apiFormat: "responses"` اکنون به درستی به مترجم Responses API میروند |
|
||||
| 🏢 **Codex جداسازی فضای کاری** | چندین فضای کاری Codex در هر ایمیل — OAuth به درستی اتصالات را با شناسه فضای کاری جدا می کند |
|
||||
| 🔄 **به روز رسانی خودکار الکترونیک** | برنامه دسکتاپ برای به روز رسانی ها + نصب خودکار در راه اندازی مجدد |
|
||||
|
||||
### 🤖 عملیات عامل و پروتکل (نسخه 2.0)
|
||||
|
||||
| ویژگی | چه می کند |
|
||||
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 🔧 **سرور MCP (107 ابزار)** | ابزار IDE/عامل از طریق 3 انتقال: stdio، SSE (`/api/mcp/sse`)، HTTP قابل جریان (`/api/mcp/stream`). 107 ابزار منحصر به فرد در میان خانواده ابزارهای ثبت شده؛ مهارتهای فعال ممکن است ابزارهای پویا را در زمان اجرا اضافه کنند |
|
||||
| 🤝 **سرور A2A (JSON-RPC + SSE)** | اجرای کار عامل به عامل با همگام سازی و جریان های جریانی |
|
||||
| 🧭 **صفحه نقاط پایانی تلفیقی** | صفحه مدیریت زبانهدار با برگههای Endpoint Proxy، MCP، A2A، و API Endpoints |
|
||||
| 🎚️ **سرویس فعال/غیرفعال کردن ضامن ها** | کلیدهای روشن/خاموش برای MCP و A2A با تداوم تنظیمات (پیشفرض: OFF) |
|
||||
| 🛰️ **MCP زمان اجرا Heartbeat** | وضعیت واقعی فرآیند (pid، uptime، سن ضربان قلب، حمل و نقل، حالت دامنه) |
|
||||
| 📋 **MCP مسیر حسابرسی** | گزارش های حسابرسی قابل فیلتر با موفقیت/شکست و اسناد کلیدی |
|
||||
| 🔐 ** MCP Scope Enforcement ** | 32 مجوز granular scope برای دسترسی به ابزار کنترل شده |
|
||||
| 📡 **A2A مدیریت چرخه حیات وظیفه** | فهرست/فیلتر کردن وظایف، بازرسی رویدادها/مصنوعات، لغو وظایف در حال اجرا |
|
||||
| 📋 **کشف کارت نماینده** | `/.well-known/agent.json` برای کشف خودکار مشتری |
|
||||
| 🧪 **آرنج تست پروتکل E2E** | Real MCP SDK + A2A کلاینت در `test:protocols:e2e` جریان می یابد |
|
||||
| ⚙️ **کنترل های عملیاتی** | جابجایی ترکیبها، تنظیم تنظیمات انعطافپذیری و بررسی وضعیت شکن از سطوح اختصاصی Health و Settings |
|
||||
| ویژگی | چه می کند |
|
||||
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 🔧 **سرور MCP (107 ابزار)** | ابزار IDE/عامل از طریق 3 انتقال: stdio، SSE (`/api/mcp/sse`)، HTTP قابل جریان (`/api/mcp/stream`). 107 ابزار منحصر به فرد در میان خانواده ابزارهای ثبت شده؛ مهارتهای فعال ممکن است ابزارهای پویا را در زمان اجرا اضافه کنند |
|
||||
| 🤝 **سرور A2A (JSON-RPC + SSE)** | اجرای کار عامل به عامل با همگام سازی و جریان های جریانی |
|
||||
| 🧭 **صفحه نقاط پایانی تلفیقی** | صفحه مدیریت زبانهدار با برگههای Endpoint Proxy، MCP، A2A، و API Endpoints |
|
||||
| 🎚️ **سرویس فعال/غیرفعال کردن ضامن ها** | کلیدهای روشن/خاموش برای MCP و A2A با تداوم تنظیمات (پیشفرض: OFF) |
|
||||
| 🛰️ **MCP زمان اجرا Heartbeat** | وضعیت واقعی فرآیند (pid، uptime، سن ضربان قلب، حمل و نقل، حالت دامنه) |
|
||||
| 📋 **MCP مسیر حسابرسی** | گزارش های حسابرسی قابل فیلتر با موفقیت/شکست و اسناد کلیدی |
|
||||
| 🔐 ** MCP Scope Enforcement ** | 32 مجوز granular scope برای دسترسی به ابزار کنترل شده |
|
||||
| 📡 **A2A مدیریت چرخه حیات وظیفه** | فهرست/فیلتر کردن وظایف، بازرسی رویدادها/مصنوعات، لغو وظایف در حال اجرا |
|
||||
| 📋 **کشف کارت نماینده** | `/.well-known/agent.json` برای کشف خودکار مشتری |
|
||||
| 🧪 **آرنج تست پروتکل E2E** | Real MCP SDK + A2A کلاینت در `test:protocols:e2e` جریان می یابد |
|
||||
| ⚙️ **کنترل های عملیاتی** | جابجایی ترکیبها، تنظیم تنظیمات انعطافپذیری و بررسی وضعیت شکن از سطوح اختصاصی Health و Settings |
|
||||
|
||||
### 🧠 مسیریابی و هوشمندی
|
||||
|
||||
| ویژگی | چه می کند |
|
||||
| ---------------------------------- | ------------------------------------------------------------------------ |
|
||||
| 🎯 **هوشمند 4 طبقه بازگشتی ** | مسیر خودکار: اشتراک → کلید API → ارزان → رایگان |
|
||||
| 📊 **ردیابی سهمیه بی درنگ** | تعداد توکن زنده + بازنشانی شمارش معکوس برای هر ارائه دهنده |
|
||||
| 🔄 **ترجمه فرمت** | OpenAI ↔ Claude ↔ Gemini ↔ پاسخ با تبدیل های ایمن طرحواره |
|
||||
| 👥 **پشتیبانی چند حساب ** | چندین حساب در هر ارائه دهنده با انتخاب هوشمند |
|
||||
| 🔄 **بازسازی خودکار توکن** | توکن های OAuth به طور خودکار با تلاش مجدد |
|
||||
| 🎨 **ترکیب های سفارشی** | 13 استراتژی متعادل سازی + کنترل زنجیره ای بازگشتی |
|
||||
| 🔗 **رله زمینه** | وقتی چرخش حساب در اواسط جلسه اتفاق میافتد، تداوم جلسه ارسال میشود |
|
||||
| 🌐 **روتر Wildcard** | مسیریابی پویا `provider/*` |
|
||||
| 🧠 **تفکر کنترل های بودجه ** | محدودیت های استدلال گذرا، خودکار، سفارشی و تطبیقی |
|
||||
| 🔀 **نام مستعار مدل** | داخلی + مدل سفارشی نامگذاری و امنیت مهاجرت |
|
||||
| ⚡ **تخریب پس زمینه** | مسیریابی وظایف پس زمینه با اولویت پایین به مدل های ارزان تر |
|
||||
| 🧪 **مسیریابی هوشمند Task-Aware** | انتخاب خودکار مدل بر اساس نوع محتوا (کدگذاری/دید/تحلیل/خلاصه) |
|
||||
| 🔄 ** گردش کار نماینده A2A ** | ارکستراتور قطعی FSM برای اجرای چند مرحله ای عامل |
|
||||
| 🔀 **مسیریابی تطبیقی** | نادیده گرفتن استراتژی پویا بر اساس حجم توکن و پیچیدگی سریع |
|
||||
| 🎲 **تنوع ارائه دهنده** | توزیع ترافیک خودکار ترکیبی متعادل کننده امتیاز آنتروپی شانون |
|
||||
| 💬 **تزریق سریع سیستم** | کنترل های رفتار جهانی به طور مداوم اعمال می شود |
|
||||
| 📄 **پاسخ ها سازگاری API ** | پشتیبانی کامل از `/v1/responses` برای Codex و گردش کار نمایندگی پیشرفته |
|
||||
| ویژگی | چه می کند |
|
||||
| --------------------------------- | ----------------------------------------------------------------------- |
|
||||
| 🎯 **هوشمند 4 طبقه بازگشتی ** | مسیر خودکار: اشتراک → کلید API → ارزان → رایگان |
|
||||
| 📊 **ردیابی سهمیه بی درنگ** | تعداد توکن زنده + بازنشانی شمارش معکوس برای هر ارائه دهنده |
|
||||
| 🔄 **ترجمه فرمت** | OpenAI ↔ Claude ↔ Gemini ↔ پاسخ با تبدیل های ایمن طرحواره |
|
||||
| 👥 **پشتیبانی چند حساب ** | چندین حساب در هر ارائه دهنده با انتخاب هوشمند |
|
||||
| 🔄 **بازسازی خودکار توکن** | توکن های OAuth به طور خودکار با تلاش مجدد |
|
||||
| 🎨 **ترکیب های سفارشی** | 13 استراتژی متعادل سازی + کنترل زنجیره ای بازگشتی |
|
||||
| 🔗 **رله زمینه** | وقتی چرخش حساب در اواسط جلسه اتفاق میافتد، تداوم جلسه ارسال میشود |
|
||||
| 🌐 **روتر Wildcard** | مسیریابی پویا `provider/*` |
|
||||
| 🧠 **تفکر کنترل های بودجه ** | محدودیت های استدلال گذرا، خودکار، سفارشی و تطبیقی |
|
||||
| 🔀 **نام مستعار مدل** | داخلی + مدل سفارشی نامگذاری و امنیت مهاجرت |
|
||||
| ⚡ **تخریب پس زمینه** | مسیریابی وظایف پس زمینه با اولویت پایین به مدل های ارزان تر |
|
||||
| 🧪 **مسیریابی هوشمند Task-Aware** | انتخاب خودکار مدل بر اساس نوع محتوا (کدگذاری/دید/تحلیل/خلاصه) |
|
||||
| 🔄 ** گردش کار نماینده A2A ** | ارکستراتور قطعی FSM برای اجرای چند مرحله ای عامل |
|
||||
| 🔀 **مسیریابی تطبیقی** | نادیده گرفتن استراتژی پویا بر اساس حجم توکن و پیچیدگی سریع |
|
||||
| 🎲 **تنوع ارائه دهنده** | توزیع ترافیک خودکار ترکیبی متعادل کننده امتیاز آنتروپی شانون |
|
||||
| 💬 **تزریق سریع سیستم** | کنترل های رفتار جهانی به طور مداوم اعمال می شود |
|
||||
| 📄 **پاسخ ها سازگاری API ** | پشتیبانی کامل از `/v1/responses` برای Codex و گردش کار نمایندگی پیشرفته |
|
||||
|
||||
### 🎵 API های چند وجهی
|
||||
|
||||
| ویژگی | چه می کند |
|
||||
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 🖼️ **تولید تصویر** | `/v1/images/generations` با ابر و باطن محلی |
|
||||
| 📐 **جاسازی ها** | `/v1/embeddings` برای جستجو و خطوط لوله RAG |
|
||||
| 🎤 **رونویسی صوتی** | `/v1/audio/transcriptions` — 7 ارائه دهنده (Deepgram Nova 3، AssemblyAI، Groq Whisper، HuggingFace، ElevenLabs، OpenAI، Azure)، تشخیص خودکار زبان، پشتیبانی MP4/MP3/WAV |
|
||||
| 🔊 **متن به گفتار** | `/v1/audio/speech` — 10 ارائه دهنده (ElevenLabs، OpenAI، Deepgram، Cartesia، PlayHT، HuggingFace، Nvidia NIM، Inworld، Coqui، Tortoise) با پیام های خطای صحیح |
|
||||
| 🎬 **نسل ویدیو** | `/v1/videos/generations` (گردش های کاری ComfyUI + SD WebUI) |
|
||||
| 🎵 **نسل موسیقی** | `/v1/music/generations` (جریان کاری ComfyUI) |
|
||||
| 🛡️ **اعتدال ** | `/v1/moderations` بررسی های ایمنی |
|
||||
| 🔀 **رتبه بندی مجدد ** | `/v1/rerank` برای امتیازدهی مرتبط |
|
||||
| 🔍 **جستجوی وب** 🆕 | `/v1/search` — 5 ارائه دهنده (Serper، Brave، Perplexity، Exa، Tavily)، بیش از 6500 رایگان در ماه، خودکار failover، کش |
|
||||
| ویژگی | چه می کند |
|
||||
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 🖼️ **تولید تصویر** | `/v1/images/generations` با ابر و باطن محلی |
|
||||
| 📐 **جاسازی ها** | `/v1/embeddings` برای جستجو و خطوط لوله RAG |
|
||||
| 🎤 **رونویسی صوتی** | `/v1/audio/transcriptions` — 7 ارائه دهنده (Deepgram Nova 3، AssemblyAI، Groq Whisper، HuggingFace، ElevenLabs، OpenAI، Azure)، تشخیص خودکار زبان، پشتیبانی MP4/MP3/WAV |
|
||||
| 🔊 **متن به گفتار** | `/v1/audio/speech` — 10 ارائه دهنده (ElevenLabs، OpenAI، Deepgram، Cartesia، PlayHT، HuggingFace، Nvidia NIM، Inworld، Coqui، Tortoise) با پیام های خطای صحیح |
|
||||
| 🎬 **نسل ویدیو** | `/v1/videos/generations` (گردش های کاری ComfyUI + SD WebUI) |
|
||||
| 🎵 **نسل موسیقی** | `/v1/music/generations` (جریان کاری ComfyUI) |
|
||||
| 🛡️ **اعتدال ** | `/v1/moderations` بررسی های ایمنی |
|
||||
| 🔀 **رتبه بندی مجدد ** | `/v1/rerank` برای امتیازدهی مرتبط |
|
||||
| 🔍 **جستجوی وب** 🆕 | `/v1/search` — 5 ارائه دهنده (Serper، Brave، Perplexity، Exa، Tavily)، بیش از 6500 رایگان در ماه، خودکار failover، کش |
|
||||
|
||||
### 🛡️ تاب آوری، امنیت و حکمرانی
|
||||
|
||||
| ویژگی | چه می کند |
|
||||
| ----------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
||||
| 🔌 **ارائه دهنده مدار شکن** | سفر/بازیابی در سراسر ارائه دهنده پس از خستگی مجدد با آستانه های قابل تنظیم |
|
||||
| 🔒 **قفل سهمیه روزانه** 🆕 | سیگنال های خستگی را تشخیص می دهد و مسیر را برای مدل خاص تا نیمه شب قفل می کند |
|
||||
| 🎯 **مدل های آگاه از نقطه پایانی** | مدل های سفارشی نقاط پایانی پشتیبانی شده + قالب API |
|
||||
| 🛡️ **گله ضد رعد** | محافظتهای Mutex + سمافور در رویدادهای امتحان مجدد/نرخ دادن |
|
||||
| 🧠 ** کش معنایی + امضا ** | کاهش هزینه/تأخیر با دو لایه کش |
|
||||
| ⚡ **درخواست عدم توانمندی** | پنجره حفاظتی تکراری |
|
||||
| 🔒 **تقلب اثر انگشت TLS** | اثر انگشت TLS شبیه مرورگر — **تشخیص ربات و پرچم گذاری حساب را کاهش می دهد** |
|
||||
| 🔏 **تطابق اثر انگشت CLI** | با امضاهای درخواستی CLI بومی مطابقت دارد — **با حفظ IP پروکسی خطر ممنوعیت را کاهش می دهد** |
|
||||
| 🌐 **فیلتر IP** | کنترل لیست مجاز/فهرست مسدود برای استقرارهای در معرض |
|
||||
| 🚦 **درخواست صف و سرعت** | قابل تنظیم سطل درخواست در هر اتصال برای RPM، فاصله، همزمانی، و حداکثر انتظار |
|
||||
| 📉 **تحقیر برازنده** | قابلیت چندلایه بازگشتی برای محافظت از عملیات دروازه اصلی |
|
||||
| 📜 **پیکربندی مسیر حسابرسی** | ردیابی تغییر مبتنی بر تفاوت که از رانش عملیاتی با برگشتهای ساده جلوگیری میکند |
|
||||
| ⏳ **همگام سازی ارائه دهنده سلامت** | پیشگیرانه نظارت بر انقضای توکن هشدارهای راه اندازی قبل از خرابی مجوز |
|
||||
| ❄️ **خنک کننده اتصال** | خطاهای 408/429/5xx قابل امتحان مجدد یک اتصال را با نکات بالادستی اختیاری خنک می کند |
|
||||
| 🚪 ** غیرفعال کردن خودکار حساب های ممنوعه ** | حسابهای توکن مسدود شده برای همیشه بهطور خودکار غیرفعال میشوند |
|
||||
| 🔑 **API کلید مدیریت + محدوده** | کنترل ایمن صدور/چرخش کلید و مدل/ارائه دهنده |
|
||||
| 👁️ **نمایش کلید API با محدوده** 🆕 | بازیابی کلیدهای API از طریق `ALLOW_API_KEY_REVEAL` |
|
||||
| 🛡️ **محافظت شده `/models`** | درگاه تأیید اختیاری و مخفی کردن ارائه دهنده برای کاتالوگ مدل |
|
||||
| 🛡️ ** واکشی ایمن خروجی** 🆕 | واکشی محافظت شده برای تماس های ارائه دهنده — URL های خصوصی/محلی را مسدود می کند، تلاش های مجدد، حفاظت SSRF |
|
||||
| ⏳ **منتظر خنک شدن باشید** 🆕 | سعی مجدد خودکار چت پس از خنک شدن اتصال. قابل تنظیم `enabled`، `maxRetries`، و `maxRetryWaitSec` |
|
||||
| 🔍 **Runtime Env Validation** 🆕 | اعتبار سنجی طرحواره env مبتنی بر Zod در هنگام راه اندازی با پیام های خطای قابل اجرا |
|
||||
| 📋 **ممیزی انطباق v2** 🆕 | صفحه بندی، زمینه درخواست، رویدادهای احراز هویت، ارائه دهنده CRUD، و ورود به سیستم مسدود شده با SSRF |
|
||||
| ویژگی | چه می کند |
|
||||
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
||||
| 🔌 **ارائه دهنده مدار شکن** | سفر/بازیابی در سراسر ارائه دهنده پس از خستگی مجدد با آستانه های قابل تنظیم |
|
||||
| 🔒 **قفل سهمیه روزانه** 🆕 | سیگنال های خستگی را تشخیص می دهد و مسیر را برای مدل خاص تا نیمه شب قفل می کند |
|
||||
| 🎯 **مدل های آگاه از نقطه پایانی** | مدل های سفارشی نقاط پایانی پشتیبانی شده + قالب API |
|
||||
| 🛡️ **گله ضد رعد** | محافظتهای Mutex + سمافور در رویدادهای امتحان مجدد/نرخ دادن |
|
||||
| 🧠 ** کش معنایی + امضا ** | کاهش هزینه/تأخیر با دو لایه کش |
|
||||
| ⚡ **درخواست عدم توانمندی** | پنجره حفاظتی تکراری |
|
||||
| 🔒 **تقلب اثر انگشت TLS** | اثر انگشت TLS شبیه مرورگر — **تشخیص ربات و پرچم گذاری حساب را کاهش می دهد** |
|
||||
| 🔏 **تطابق اثر انگشت CLI** | با امضاهای درخواستی CLI بومی مطابقت دارد — **با حفظ IP پروکسی خطر ممنوعیت را کاهش می دهد** |
|
||||
| 🌐 **فیلتر IP** | کنترل لیست مجاز/فهرست مسدود برای استقرارهای در معرض |
|
||||
| 🚦 **درخواست صف و سرعت** | قابل تنظیم سطل درخواست در هر اتصال برای RPM، فاصله، همزمانی، و حداکثر انتظار |
|
||||
| 📉 **تحقیر برازنده** | قابلیت چندلایه بازگشتی برای محافظت از عملیات دروازه اصلی |
|
||||
| 📜 **پیکربندی مسیر حسابرسی** | ردیابی تغییر مبتنی بر تفاوت که از رانش عملیاتی با برگشتهای ساده جلوگیری میکند |
|
||||
| ⏳ **همگام سازی ارائه دهنده سلامت** | پیشگیرانه نظارت بر انقضای توکن هشدارهای راه اندازی قبل از خرابی مجوز |
|
||||
| ❄️ **خنک کننده اتصال** | خطاهای 408/429/5xx قابل امتحان مجدد یک اتصال را با نکات بالادستی اختیاری خنک می کند |
|
||||
| 🚪 ** غیرفعال کردن خودکار حساب های ممنوعه ** | حسابهای توکن مسدود شده برای همیشه بهطور خودکار غیرفعال میشوند |
|
||||
| 🔑 **API کلید مدیریت + محدوده** | کنترل ایمن صدور/چرخش کلید و مدل/ارائه دهنده |
|
||||
| 👁️ **نمایش کلید API با محدوده** 🆕 | بازیابی کلیدهای API از طریق `ALLOW_API_KEY_REVEAL` |
|
||||
| 🛡️ **محافظت شده `/models`** | درگاه تأیید اختیاری و مخفی کردن ارائه دهنده برای کاتالوگ مدل |
|
||||
| 🛡️ ** واکشی ایمن خروجی** 🆕 | واکشی محافظت شده برای تماس های ارائه دهنده — URL های خصوصی/محلی را مسدود می کند، تلاش های مجدد، حفاظت SSRF |
|
||||
| ⏳ **منتظر خنک شدن باشید** 🆕 | سعی مجدد خودکار چت پس از خنک شدن اتصال. قابل تنظیم `enabled`، `maxRetries`، و `maxRetryWaitSec` |
|
||||
| 🔍 **Runtime Env Validation** 🆕 | اعتبار سنجی طرحواره env مبتنی بر Zod در هنگام راه اندازی با پیام های خطای قابل اجرا |
|
||||
| 📋 **ممیزی انطباق v2** 🆕 | صفحه بندی، زمینه درخواست، رویدادهای احراز هویت، ارائه دهنده CRUD، و ورود به سیستم مسدود شده با SSRF |
|
||||
|
||||
### 📊 قابلیت مشاهده و تجزیه و تحلیل
|
||||
|
||||
| ویژگی | چه می کند |
|
||||
| -------------------------------- | ----------------------------------------------------- |
|
||||
| 📝 **درخواست + ثبت پروکسی** | درخواست/پاسخ کامل و ثبت پروکسی |
|
||||
| 📉 **گزارشهای تفصیلی جریانی** | جریان های بار محموله SSE را به طور تمیز در UI بازسازی می کند |
|
||||
| 🏷️ **نشان های مدل بلادرنگ ** 🆕 | وضعیت مدل زنده و تایمرهای شمارش معکوس سهمیه روزانه |
|
||||
| 📋 **داشبورد گزارش های یکپارچه** | نماهای درخواست، پروکسی، ممیزی و کنسول در یک صفحه |
|
||||
| 🔍 **درخواست تله متری** | تأخیر p50/p95/p99 و ردیابی درخواست |
|
||||
| 🏥 **داشبورد سلامت** | Uptime، حالت های قطع کننده، قفل ها، آمار حافظه پنهان |
|
||||
| 💰 **پیگیری هزینه** | کنترل های بودجه و مشاهده قیمت گذاری هر مدل |
|
||||
| 📈 **تجسم های تحلیلی** | بینش استفاده از مدل/ارائه دهنده و نماهای روند |
|
||||
| 🧪 **چارچوب ارزشیابی** | تست مجموعه طلایی با استراتژی های تطبیق قابل تنظیم |
|
||||
| 📡 **تشخیص زنده** 🆕 | دور زدن حافظه پنهان معنایی برای آزمایش زنده ترکیبی دقیق |
|
||||
| 🔐 **TPS Log Metric** 🆕 | نشان توکن در ثانیه در جزئیات گزارش معین |
|
||||
| ویژگی | چه می کند |
|
||||
| -------------------------------- | ------------------------------------------------------------ |
|
||||
| 📝 **درخواست + ثبت پروکسی** | درخواست/پاسخ کامل و ثبت پروکسی |
|
||||
| 📉 **گزارشهای تفصیلی جریانی** | جریان های بار محموله SSE را به طور تمیز در UI بازسازی می کند |
|
||||
| 🏷️ **نشان های مدل بلادرنگ ** 🆕 | وضعیت مدل زنده و تایمرهای شمارش معکوس سهمیه روزانه |
|
||||
| 📋 **داشبورد گزارش های یکپارچه** | نماهای درخواست، پروکسی، ممیزی و کنسول در یک صفحه |
|
||||
| 🔍 **درخواست تله متری** | تأخیر p50/p95/p99 و ردیابی درخواست |
|
||||
| 🏥 **داشبورد سلامت** | Uptime، حالت های قطع کننده، قفل ها، آمار حافظه پنهان |
|
||||
| 💰 **پیگیری هزینه** | کنترل های بودجه و مشاهده قیمت گذاری هر مدل |
|
||||
| 📈 **تجسم های تحلیلی** | بینش استفاده از مدل/ارائه دهنده و نماهای روند |
|
||||
| 🧪 **چارچوب ارزشیابی** | تست مجموعه طلایی با استراتژی های تطبیق قابل تنظیم |
|
||||
| 📡 **تشخیص زنده** 🆕 | دور زدن حافظه پنهان معنایی برای آزمایش زنده ترکیبی دقیق |
|
||||
| 🔐 **TPS Log Metric** 🆕 | نشان توکن در ثانیه در جزئیات گزارش معین |
|
||||
|
||||
### ☁️ استقرار و پلتفرم
|
||||
|
||||
| ویژگی | چه می کند |
|
||||
| ------------------------------ | --------------------------------------------------------------------- |
|
||||
| 🌐 **استقرار در هر کجا ** | Localhost، VPS، Docker، محیط های ابری |
|
||||
| 🚇 **Cloudflare تونل** 🆕 | ادغام Quick Tunnel با یک کلیک از داشبورد |
|
||||
| 🔑 ** فیلتر مدل کلید API ** | پاسخ بومی /v1/models از طریق نقشهای زمینه حامل اختصاص داده شده فیلتر شده است
|
||||
| ⚡ **عملیات کش هوشمند** | اکتشافی TTL قابل تنظیم و کنترل های بازیابی اجباری |
|
||||
| 🔄 **پشتیبان گیری/بازیابی** | صادرات/واردات و جریان های بازیابی بلایا |
|
||||
| 🧙 **جادوگر سوار شدن** | راه اندازی هدایت شده در اولین اجرا |
|
||||
| 🔧 **CLI Tools Dashboard ** | راه اندازی با یک کلیک برای ابزارهای کدنویسی محبوب |
|
||||
| 🎮 **مدل زمین بازی** | هر ارائه دهنده/مدل/نقطه پایانی را از داشبورد تست کنید |
|
||||
| 🔏 **ضامن اثر انگشت CLI** | مطابقت اثر انگشت هر ارائه دهنده در تنظیمات > امنیت |
|
||||
| 🌐 **i18n (30 زبان)** | داشبورد کامل + پشتیبانی از زبان اسناد با پوشش RTL |
|
||||
| 🧹 **پاک کردن همه مدل ها** | پاک کردن لیست مدل با یک کلیک در جزئیات ارائه دهنده |
|
||||
| 👁️ **کنترل های نوار کناری** 🆕 | مخفی کردن اجزا و ادغام ها از تنظیمات ظاهر |
|
||||
| 📋 **نمونه های شماره** | الگوهای استاندارد GitHub برای اشکالات و ویژگی ها |
|
||||
| 📂 **دایرکتوری داده های سفارشی** | لغو `DATA_DIR` برای مکان ذخیره سازی |
|
||||
| 🌐 **V1 WebSocket Bridge** 🆕 | ترافیک OpenAI سازگار با WebSocket پروکسی شده از طریق `/v1/ws` |
|
||||
| 🔑 **همگام سازی توکن ها و بسته ها** 🆕 | پیکربندی نشانههای همگامسازی + نسخه نهایی بسته نرمافزاری با پشتیبانی ETag |
|
||||
| ویژگی | چه می کند |
|
||||
| -------------------------------------- | ----------------------------------------------------------------------------- |
|
||||
| 🌐 **استقرار در هر کجا ** | Localhost، VPS، Docker، محیط های ابری |
|
||||
| 🚇 **Cloudflare تونل** 🆕 | ادغام Quick Tunnel با یک کلیک از داشبورد |
|
||||
| 🔑 ** فیلتر مدل کلید API ** | پاسخ بومی /v1/models از طریق نقشهای زمینه حامل اختصاص داده شده فیلتر شده است |
|
||||
| ⚡ **عملیات کش هوشمند** | اکتشافی TTL قابل تنظیم و کنترل های بازیابی اجباری |
|
||||
| 🔄 **پشتیبان گیری/بازیابی** | صادرات/واردات و جریان های بازیابی بلایا |
|
||||
| 🧙 **جادوگر سوار شدن** | راه اندازی هدایت شده در اولین اجرا |
|
||||
| 🔧 **CLI Tools Dashboard ** | راه اندازی با یک کلیک برای ابزارهای کدنویسی محبوب |
|
||||
| 🎮 **مدل زمین بازی** | هر ارائه دهنده/مدل/نقطه پایانی را از داشبورد تست کنید |
|
||||
| 🔏 **ضامن اثر انگشت CLI** | مطابقت اثر انگشت هر ارائه دهنده در تنظیمات > امنیت |
|
||||
| 🌐 **i18n (30 زبان)** | داشبورد کامل + پشتیبانی از زبان اسناد با پوشش RTL |
|
||||
| 🧹 **پاک کردن همه مدل ها** | پاک کردن لیست مدل با یک کلیک در جزئیات ارائه دهنده |
|
||||
| 👁️ **کنترل های نوار کناری** 🆕 | مخفی کردن اجزا و ادغام ها از تنظیمات ظاهر |
|
||||
| 📋 **نمونه های شماره** | الگوهای استاندارد GitHub برای اشکالات و ویژگی ها |
|
||||
| 📂 **دایرکتوری داده های سفارشی** | لغو `DATA_DIR` برای مکان ذخیره سازی |
|
||||
| 🌐 **V1 WebSocket Bridge** 🆕 | ترافیک OpenAI سازگار با WebSocket پروکسی شده از طریق `/v1/ws` |
|
||||
| 🔑 **همگام سازی توکن ها و بسته ها** 🆕 | پیکربندی نشانههای همگامسازی + نسخه نهایی بسته نرمافزاری با پشتیبانی ETag |
|
||||
|
||||
### ویژگی Deep Dive
|
||||
|
||||
@@ -1541,12 +1541,12 @@ OmniRoute شامل یک چارچوب ارزیابی داخلی برای آزما
|
||||
|
||||
### استراتژی های ارزیابی
|
||||
|
||||
| استراتژی | توضیحات | مثال |
|
||||
| ---------- | ------------------------------------------------ | -------------------------------- |
|
||||
| `exact` | خروجی باید دقیقاً مطابقت داشته باشد | `"4"` |
|
||||
| `contains` | خروجی باید حاوی رشته فرعی (بدون حساس به بزرگی) | `"Paris"` |
|
||||
| `regex` | خروجی باید با الگوی regex مطابقت داشته باشد | `"1.*2.*3"` |
|
||||
| `custom` | تابع JS سفارشی true/false | `(output) => output.length > 10` |
|
||||
| استراتژی | توضیحات | مثال |
|
||||
| ---------- | ---------------------------------------------- | -------------------------------- |
|
||||
| `exact` | خروجی باید دقیقاً مطابقت داشته باشد | `"4"` |
|
||||
| `contains` | خروجی باید حاوی رشته فرعی (بدون حساس به بزرگی) | `"Paris"` |
|
||||
| `regex` | خروجی باید با الگوی regex مطابقت داشته باشد | `"1.*2.*3"` |
|
||||
| `custom` | تابع JS سفارشی true/false | `(output) => output.length > 10` |
|
||||
|
||||
---
|
||||
|
||||
@@ -2119,25 +2119,25 @@ Google اکنون به درستی به `https://your-server.com/callback` تغی
|
||||
|
||||
## مستندات
|
||||
|
||||
| سند | توضیحات |
|
||||
| --------------------------------------------------------------------- | --------------------------------------------------- |
|
||||
| [راهنمای کاربر](docs/guides/USER_GUIDE.md) | ارائه دهندگان، ترکیب، یکپارچه سازی CLI، استقرار |
|
||||
| [مرجع API](docs/reference/API_REFERENCE.md) | تمام نقاط پایانی با مثال |
|
||||
| [سرور MCP](open-sse/mcp-server/README.md) | 107 ابزار MCP، تنظیمات IDE، کلاینت های Python/TS/Go |
|
||||
| [سرور A2A](src/lib/a2a/README.md) | پروتکل JSON-RPC 2.0، مهارت ها، جریان، وظیفه mgmt |
|
||||
| [موتور ترکیبی خودکار](docs/auto-combo.md) | امتیاز دهی 13 عاملی، بسته های حالت، خوددرمانی |
|
||||
| [رله زمینه](docs/features/context-relay.md) | استراتژی انتقال جلسه برای چرخش حساب |
|
||||
| [عیب یابی](docs/guides/TROUBLESHOOTING.md) | مشکلات و راه حل های رایج |
|
||||
| [معماری](docs/architecture/ARCHITECTURE.md) | معماری سیستم و قطعات داخلی |
|
||||
| [اسناد پایگاه کد](docs/architecture/CODEBASE_DOCUMENTATION.md) | راهنمای مبتدی مبتدی پایه کد |
|
||||
| [راهنمای حذف نصب](docs/guides/UNINSTALL.md) | حذف پاک برای همه روش های نصب |
|
||||
| [پیکربندی محیط](docs/reference/ENVIRONMENT.md) | تکمیل متغیرها و مراجع `.env` |
|
||||
| [مشارکت](CONTRIBUTING.md) | راه اندازی و دستورالعمل های توسعه |
|
||||
| [مشخصات OpenAPI](docs/reference/openapi.yaml) | مشخصات OpenAPI 3.0 |
|
||||
| [سیاست امنیتی](SECURITY.md) | گزارش آسیب پذیری و شیوه های امنیتی |
|
||||
| [استقرار VM](docs/ops/VM_DEPLOYMENT_GUIDE.md) | راهنمای کامل: راه اندازی VM + nginx + Cloudflare |
|
||||
| [گالری امکانات](docs/guides/FEATURES.md) | تور داشبورد بصری با اسکرین شات |
|
||||
| [چک لیست انتشار](docs/ops/RELEASE_CHECKLIST.md) | مراحل اعتبار سنجی پیش از انتشار |
|
||||
| سند | توضیحات |
|
||||
| -------------------------------------------------------------- | --------------------------------------------------- |
|
||||
| [راهنمای کاربر](docs/guides/USER_GUIDE.md) | ارائه دهندگان، ترکیب، یکپارچه سازی CLI، استقرار |
|
||||
| [مرجع API](docs/reference/API_REFERENCE.md) | تمام نقاط پایانی با مثال |
|
||||
| [سرور MCP](open-sse/mcp-server/README.md) | 107 ابزار MCP، تنظیمات IDE، کلاینت های Python/TS/Go |
|
||||
| [سرور A2A](src/lib/a2a/README.md) | پروتکل JSON-RPC 2.0، مهارت ها، جریان، وظیفه mgmt |
|
||||
| [موتور ترکیبی خودکار](docs/auto-combo.md) | امتیاز دهی 13 عاملی، بسته های حالت، خوددرمانی |
|
||||
| [رله زمینه](docs/features/context-relay.md) | استراتژی انتقال جلسه برای چرخش حساب |
|
||||
| [عیب یابی](docs/guides/TROUBLESHOOTING.md) | مشکلات و راه حل های رایج |
|
||||
| [معماری](docs/architecture/ARCHITECTURE.md) | معماری سیستم و قطعات داخلی |
|
||||
| [اسناد پایگاه کد](docs/architecture/CODEBASE_DOCUMENTATION.md) | راهنمای مبتدی مبتدی پایه کد |
|
||||
| [راهنمای حذف نصب](docs/guides/UNINSTALL.md) | حذف پاک برای همه روش های نصب |
|
||||
| [پیکربندی محیط](docs/reference/ENVIRONMENT.md) | تکمیل متغیرها و مراجع `.env` |
|
||||
| [مشارکت](CONTRIBUTING.md) | راه اندازی و دستورالعمل های توسعه |
|
||||
| [مشخصات OpenAPI](docs/reference/openapi.yaml) | مشخصات OpenAPI 3.0 |
|
||||
| [سیاست امنیتی](SECURITY.md) | گزارش آسیب پذیری و شیوه های امنیتی |
|
||||
| [استقرار VM](docs/ops/VM_DEPLOYMENT_GUIDE.md) | راهنمای کامل: راه اندازی VM + nginx + Cloudflare |
|
||||
| [گالری امکانات](docs/guides/FEATURES.md) | تور داشبورد بصری با اسکرین شات |
|
||||
| [چک لیست انتشار](docs/ops/RELEASE_CHECKLIST.md) | مراحل اعتبار سنجی پیش از انتشار |
|
||||
|
||||
---
|
||||
|
||||
@@ -2145,14 +2145,14 @@ Google اکنون به درستی به `https://your-server.com/callback` تغی
|
||||
|
||||
OmniRoute دارای **218+ ویژگی برنامه ریزی شده** در چندین فاز توسعه است. در اینجا مناطق کلیدی وجود دارد:
|
||||
|
||||
| دسته بندی | ویژگی های برنامه ریزی شده | نکات برجسته |
|
||||
| ----------------------------- | ---------------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| 🧠 **مسیریابی و هوشمندی** | 25+ | مسیریابی با کمترین تأخیر، مسیریابی مبتنی بر برچسب، پیش از پرواز سهمیه، P2C آگاه از سهمیه، مسیریابی ترکیبی مبتنی بر گام |
|
||||
| 🔒 **امنیت و انطباق** | 20+ | سخت شدن SSRF، پوشاندن اعتبار، نرخ محدود در نقطه پایانی، محدوده کلید مدیریت |
|
||||
| 📊 **قابلیت مشاهده** | 15+ | ادغام OpenTelemetry، نظارت بر سهمیه در زمان واقعی، سلامت هدف ترکیبی، ردیابی هزینه در هر مدل |
|
||||
| 🔄 **یکپارچه سازی ارائه دهنده** | 20+ | رجیستری مدل پویا، خنک کننده اتصال، چند حساب Codex، تجزیه سهمیه Copilot |
|
||||
| ⚡ **عملکرد** | 15+ | لایه کش دوگانه، کش سریع، حافظه پنهان پاسخ، جریان نگهدارنده، دسته ای API |
|
||||
| 🌐 **اکوسیستم** | 10+ | WebSocket API، پیکربندی بارگذاری مجدد داغ، فروشگاه پیکربندی توزیع شده، حالت تجاری |
|
||||
| دسته بندی | ویژگی های برنامه ریزی شده | نکات برجسته |
|
||||
| ------------------------------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
||||
| 🧠 **مسیریابی و هوشمندی** | 25+ | مسیریابی با کمترین تأخیر، مسیریابی مبتنی بر برچسب، پیش از پرواز سهمیه، P2C آگاه از سهمیه، مسیریابی ترکیبی مبتنی بر گام |
|
||||
| 🔒 **امنیت و انطباق** | 20+ | سخت شدن SSRF، پوشاندن اعتبار، نرخ محدود در نقطه پایانی، محدوده کلید مدیریت |
|
||||
| 📊 **قابلیت مشاهده** | 15+ | ادغام OpenTelemetry، نظارت بر سهمیه در زمان واقعی، سلامت هدف ترکیبی، ردیابی هزینه در هر مدل |
|
||||
| 🔄 **یکپارچه سازی ارائه دهنده** | 20+ | رجیستری مدل پویا، خنک کننده اتصال، چند حساب Codex، تجزیه سهمیه Copilot |
|
||||
| ⚡ **عملکرد** | 15+ | لایه کش دوگانه، کش سریع، حافظه پنهان پاسخ، جریان نگهدارنده، دسته ای API |
|
||||
| 🌐 **اکوسیستم** | 10+ | WebSocket API، پیکربندی بارگذاری مجدد داغ، فروشگاه پیکربندی توزیع شده، حالت تجاری |
|
||||
|
||||
### 🔜 به زودی
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 354 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 357 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
||||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **354 AI providers** with automatic format translation
|
||||
- **357 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
@@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool
|
||||
|
||||
## v3.8.x Highlights
|
||||
|
||||
- **354-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **357-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay`
|
||||
- **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown
|
||||
- **MCP server expanded to 110 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules)
|
||||
|
||||
@@ -93,28 +93,28 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -735,12 +735,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo.
|
||||
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — provider/account limits apply |
|
||||
| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — provider/account limits apply |
|
||||
| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — provider/account limits apply |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
|
||||
**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done.
|
||||
|
||||
@@ -1191,16 +1191,16 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | ------------------------------------------ |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
|
||||
### 🟢 QODER MODELS (Free PAT via qodercli)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ---------------------- | --------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-plus` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `deepseek-r1` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
@@ -1212,11 +1212,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🟡 QWEN MODELS (Device Code Auth)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | --------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `vision-model` | `qw/` | No published token cap | Multimodal; provider/account limits may apply |
|
||||
|
||||
### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 354 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 357 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
||||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **354 AI providers** with automatic format translation
|
||||
- **357 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
@@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool
|
||||
|
||||
## v3.8.x Highlights
|
||||
|
||||
- **354-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **357-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay`
|
||||
- **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown
|
||||
- **MCP server expanded to 110 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules)
|
||||
|
||||
@@ -93,28 +93,28 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -735,12 +735,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo.
|
||||
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — provider/account limits apply |
|
||||
| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — provider/account limits apply |
|
||||
| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — provider/account limits apply |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
|
||||
**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done.
|
||||
|
||||
@@ -1191,16 +1191,16 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | ------------------------------------------ |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
|
||||
### 🟢 QODER MODELS (Free PAT via qodercli)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ---------------------- | --------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-plus` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `deepseek-r1` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
@@ -1212,11 +1212,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🟡 QWEN MODELS (Device Code Auth)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | --------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `vision-model` | `qw/` | No published token cap | Multimodal; provider/account limits may apply |
|
||||
|
||||
### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 354 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 357 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
||||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **354 AI providers** with automatic format translation
|
||||
- **357 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
@@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool
|
||||
|
||||
## v3.8.x Highlights
|
||||
|
||||
- **354-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **357-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay`
|
||||
- **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown
|
||||
- **MCP server expanded to 110 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules)
|
||||
|
||||
@@ -93,28 +93,28 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -735,12 +735,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo.
|
||||
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — provider/account limits apply |
|
||||
| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — provider/account limits apply |
|
||||
| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — provider/account limits apply |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
|
||||
**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done.
|
||||
|
||||
@@ -1191,16 +1191,16 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | ------------------------------------------ |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
|
||||
### 🟢 QODER MODELS (Free PAT via qodercli)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ---------------------- | --------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-plus` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `deepseek-r1` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
@@ -1212,11 +1212,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🟡 QWEN MODELS (Device Code Auth)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | --------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `vision-model` | `qw/` | No published token cap | Multimodal; provider/account limits may apply |
|
||||
|
||||
### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 354 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 357 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
||||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **354 AI providers** with automatic format translation
|
||||
- **357 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
@@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool
|
||||
|
||||
## v3.8.x Highlights
|
||||
|
||||
- **354-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **357-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay`
|
||||
- **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown
|
||||
- **MCP server expanded to 110 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules)
|
||||
|
||||
@@ -93,28 +93,28 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -735,12 +735,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo.
|
||||
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — provider/account limits apply |
|
||||
| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — provider/account limits apply |
|
||||
| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — provider/account limits apply |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
|
||||
**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done.
|
||||
|
||||
@@ -1191,16 +1191,16 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | ------------------------------------------ |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
|
||||
### 🟢 QODER MODELS (Free PAT via qodercli)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ---------------------- | --------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-plus` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `deepseek-r1` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
@@ -1212,11 +1212,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🟡 QWEN MODELS (Device Code Auth)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | --------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `vision-model` | `qw/` | No published token cap | Multimodal; provider/account limits may apply |
|
||||
|
||||
### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
---
|
||||
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 354 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
> OmniRoute is a free, open-source AI Gateway that acts as a universal API proxy for multi-provider LLMs. It provides smart routing, automatic fallback, load balancing, and format translation across 357 AI providers — all through a single OpenAI-compatible endpoint. Includes a built-in MCP Server (110 tools), A2A v0.3 protocol, Memory/Skills systems, Cloud Agents (codex, cursor, devin, jules), Guardrails framework, and an Electron desktop app.
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -281,7 +281,7 @@ OmniRoute solves the problem of managing multiple AI provider subscriptions, quo
|
||||
## Key Features (v3.8.50)
|
||||
|
||||
### Core Proxy
|
||||
- **354 AI providers** with automatic format translation
|
||||
- **357 AI providers** with automatic format translation
|
||||
- **Provider categories**: Free (90+ free tiers), OAuth, API Key, Self-Hosted, Custom (OpenAI/Anthropic-compatible)
|
||||
- **18 routing strategies**: priority, weighted, round-robin, fill-first, p2c, random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp, context-optimized, context-relay, fusion, pipeline
|
||||
- **4-tier fallback**: Subscription → API Key → Cheap → Free
|
||||
@@ -479,7 +479,7 @@ diagnostics) plus **memory**, **skill**, **agentSkill**, **githubSkill**, **pool
|
||||
|
||||
## v3.8.x Highlights
|
||||
|
||||
- **354-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **357-provider catalog** with 90+ free tiers, one-click account imports, and bulk key add
|
||||
- **19 routing strategies** — including `fusion` (parallel panel + judge synthesis), `pipeline`, `reset-aware`, `reset-window`, `headroom`, and `context-relay`
|
||||
- **14-factor Auto-Combo scoring** with bandit exploration and progressive cooldown
|
||||
- **MCP server expanded to 110 tools / 33 scopes** (canonical + memory/skill/agentSkill/githubSkill/pool/notion/obsidian/localCorpus/gamification/plugin modules)
|
||||
|
||||
@@ -93,28 +93,28 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/HKUDS/nanobot">
|
||||
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="NanoBot" width="48"/><br/>
|
||||
<b>NanoBot</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 20.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/sipeed/picoclaw">
|
||||
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
||||
<img src="./public/providers/picoclaw.svg" alt="PicoClaw" width="48"/><br/>
|
||||
<b>PicoClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 14.6K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
||||
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="ZeroClaw" width="48"/><br/>
|
||||
<b>ZeroClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 9.9K</sub>
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/nearai/ironclaw">
|
||||
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="IronClaw" width="48"/><br/>
|
||||
<b>IronClaw</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 2.1K</sub>
|
||||
@@ -123,7 +123,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
<tr>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/anomalyco/opencode">
|
||||
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="OpenCode" width="48"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 106K</sub>
|
||||
@@ -144,7 +144,7 @@ _Connect any AI-powered IDE or CLI tool through OmniRoute — free-access AI gat
|
||||
</td>
|
||||
<td align="center" width="110">
|
||||
<a href="https://github.com/Kilo-Org/kilocode">
|
||||
<img src="./public/providers/kilocode.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<img src="../../../public/providers/cli-generic.svg" alt="Kilo Code" width="48"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</a><br/>
|
||||
<sub>⭐ 15.5K</sub>
|
||||
@@ -735,12 +735,12 @@ Outcome: deep fallback depth for deadline-critical workloads
|
||||
|
||||
> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo.
|
||||
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| Step | Action | Providers Unlocked |
|
||||
| ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — provider/account limits apply |
|
||||
| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — provider/account limits apply |
|
||||
| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — provider/account limits apply |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
| 4 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically |
|
||||
|
||||
**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done.
|
||||
|
||||
@@ -1191,16 +1191,16 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | --------------------- |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | ------------------------------------------ |
|
||||
| `claude-sonnet-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-haiku-4.5` | `kr/` | No published token cap | Provider/account limits may apply |
|
||||
| `claude-opus-4.6` | `kr/` | No published token cap | Latest Opus; provider/account limits apply |
|
||||
|
||||
### 🟢 QODER MODELS (Free PAT via qodercli)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ------------- | --------------- |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------ | ------ | ---------------------- | --------------------------------- |
|
||||
| `kimi-k2-thinking` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-plus` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
| `deepseek-r1` | `if/` | No published token cap | Provider/account limits may apply |
|
||||
@@ -1212,11 +1212,11 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
|
||||
|
||||
### 🟡 QWEN MODELS (Device Code Auth)
|
||||
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ------------- | ------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| Model | Prefix | Limit | Rate Limit |
|
||||
| ------------------- | ------ | ---------------------- | --------------------------------------------- |
|
||||
| `qwen3-coder-plus` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-flash` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `qwen3-coder-next` | `qw/` | No published token cap | Provider/account limits may apply |
|
||||
| `vision-model` | `qw/` | No published token cap | Multimodal; provider/account limits may apply |
|
||||
|
||||
### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
|
||||
|
||||