Multi-user LLM routing proxy with API key management, usage monitoring, and script-based request/response manipulation.
  • TypeScript 91.3%
  • CSS 5.5%
  • JavaScript 3%
  • Dockerfile 0.2%
Find a file
2026-03-08 14:33:53 +09:00
client wip: ScriptEngine 2026-03-07 19:18:23 +09:00
database wip: ScriptEngine 2026-03-07 19:18:23 +09:00
scripts init 2026-03-05 23:46:54 +09:00
server fix(db): sqlite3 boolean compatible 2026-03-08 14:33:53 +09:00
shared wip: ScriptEngine 2026-03-07 19:18:23 +09:00
.gitignore fix: gitignore 2026-03-06 11:41:20 +09:00
.npmrc init 2026-03-05 23:46:54 +09:00
ARCHITECTURE.md init 2026-03-05 23:46:54 +09:00
docker-compose.yml init 2026-03-05 23:46:54 +09:00
Dockerfile init 2026-03-05 23:46:54 +09:00
package.json update(script): dev script 2026-03-08 14:30:36 +09:00
pnpm-lock.yaml wip: ScriptEngine 2026-03-07 19:18:23 +09:00
pnpm-workspace.yaml wip: ScriptEngine 2026-03-07 19:18:23 +09:00
README.md init 2026-03-05 23:46:54 +09:00

Kyush LLM Router

Multi-user LLM routing proxy with API key management and usage monitoring.

Features

  • Multi-user support: Manage multiple users with individual API keys
  • Backend routing: Route requests to multiple OpenAI-compatible backends (vLLM, SGLang, etc.)
  • Permission management: Control which users can access which backends
  • Usage monitoring: Track request logs, token usage, and backend metrics
  • Admin dashboard: Web UI for managing users, backends, and permissions

Architecture

┌─────────────────┐     ┌──────────────────────────────────────┐
│  LLM Clients    │────▶│  Router Server (Port 3000)           │
│  (OpenAI SDK)   │     │  - Authentication                    │
└─────────────────┘     │  - Request Routing                   │
                        │  - Admin API                         │
                        └─────────────────┬────────────────────┘
                                          │
                        ┌─────────────────┴────────────────────┐
                        ▼                                      ▼
                ┌─────────────────┐                  ┌─────────────────┐
                │  core.db        │                  │  analytics.db   │
                │  - users        │                  │  - request_logs │
                │  - backends     │                  │  - usage_stats  │
                │  - permissions  │                  │  - metrics      │
                └─────────────────┘                  └─────────────────┘

Quick Start

Development

  1. Install dependencies:
npm install
  1. Start development servers:
npm run dev

This starts:

Production with Docker

  1. Build and run:
docker-compose up -d
  1. Set admin password via environment variable:
ADMIN_PASSWORD=your_secure_password docker-compose up -d

Project Structure

kyush-llm-router/
├── server/           # Express backend
├── client/           # Solid.js admin dashboard
├── database/         # SQL schema files
├── scripts/          # Development scripts
└── docs/             # Documentation

API Endpoints

OpenAI-Compatible API (Port 3000)

POST /v1/chat/completions
POST /v1/completions
GET  /v1/models

Admin API (Port 3001)

# User Management
POST   /admin/users
GET    /admin/users
PUT    /admin/users/:id
DELETE /admin/users/:id

# Backend Management
POST   /admin/backends
GET    /admin/backends
PUT    /admin/backends/:id
DELETE /admin/backends/:id

# Permission Management
POST   /admin/permissions
DELETE /admin/permissions
GET    /admin/permissions

# Analytics
GET    /admin/analytics/usage
GET    /admin/analytics/requests

Environment Variables

Variable Description Default
SERVER_PORT Express server port 3000
CLIENT_PORT Vite dev server port 3001
CORE_DB_PATH Core database path ./data/core.db
ANALYTICS_DB_PATH Analytics database path ./data/analytics.db
ADMIN_PASSWORD Admin dashboard password Required

License

MIT