v0.1.1: Claude Code, on any model
npx lupin-code@latest init and you are routed.
Your setup lives in Claude Code, not in the model: MCP servers, skills, CLAUDE.md, hooks, plugins. Lupin changes the model and leaves the rest alone.
Verified, not claimed
Every score is a real headless Claude Code session, graded on artefacts on disk (files really edited, scripts that really run), never on what the model said it did.
| Profile | Score | Notes |
|---|---|---|
| Kimi Code subscription | 10/10 | three runs at 10/10 for reproducibility |
| ChatGPT subscription | 10/10 | 116s over 15 requests, 49% of input served from cache |
| Gemini Code Assist | 8/10 | free tier, ended on a tier capacity limit |
| GitHub Copilot | works, unscored | end to end on a free plan, up to a real tool call |
| LM Studio + gemma-4-12b | 0/10 | honest: the harness floor and a 10GB GPU cannot both be satisfied |
Fixed since 0.1.0
- OAuth subscriptions on Windows. With the OS keychain active, no subscription worked: the credential store sized its chunks in UTF-8 bytes while Windows stores the value as UTF-16 and counts those, so the real budget was 1280 code units rather than 2560 of anything. Measured against the live backend before fixing.
- The TUI called a watchdog a healthy daemon. When the daemon dies the watchdog answers 529 on every path, and that body parsed into an empty health object.
lupin useignored flags it did not know, including the--opus/--sonnet/--haikuthatlupin loginwas printing as the way to aim a profile.- TUI secondary text was invisible on dark themes, and the job panel truncated long lines instead of wrapping them.
New
druns the doctor from the TUI,:opens a command palette.- GitHub Copilot as a provider, and profile switching from inside Claude Code through the
/modelpicker.
Full detail in CHANGELOG.md.