CLIro-Go is a Wails desktop control plane for running a local OpenAI-compatible proxy across ChatGPT Codex and Kiro accounts. CLIro stands for CLIrouter.
Current release: v0.3.0
| Dashboard | Accounts |
|---|---|
![]() |
![]() |
| API Route | Usage |
|---|---|
![]() |
![]() |
- OpenAI-compatible and Anthropic-compatible local proxy endpoints:
POST /v1/responsesPOST /v1/chat/completionsPOST /v1/completionsPOST /v1/messagesGET /v1/modelsGET /healthGET /v1/stats
- Automatic reasoning/thinking parameter injection via model name suffixes:
-low/-minimal→ 4096 budget tokens (OpenAI:effort: "low")-medium→ 10000 budget tokens (OpenAI:effort: "medium")-high→ 16384 budget tokens (OpenAI:effort: "high")-xhigh→ 32768 budget tokens (OpenAI:effort: "xhigh")- Example:
gpt-5.4-highautomatically enables extended thinking
- Cross-protocol reasoning/thinking conversion:
- OpenAI
reasoning.effort↔ Anthropicthinking.budget_tokensbidirectional mapping - Automatic parameter filtering to prevent "Unknown parameter" errors
- Universal
reasoning_contentfield in responses for client compatibility
- OpenAI
- Multi-account routing for Codex and Kiro with availability-aware scheduling, circuit breaker steps, and cooldown handling.
- OAuth flows for Codex plus Kiro device auth and Kiro social auth.
- Token refresh, quota refresh, smart batch quota refresh, and force-refresh-all quota actions.
- API Router controls for proxy runtime, security, routing policy, endpoint testing, and Cloudflared public access.
- One-click CLI config sync in API Router for Claude Code, OpenCode, Kilo CLI, and Codex AI, including model selection from local
/v1/modelscatalog. - Local CLI auth sync for Kilo, Opencode, and Codex CLI.
- All models are listed directly in
GET /v1/models. - Model name suffixes enable automatic reasoning/thinking:
- Add
-low,-medium,-high, or-xhighto any model name - Example:
gpt-5.4-high,claude-sonnet-4.5-high
- Add
- Suffix is stripped during routing and converted to appropriate reasoning parameters
- Current Kiro catalog includes examples such as:
claude-sonnet-4claude-sonnet-4.5minimax-m2.5qwen3-coder-next
CLIro-Go stores runtime state in ~/.cliro-go/:
config.json- proxy, auth, scheduling, Cloudflared, and UI-facing settingsaccounts.json- connected account records with token/quota metadatastats.json- usage counters for the local proxyapp.log- persistent application log filebin/cloudflared(.exe)- downloaded Cloudflared binary when public access is installed
Prerequisites:
- Go 1.23+
- Node.js 18+ and npm
- Wails CLI v2.11+
Install frontend dependencies:
cd frontend
npm install
cd ..Run desktop dev mode:
wails devRun validation:
cd frontend
npm run check
cd ..
go test . ./internal/...Build desktop app:
wails buildWindows output:
build/bin/Cliro-Go.exe
Default base URL:
http://localhost:8095/v1
Example without reasoning:
curl -X POST http://localhost:8095/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.3-codex","messages":[{"role":"user","content":"Hello"}]}'Example with automatic reasoning (using -high suffix):
curl -X POST http://localhost:8095/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.4-high","messages":[{"role":"user","content":"Explain quantum entanglement"}]}'The response will include reasoning_content field with extended thinking.
- Authorization mode requires the configured API key for all proxy routes.
- Cloudflared public access is managed from the API Router tab and depends on the local proxy being online.
- Smart
Refresh All Quotasskips accounts still waiting for quota reset;Force Refresh All Quotaschecks every configured account. - Cross-protocol adapter audit and compatibility coverage are documented in
docs/audit-adapter-cross-protocol.md. - Model aliasing behavior and examples are documented in
docs/feature-model-aliasing.md.
- Codex and Kiro icons/marks remain the property of their respective owners.
- The CLIRO route app icon uses Icons8 artwork:
https://icons8.com/icons/set/route
See CHANGELOG.md for the full v0.3.0 change history.



