Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions open-sse/providers/registry/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,10 @@ import p118 from "./selfhosted-tts.js";
import p119 from "./selfhosted-embedding.js";
import p120 from "./fish-audio.js";
import p121 from "./alitp-intl.js";
import p122 from "./reasonix.js";
import p123 from "./ovh.js";
import p124 from "./joycode.js";
import p125 from "./openmodel.js";

export default [
p0,
Expand Down Expand Up @@ -243,4 +247,8 @@ export default [
p119,
p120,
p121,
p122,
p123,
p124,
p125,
];
31 changes: 31 additions & 0 deletions open-sse/providers/registry/joycode.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { CLAUDE_API_HEADERS } from "../shared.js";

export default {
id: "joycode",
priority: 122,
alias: "joycode",
uiAlias: "joycode",
display: {
name: "JD JoyCode",
icon: "code",
color: "#FF6B35",
textIcon: "JC",
website: "https://joycode.jd.com",
notice: {
apiKeyUrl: "https://joycode.jd.com/settings/api-keys",
},
},
category: "apikey",
transport: {
baseUrl: "https://api.joycode.jd.com/v1/chat/completions",
validateUrl: "https://api.joycode.jd.com/v1/models",
},
models: [
{ id: "joycode-v1", name: "JoyCode V1" },
{ id: "joycode-v1-code", name: "JoyCode V1 Code" },
],
features: {
usage: true,
usageApikey: true,
},
};
26 changes: 26 additions & 0 deletions open-sse/providers/registry/openmodel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
export default {
id: "openmodel",
priority: 100,
alias: "openmodel",
uiAlias: "openmodel",
display: {
name: "OpenModel.ai",
icon: "smart_toy",
color: "#7C3AED",
textIcon: "OM",
website: "https://openmodel.ai",
notice: {
apiKeyUrl: "https://openmodel.ai/settings/api-keys",
text: "OpenModel.ai uses the OpenAI Responses API format (/v1/responses). Compatible with Codex, Claude Code Responses mode.",
},
},
category: "apikey",
transport: {
baseUrl: "https://api.openmodel.ai/v1/chat/completions",
format: "openai",
},
models: [],
features: {
usage: true,
},
};
37 changes: 37 additions & 0 deletions open-sse/providers/registry/ovh.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { CLAUDE_API_HEADERS } from "../shared.js";

export default {
id: "ovh",
priority: 90,
hasFree: true,
alias: "ovh",
uiAlias: "ovh",
display: {
name: "OVH AI Endpoints",
icon: "cloud",
color: "#0078D4",
textIcon: "OV",
website: "https://ai.endpoints.ovh.com",
notice: {
text: "Free tier available with generous limits",
apiKeyUrl: "https://ai.endpoints.ovh.com/settings/api-keys",
},
},
category: "freeTier",
transport: {
baseUrl: "https://ai.endpoints.ovh.com/v1/chat/completions",
validateUrl: "https://ai.endpoints.ovh.com/v1/models",
},
models: [
{ id: "ovh/mistral-7b-instruct", name: "Mistral 7B Instruct" },
{ id: "ovh/llama-3-8b-instruct", name: "Llama 3 8B Instruct" },
{ id: "ovh/llama-3-70b-instruct", name: "Llama 3 70B Instruct" },
{ id: "ovh/mixtral-8x7b-instruct", name: "Mixtral 8x7B Instruct" },
{ id: "ovh/codellama-7b-instruct", name: "CodeLlama 7B Instruct" },
{ id: "ovh/codellama-34b-instruct", name: "CodeLlama 34B Instruct" },
],
features: {
usage: true,
usageApikey: true,
},
};
31 changes: 31 additions & 0 deletions open-sse/providers/registry/reasonix.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { CLAUDE_API_HEADERS } from "../shared.js";

export default {
id: "reasonix",
priority: 121,
alias: "reasonix",
uiAlias: "reasonix",
display: {
name: "Reasonix IDE",
icon: "psychology",
color: "#8B5CF6",
textIcon: "RX",
website: "https://reasonix.ai",
notice: {
apiKeyUrl: "https://platform.reasonix.ai/api-keys",
},
},
category: "apikey",
transport: {
baseUrl: "https://api.reasonix.ai/v1/chat/completions",
validateUrl: "https://api.reasonix.ai/v1/models",
},
models: [
{ id: "reasonix-v1", name: "Reasonix V1" },
{ id: "reasonix-v1-reasoning", name: "Reasonix V1 Reasoning" },
],
features: {
usage: true,
usageApikey: true,
},
};
30 changes: 30 additions & 0 deletions umbrel-app.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: 9router
version: "0.5.50"
description: "9Router — Local AI routing gateway. One OpenAI-compatible endpoint routes traffic across 40+ upstream providers with format translation, model-combo fallback, multi-account, and OAuth/usage tracking."
website: https://github.com/decolua/9router
submittable: true
tips:
github:
- decolua
support: https://github.com/decolua/9router/issues
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
release:
date: "2026-08-05"
version: "0.5.50"
container:
tungstenFabric: false
monorepo: false
anyArchitecture: false
buildTime: "30 minutes"
startTimeout: 60
restart: on-failure
uid: 1000
gid: 1000
build:
image: ""
dockerfile: ""
runners: []
prereqs: []