The fastest path is npm:
npm install -g clipalYou can also download the right binary from Releases and place it on your PATH.
Latest stable release: GitHub Releases latest
Platform-specific notes:
Verify the version:
clipal --versionclipalCommon startup overrides:
clipal --config-dir /path/to/config
clipal --listen-addr 127.0.0.1
clipal --port 3333
clipal --log-level debugBy default, Clipal starts both:
- the local proxy
- the Web management UI at
http://127.0.0.1:3333/
Open the Web UI in your browser and add your providers there — no config files needed:
http://127.0.0.1:3333/
From the Providers page you can:
- Add, edit, or remove API-key providers (Claude, OpenAI, Gemini, and any OpenAI-compatible endpoint)
- Start
OAuth -> Codexfor OpenAI,OAuth -> Claudefor Claude, orOAuth -> Antigravityfor Gemini and let Clipal append the provider automatically - Set
base_url,api_key/api_keys, and routing weights for API-key providers - Reorder, pin, enable, or disable OAuth providers the same way as API-key providers
Changes take effect immediately without a restart.
OAuth upstream notes:
OAuth -> Codexsupports OpenAIResponsesrequestsOAuth -> Claudesupports Claudemessagesandcount_tokensOAuth -> Antigravitysupports Gemini-compatiblegenerateContent,streamGenerateContent,countTokens, model listing, and Gemini image models throughgenerateContent. Imagen/Veopredict*endpoints use Google AI Studio API-key or Vertex providers instead.- For Claude and Codex OAuth, ordinary clients use an Agent SDK-compatible upstream envelope by default, with required transport fields handled by Clipal.
- Client-supplied control fields win over defaults when supported by the target model: explicit
tools, Claudethinking/context_management/output_config, and Codexreasoning/tool_choice/parallel_tool_callsare preserved. - OAuth credentials are stored locally outside YAML under
~/.clipal/oauth/ - Clipal refreshes access tokens automatically before expiry when a
refresh_tokenis available, and retries once after an upstream401by forcing a refresh - OAuth providers are usually added through the authorization flow; if you already have Codex CLI
auth.json(~/.codex/auth.json), CLIProxyAPI single-account OAuth JSON, or a sub2api export JSON bundle, you can import it from the same Add Provider dialog
If you prefer to manage configuration as code, you can still edit YAML files directly. Field-level details and example templates live in Config Reference.
curl -fsS http://127.0.0.1:3333/health
clipal status
clipal status --jsonClipal standardizes client ingress on:
/clipal
Compatibility aliases remain available for older setups:
/claudecode/codex/gemini
See Client Setup for exact client-side configuration.
- Want a full walkthrough of the Web UI: Web UI Guide
- Want to understand failover, pinning, and multi-key behavior: Routing and Failover
- Want autostart or background service setup: Services, Status, and Updates
- Hit a problem: Troubleshooting