MODEL HUBSelf-hosted · single owner

CONTROL PLANE · NOT A GATEWAY

One control plane for every model your projects run.

Model Hub is a self-hosted, single-owner control plane. Register provider credentials once, maintain one catalog across five modalities, and assign models to projects many-to-many. Each project pulls its own projection with a token — then calls the provider directly. Inference traffic never passes through the hub.

5 modalities in one catalogM:N model↔project assignments304 ETag projection, 304 cached

CAPABILITIES

The four things the hub actually does

Everything else — inference, streaming, billing — stays where it belongs: inside your projects.

01

Provider vault

Presets for Ark Plan, Ark Platform, Agnes, Anthropic, OpenAI and OpenSpeech. Credentials are sealed with AES-256-GCM envelope encryption, shown masked, rotatable, and verifiable with an L1 connection test.

02

Five-modality catalog

Text, image, video, audio and embedding models in one catalog: multi-dimensional pricing, endpoint and dialect adapters, LiteLLM-compatible naming. Preset entries are opt-in under a strict overlay.

03

Assignments & budgets

Models map to projects many-to-many, with primary/fallback roles, per-project aliases and daily budgets. Over-budget calls route to a fallback, trip a circuit breaker, or stop at the kill switch.

04

Distribution & resilience

Projects pull GET /pub/v1/models with a Bearer token; revisions ride ETag and 304. A 0600 local cache keeps every project running even when the hub itself is down.

BOUNDARY

A control plane, not a gateway.

The hub decides which models a project may use and hands out the projection. It never sits in the request path.

  • No inference traffic passes through the hub
  • No streaming proxy, no centralized billing
  • End-user BYOK keys stay inside each project — the hub never sees them
  • Usage is reported back for accounting and budgets only

WORKFLOW

From credential to running project

Six steps, each auditable — the same loop the owner's projects already run on.

  1. 01

    Register providers

    Store credentials encrypted; verify with an L1 connection test.

  2. 02

    Curate the catalog

    Enable models across five modalities, with pricing, endpoints and dialect adapters.

  3. 03

    Register projects

    Each project gets a hashed token — the plaintext is shown exactly once.

  4. 04

    Assign with guardrails

    Many-to-many, roles, aliases, daily budgets. One batch save bumps the catalog revision.

  5. 05

    Pull and run

    model-kit fetches the projection (ETag/304), caches it 0600, calls providers directly, and reports usage back.

  6. 06

    Watch the board

    Costs by project × source × day × model, budget watermarks, and L1–L4 health checks.

THE CONSOLE

An ops surface, not a mockup

Seven screens cover the lifecycle — providers, catalog, projects, assignments, costs and knowledge — drawn with the same console-ui tokens the hub itself ships.

model-hub · admin console
DashboardProvidersModelsProjectsAssignmentsCostsKnowledge

GET /pub/v1/usage/summary — a real response shape

{
  "project": "zeus",
  "day": "2026-10-31",
  "models": [
    {
      "alias": "noul",
      "role": "primary",
      "model": "doubao-seed-1-6-250615",
      "spent_micros": 420000,
      "daily_budget_micros": 1000000,
      "percent": 42
    }
  ],
  "unassigned_spent_micros": 0
}

WHO IT'S FOR

Built for one owner running many projects

Not a multi-tenant SaaS. A single-operator control plane for a fleet of projects that share providers and budgets.

Several AI projects at once

zeus, loom, atlas, agent-world and job-agent already read their model configuration from a single hub.

Swap models without redeploys

Change the assignment, bump the revision — projects pick the new projection up on their next refresh cycle.

Guardrails, not invoices

Daily budgets per assignment, fallback routing and a kill switch. BYOK traffic is metered, never billed.

Self-hosted by default

Single owner, docker compose up, bound to 127.0.0.1 — designed for internal or Tailscale exposure behind Caddy HTTPS.

Run your own model control plane

One compose file brings up the hub, the admin console, and a backup sidecar with a 7-day retention.

docker compose up --build   # binds 127.0.0.1:8791