
CliGate is a local AI control plane built around two core capabilities:
It keeps both layers local-first on localhost: the assistant acts like a personal operator for real tasks, while the proxy owns provider access, routing, credentials, unified model names, and observability.
npx cligate@latest start
Or install globally:
npm install -g cligate
cligate start
Or use a desktop release package:
CliGate.Default dashboard:
http://localhost:8081
Use the dashboard:
Accounts for ChatGPT / Claude / AntigravityAPI Keys for provider keysLocal Models for on-device runtimesFor Assistant use, open Chat or Assistant Tasks and tell the private assistant what you want done.
For Model Proxy use, point a CLI tool or API-compatible client to CliGate.
Claude Code:
export ANTHROPIC_BASE_URL=http://localhost:8081
export ANTHROPIC_API_KEY=any-key
claude
Codex CLI:
# ~/.codex/config.toml
chatgpt_base_url = "http://localhost:8081/backend-api/"
openai_base_url = "http://localhost:8081"
Gemini CLI and OpenClaw can also be configured from the dashboard.
Use Chat, Assistant Tasks, Conversation Records, Scheduled, Skills, MCP, and channels to ask the resident assistant to execute real tasks, remember context, use tools, send follow-ups, and keep working in the background.
Start the service, add one credential, run one-click config, and send your first proxied request from Claude Code, Codex CLI, Gemini CLI, OpenClaw, or an API-compatible client.
Use the dashboard to manage accounts, API keys, routing priority, model mapping, local runtimes, pricing, request logs, usage, channel settings, skills, MCP, and desktop-agent settings.
| Dashboard | Chat |
|---|---|
![]() |
![]() |
| Routing and Settings | Channels |
|---|---|
![]() |
![]() |
| Usage and Costs |
|---|
![]() |
Start here if you want the shortest path to the right document:
After the server starts, a lightweight product guide is also available at:
http://localhost:8081/manual/http://localhost:8081/resources/Assistant Surfaces
Web Chat / Assistant Tasks / Telegram / Feishu / DingTalk / Scheduled Tasks
|
v
Private Assistant and Tools
Memory / Policies / Skills / MCP / Desktop Agent / Shell + File Tools / Optional Codex + Claude Code Delegation
|
v
CliGate Local Control Plane (localhost:8081)
|
+--> Model Proxy
| - Protocol translation
| - Account and API key routing
| - App-level bindings and model mapping
| - Local model routing
|
v
Upstream Providers and Local Runtimes
OpenAI / Anthropic / Gemini / Vertex AI / Kilo / Ollama / others
| Endpoint | Use |
|---|---|
POST /v1/messages |
Anthropic Messages proxy |
POST /v1/chat/completions |
OpenAI Chat Completions proxy |
POST /v1/responses |
OpenAI Responses proxy |
POST /backend-api/codex/responses |
Codex internal compatibility |
POST /v1beta/models/* |
Gemini CLI proxy |
GET /api/agent-runtimes/providers |
Runtime provider catalog |
GET /api/agent-channels/conversations |
Channel conversation records |
GET /api/assistant/tasks |
Assistant task records |
GET /api/assistant/mcp/servers |
MCP server management |
GET /api/assistant/skills |
Assistant skill management |
GET /api/desktop-agent/status |
Desktop-agent status |
GET /api/local-runtimes |
Local runtime status |
GET /api/resources |
Resource catalog |
GET /health |
Health and version |
See docs/API.md for more detail.
For Chinese-speaking users, you can also add the maintainer directly on personal WeChat:

Please include a short note such as CliGate when sending the request.
If you plan to contribute, read CONTRIBUTING.md before opening a pull request.
This project is licensed under AGPL-3.0.
CliGate is an independent open-source project and is not affiliated with Anthropic, OpenAI, Google, or other upstream providers.
$ claude mcp add cligate \
-- python -m otcore.mcp_server <graph>