byok · 22 providers · agents · memory · mcp

Every model.
Your keys.
One dashboard.

A multi-tenant, bring-your-own-key AI gateway distilled from openclaw & hermes. Sign in with OpenAI, Claude or OpenRouter — or paste any key — then chat, run agents, wire in chat channels and team memory, and expose it all as your own MCP server.

OpenAI · byokAnthropic · byokGoogle · byokOpenRouter · byokGroq · byokDeepSeek · byokxAI · byokMistral · byokMoonshot · byokTogether · byokFireworks · byokCerebras · byokPerplexity · byokDeepInfra · byokNebius · byokHyperbolic · byokSambaNova · byokNovita · byokCohere · byokZhipu GLM · byokGitHub Models · byokVercel AI Gateway · byokOpenAI · byokAnthropic · byokGoogle · byokOpenRouter · byokGroq · byokDeepSeek · byokxAI · byokMistral · byokMoonshot · byokTogether · byokFireworks · byokCerebras · byokPerplexity · byokDeepInfra · byokNebius · byokHyperbolic · byokSambaNova · byokNovita · byokCohere · byokZhipu GLM · byokGitHub Models · byokVercel AI Gateway · byok
what you get
01

Sign in, don't paste

OAuth with OpenAI (ChatGPT / Codex), Claude (Pro / Max) or OpenRouter — use your subscription, no key to copy. Or paste one if you prefer.

02

22 providers, one interface

resolveModel('provider/model') → a ready client. OpenAI, Anthropic, Google and nineteen more, host-gated, one call.

03

Per-user, encrypted

Every tenant brings their own credentials. Stored AES-256-GCM at rest, keyed to your own auth — never shared, never logged.

04

Chat + autonomous agents

A threaded, persisted workbench and a multi-step agent runner with full tool traces — both built in, over any model you connect.

05

Your own MCP server

Mint a token and expose your gateway as an MCP endpoint. Connect Claude Code, Cursor, or ChatGPT over OAuth 2.1. Each token acts as you.

06

Also a library

@rahmanef/models — zero-dependency ESM core, a CLI, and an injectable CredentialStore for any backend. The dashboard is just one consumer.

inside the dashboard

Everything, in one console.

studio / workbench

Workbench

Threaded, persisted chat across any connected model. Agent mode and Caveman / Ponytail token savers apply.

studio / agents

Agents & schedules

Give a model a task and watch a multi-step tool loop run with a full, expandable trace. Save named agents and fire them on a recurring schedule.

connect / providers

Providers & combos

22 providers over OAuth or a pasted key, each scoped to you. Alias several behind one combo name with fallback or round-robin routing.

connect / serve

Channels, gateway & MCP

Wire Telegram, Slack, WhatsApp or Discord bots to an agent; point Claude Code or Cursor at your OpenAI/Anthropic-compatible /v1 endpoint; or expose it all as your own MCP server over OAuth 2.1.

workspace / memory

Memory & graph

Give models durable, per-scope memory with off-turn auto-summaries — then explore it as an Obsidian-style interactive graph of memories, agents, skills and tools.

workspace / teams

Teams & ops

Workspaces with role-based invites, per-workspace usage and billing, monthly spend caps, an append-only audit trail, and a super-admin console.

workspace / memory

Your knowledge, as a graph.

An Obsidian-style canvas over everything the workspace knows — memories, agents, skills and tools — in one live, force-directed graph. Drag a node, zoom, or link notes with @ / / mentions. This is the real component below, running on sample data:

loading graph…
where it's going

A foundation, not a competitor.

Multi-tenant, encrypted, composable — every capability a droppable slice. See the full roadmap, how it compares to OpenClaw / Hermes / 9Router, and the changelog.

Roadmap & changelog →
how it works

Three steps to any model.

01 / sign in

Make an account

Email + password. Your keys are scoped to you and no one else.

02 / connect

Add a provider

Sign in with OpenAI, Claude or OpenRouter over OAuth, or paste an API key.

03 / use

Call any model

Chat, run agents, or point an MCP client at your endpoint — the right key is routed for you.

also a library

Drop it into any project.

The dashboard is just one consumer. The core is a zero-dependency package with a pluggable credential store — env, file, or your own database.

$ npm i @rahmanef/models

import { resolveModel, chat } from '@rahmanef/models'

const m = await resolveModel('anthropic/claude-opus-4-8', {
  tenantId, store, // per-user · encrypted · host-gated
})
const res = await chat(m, { messages })