star-cliproxy
Health Warn
- No license — Repository has no license file
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 28 GitHub stars
Code Warn
- network request — Outbound network request in packages/dashboard/src/api/client.ts
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
OpenAI- & Anthropic-compatible API proxy for AI coding CLIs — expose Claude Code, OpenAI Codex, Google Antigravity, and xAI Grok CLI as local, drop-in API endpoints with no API key and zero usage fees
star-cliproxy
Turn the AI CLI subscriptions you already pay for (Claude Max, ChatGPT Pro, Gemini, Copilot, Grok, Antigravity) into one OpenAI-compatible API — no extra API keys, no per-token billing.

What is this?
star-cliproxy runs your installed AI CLIs as subprocesses and exposes them behind a single local OpenAI-compatible endpoint (/v1/chat/completions, /v1/messages, /v1/models, /v1/images/generations).
Point any OpenAI SDK at it — change only base_url, keep your code:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8300/v1", api_key="sk-proxy-...")
client.chat.completions.create(
model="claude-sonnet",
messages=[{"role": "user", "content": "Hello!"}],
)
Why star-cliproxy?
- 💸 Subscriptions, not API keys — bill against Claude Max / ChatGPT Pro / etc. instead of metered API tokens.
- 🔌 One endpoint, many backends — 5 built-in CLIs (Claude, Codex, Copilot, Antigravity, Grok) + any OpenAI-compatible HTTP server (vLLM, Ollama, MLX, LM Studio) + custom plugins.
- 🧭 Smart routing — alias-based model mapping with priority fallback chains, per-model provider overrides, and session reuse (
codex exec resume). - ⚙️ Multiple execution modes —
cli, Claude Agent SDK, Codex app-server, and the new channel-worker bridge mode. - 📡 Real SSE streaming — native NDJSON/JSONL event pipes, not fake post-hoc chunking.
- 📊 Full dashboard — live monitoring, Playground, request tracing with raw payloads, model/key management, rate limits, EN/KO + dark mode.
- 🔒 Hardened — Zod-validated config (fail-fast at startup), SHA-256 key auth, prompt/CLI injection guards, timing-safe comparisons, secret redaction.
- 🟣 Anthropic Messages API —
/v1/messageslets native Claude Code / Anthropic SDK clients connect too.
Quick Start
⭐ Easiest: let an AI CLI set it up
This repo is structured so an agentic CLI can install and configure it for you. Open Claude Code or Codex in an empty folder and ask:
"Clone
https://github.com/starhunt/star-cliproxy, read its README, then install dependencies, build, createconfig.yamland.env(generate a strongADMIN_TOKENand ansk-proxy-prefixedPROXY_API_KEY), enable the providers I have installed, and start the backend and dashboard."
The agent runs the steps below and reports the URLs back to you.
Manual
git clone https://github.com/starhunt/star-cliproxy.git
cd star-cliproxy
npm install && npm run build
cp config.example.yaml config.yaml
cp .env.example .env
# .env: ADMIN_TOKEN + PROXY_API_KEY (must start with sk-proxy-)
node -e "console.log('ADMIN_TOKEN='+require('crypto').randomBytes(32).toString('hex'))"
node -e "console.log('PROXY_API_KEY=sk-proxy-'+require('crypto').randomBytes(24).toString('hex'))"
npm run dev # backend API → http://localhost:8300
npm run dev:dashboard # dashboard → http://localhost:5300
Prerequisites: Node.js 20+ and at least one authenticated CLI. Run each CLI once on its own first to finish login.
Supported Providers
| Provider | Subscription | Install |
|---|---|---|
| Claude Code | Claude Pro / Max | npm i -g @anthropic-ai/claude-code |
| Codex | ChatGPT Plus / Pro | npm i -g @openai/codex |
| Copilot CLI | GitHub Copilot | gh extension install github/gh-copilot |
| Gemini CLI (discontinued) | — | use Antigravity CLI below — Gemini CLI was discontinued by Google |
| Antigravity CLI | Google AI Pro / Ultra | curl -fsSL https://antigravity.google/cli/install.sh | bash |
| Grok Build CLI | SuperGrok / X Premium+ | curl -fsSL https://x.ai/cli/install.sh | bash |
| HTTP | any OpenAI-compatible server | add from the dashboard (vLLM, Ollama, MLX, LM Studio…) |
| Plugin | custom CLI | Plugin Guide |
Antigravity and Grok compatibility
| Provider | Verified CLI | Current integration |
|---|---|---|
Antigravity (agy) |
1.1.7 | Gemini 3.6/3.5 Flash and 3.1 Pro effort variants, Claude Sonnet/Opus, and GPT-OSS mappings; native json/stream-json; actual input, cache, output, and thinking token usage |
Grok Build (grok) |
0.2.112 | grok-4.5 (also exposed through the compatible grok-build alias); native json/streaming-json; actual token usage; --prompt-file for prompts over 800 KB |
Both providers accept reasoning_effort. Their current CLI range is low, medium, or high, so xhigh and max requests are safely normalized to high. The model-mapping editor and Playground expose this setting.
On the first startup after upgrading, built-in legacy mappings are migrated automatically: old Antigravity display labels become stable model-family slugs, grok-build routes to grok-4.5, and the removed default grok-composer mapping is disabled. User-created custom mappings are not overwritten. Because CLI catalogs can vary by account and release, check agy models and grok models after upgrading the CLIs.
Usage
OpenAI SDKs (Python/TS), curl, and native Claude Code all work — just set the base URL and an sk-proxy- key.
# OpenAI-compatible (streaming)
curl http://localhost:8300/v1/chat/completions \
-H "Authorization: Bearer sk-proxy-..." -H "Content-Type: application/json" \
-d '{"model":"claude-sonnet","messages":[{"role":"user","content":"Hello"}],"stream":true}'
# Native Claude Code → cliproxy (Anthropic Messages API)
ANTHROPIC_BASE_URL=http://localhost:8300 ANTHROPIC_API_KEY=sk-proxy-... claude
Models are exposed as aliases (e.g. claude-sonnet, gpt-5) mapping to a provider + real model. Manage mappings, providers, and keys from the dashboard or the Admin API.
Execution Modes
| Mode | Provider | What it does |
|---|---|---|
cli (default) |
all | runs the CLI in print mode |
sdk |
Claude | Claude Agent SDK — session reuse, tool control, budget caps |
app-server |
Codex | persistent JSON-RPC process |
channel-worker |
Claude | runs an interactive Claude Code session via a managed bridge (no claude -p), capturing results through an MCP tool — avoids the 2026‑06‑15 claude -p/Agent SDK billing split. Start/stop from the dashboard. |
Dashboard (:5300)
Live request monitoring & trends, Playground, model-mapping editor, provider config (execution mode + bridge controls), API keys, rate limits, and debug payload capture (CLI args + raw stdout, copy-as-curl). EN/KO, dark/light.
Configuration
config.yaml— providers, model mappings, rate limits, validation (Zod-validated at startup). Seeconfig.example.yaml..env—ADMIN_TOKEN,PROXY_API_KEY.- Custom providers auto-load from
plugins/.
Documentation
Plugin Guide · Provider Architecture · Session Reuse · Image Generation
Security
SHA-256 API-key auth · prompt-injection & CLI-injection prevention · timing-safe comparisons · Zod config validation · debug-log redaction with retention. Never commit .env.
License
MIT. Subscriptions and CLI usage remain subject to each provider's terms of service.
Built with Claude Code.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found