by atopos31
Unified LLM gateway with weighted load balancing, observability & cost tracking. 统一的 LLM 网关,提供权重负载均衡、可观测性与费用追踪。
# Add to your Claude Code skills
git clone https://github.com/atopos31/llmioGuides for using cli tools skills like llmio.
Last scanned: 5/30/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-30T15:00:58.868Z",
"npmAuditRan": true,
"pipAuditRan": true
}llmio is an open-source cli tools skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by atopos31. Unified LLM gateway with weighted load balancing, observability & cost tracking. 统一的 LLM 网关,提供权重负载均衡、可观测性与费用追踪。. It has 310 GitHub stars.
Yes. llmio passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/atopos31/llmio" and add it to your Claude Code skills directory (see the Installation section above).
llmio is primarily written in TypeScript. It is open-source under atopos31 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other CLI Tools skills you can browse and compare side by side. Open the CLI Tools category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh llmio against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
English | 中文
LLMIO is a Go-based LLM load‑balancing gateway that provides a unified REST API, weighted scheduling, observability, and a modern admin UI for LLM clients (openclaw / claude code / codex / gemini cli / cherry studio / open webui). It helps you integrate OpenAI, Anthropic, Gemini, and other model capabilities in a single service.
QQ group: 1083599685
balancers/ provides two strategies (random by weight / priority by weight). You can route based on tool calling, structured output, and multimodal capability.db/llmio.db) for config and request logs, ready to use out of the box.session_id in any request body (works with extra_body in OpenAI SDK) to tag logs with a session identifier. Filter and search by session_id in the admin UI or via GET /api/logs?session_id=.services:
llmio:
image: atopos31/llmio:latest
ports:
- 7070:7070
volumes:
- ./db:/app/db
environment:
- GIN_MODE=release
- TOKEN=<YOUR_TOKEN>
- TZ=Asia/Shanghai
docker compose up -d
docker run -d \
--name llmio \
-p 7070:7070 \
-v $(pwd)/db:/app/db \
-e GIN_MODE=release \
-e TOKEN=<YOUR_TOKEN> \
-e TZ=Asia/Shanghai \
atopos31/llmio:latest
Download the release package for your OS/arch from releases (version > 0.5.13). Example for linux amd64:
wget https://github.com/atopos31/llmio/releases/download/v0.5.13/llmio_0.5.13_linux_amd64.tar.gz
Extract:
tar -xzf ./llmio_0.5.13_linux_amd64.tar.gz
Start:
GIN_MODE=release TOKEN=<YOUR_TOKEN> ./llmio
The service will create ./db/llmio.db in the current directory as the SQLite persistence file.
| Variable | Description | Default | Notes |
|---|---|---|---|
TOKEN |
Console login and API auth for /openai /anthropic /gemini /v1 |
None | Required for public access |
GIN_MODE |
Gin runtime mode | debug |
Use release in production |
LLMIO_SERVER_PORT |
Server listen port | 7070 |
Service listen port |
TZ |
Timezone for logs and scheduling | Host default | Recommend explicit setting in containers (e.g. Asia/Shanghai) |
DB_VACUUM |
Run SQLite VACUUM on startup | Disabled | Set to true to reclaim space |
Clone:
git clone https://github.com/atopos31/llmio.git
cd llmio
Build frontend (pnpm required):
make webui
Run backend (Go >= 1.26.1):
TOKEN=<YOUR_TOKEN> make run
Web UI: http://localhost:7070/
LLMIO provides a multi‑provider REST API with the following endpoints:
| Provider | Path | Method | Description | Auth |
|---|---|---|---|---|
| OpenAI | /openai/v1/models |
GET | List available models | Bearer Token |
| OpenAI | /openai/v1/chat/completions |
POST | Create chat completion | Bearer Token |
| OpenAI | /openai/v1/responses |
POST | Create response | Bearer Token |
| Anthropic | /anthropic/v1/models |
GET | List available models | x-api-key |
| Anthropic | /anthropic/v1/messages |
POST | Create message | x-api-key |
| Anthropic | /anthropic/v1/messages/count_tokens |
POST | Count tokens | x-api-key |
| Gemini | /gemini/v1beta/models |
GET | List available models | x-goog-api-key |
| Gemini | /gemini/v1beta/models/{model}:generateContent |
POST | Generate content | x-goog-api-key |
| Gemini | /gemini/v1beta/models/{model}:streamGenerateContent |
POST | Stream content | x-goog-api-key |
| Generic | /v1/models |
GET | List models (compat) | Bearer Token |
| Generic | /v1/chat/completions |
POST | Create chat completion (compat) | Bearer Token |
| Generic | /v1/responses |
POST | Create response (compat) | Bearer Token |
| Generic | /v1/messages |
POST | Create message (compat) | x-api-key |
| Generic | /v1/messages/count_tokens |
POST | Count tokens (compat) | x-api-key |
LLMIO uses different auth headers depending on the endpoint:
Applies to /openai/v1/* and OpenAI‑compatible endpoints under /v1/*.
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:7070/openai/v1/models
Applies to /anthropic/v1/* and Anthropic‑compatible endpoints under /v1/*.
curl -H "x-api-key: YOUR_TOKEN" http://localhost:7070/anthropic/v1/messages
Applies to /gemini/v1beta/* endpoints.
curl -H "x-goog-api-key: YOUR_TOKEN" http://localhost:7070/gemini/v1beta/models
For claude code or codex, use these environment variables:
export OPENAI_API_KEY=<YOUR_TOKEN>
export ANTHROPIC_API_KEY=<YOUR_TOKEN>
export GEMINI_API_KEY=<YOUR_TOKEN>
Note:
/v1/*paths are kept for compatibility. Prefer the provider‑specific routes.
.
├─ main.go # HTTP server entry and routes
├─ handler/ # REST handlers
├─ service/ # Business logic and load‑balancing
├─ middleware/ # Auth, rate limit, streaming middleware
├─ providers/ # Provider adapters
├─ balancers/ # Weight and scheduling strategies
├─ models/ # GORM models and DB init
├─ common/ # Shared helpers
├─ webui/ # React + TypeScript admin UI
└─ docs/ # Ops & usage docs
This project is released under the MIT License.