claude-cline-pass-bridge
v1.1.0
Published
Unofficial local proxy that bridges Claude Code (Anthropic Messages API) to a Cline Pass subscription backend, with model aliasing and tool-call translation. Not affiliated with Anthropic or Cline.
Maintainers
Readme
claude-cline-pass-bridge
Unofficial local proxy that lets Claude Code talk to models available through a Cline Pass subscription, instead of Anthropic's API directly. Not affiliated with or endorsed by Anthropic or Cline.
It translates between the Anthropic Messages API (what Claude Code speaks) and Cline
Pass's OpenAI-compatible chat-completions endpoint - including tool/function calling,
images, and Cline Pass's {"data": {...}} response wrapper - and runs entirely on
localhost. Your Cline Pass API key is never sent anywhere except to Cline Pass itself.
Install
npm install -g claude-cline-pass-bridgeFirst run
claude-clineOn first run, if no API key is configured yet, you'll be prompted for your Cline Pass API key (input is masked as you type). It's saved to:
~/.claude-cline-proxy/config.jsonalong with sensible default model routing. Nothing is sent anywhere except to Cline Pass's own API - the key is not logged or transmitted elsewhere.
Usage
claude-cline [alias] [claude args...] # run Claude Code via the proxy
claude-cline [alias] -full [claude args...] # force ALL requests to [alias]
claude-cline --model "<Full Label>" ... # explicit full backend label
claude-cline config set-key # change your API key later
claude-cline config show # show current config (key masked)
claude-cline help # full helpShort model aliases (first positional argument, or the value after --model):
| Alias | Real model |
|-----------|--------------------|
| k3 | Kimi K3 |
| k27 | Kimi K2.7 Code |
| glm | GLM 5.2 |
| dsp | DeepSeek V4 Pro |
| dsf | DeepSeek V4 Flash |
| qwen | Qwen 3.7 Max |
| minimax | MiniMax M3 |
Using an alias (or a full --model "<Label>" string) makes Claude Code's own header
display the real backend model name, not a generic Anthropic alias. Running with no
model argument falls back to whatever Sonnet/Opus/Haiku/Fable alias Claude Code's own
settings resolve to, routed through config.json's modelPatterns - functionally
correct, but the header will show the generic Anthropic name in that case.
-full: forcing background/advisor traffic too
Claude Code makes its own background calls independent of your main conversation -
notably an autonomous-agent security/advisor check, tagged internally with a fixed
"sonnet" alias regardless of which model you picked. By default those get routed on
their own via modelPatterns (same as if you'd explicitly picked "sonnet"). Add
-full right after your alias to force every request, including that background
traffic, onto the same backend as your chosen alias:
claude-cline k3 -fullWithout -full, behavior is unchanged - background/advisor calls keep routing
independently through modelPatterns.
How it works
- The proxy runs in the same Node process as the CLI itself (no separate
background process to manage) and listens on
localhost:4000. claudeis launched as a child process withANTHROPIC_BASE_URLpointed at the proxy and a placeholderANTHROPIC_AUTH_TOKEN- only the child's environment is modified, so your shell's own environment is never touched, and there is nothing to restore on exit (Ctrl+C, normal exit, or error all clean up the same way).- Edit
~/.claude-cline-proxy/config.jsondirectly to changedefaultModel,modelMap,modelPatterns, orreasoningEffort. - Logs (including per-request routing: which model was requested vs. which real
backend it was routed to) go to
~/proxy.log.
Known limitations
- Cline Pass's chat-completions endpoint does not support any documented parameter
for controlling reasoning effort/depth -
reasoningEffortin the config is sent but has been empirically verified to have no reliable effect on Kimi/GLM/MiniMax models via this endpoint (see project history/tests). Left in place in case a future model or endpoint update honors it. - Images are forwarded as OpenAI
image_urlcontent parts, but only work if the selected backend model is actually multimodal-capable.
License
MIT
