Existing subscriptions
Your subscriptions.
One terminal.
Something like Claude Code, but for more than one plan. Kolkrabbi signs into Claude Pro or Max, ChatGPT Plus or Pro (the Codex plans) and GitHub Copilot through each vendor's own CLI, and lets one session move between them. No API key, no metered bill for what your plans already cover, and when one plan hits its limit the work does not stop.
on Claude Max, ChatGPT Plus and Copilot Free. Also in Spanish: agente de código para varias suscripciones.
What works today
Three subscriptions, one session.
| Plan | How kolk uses it | Models |
|---|---|---|
| Claude Pro · Max | the claude CLI, signed in by you, driven as a subprocess | Sonnet and Haiku on Pro; Opus and Fable on Max |
| ChatGPT Plus · Pro | the codex CLI, the same way | the GPT-5.6 family the vendor lists for your plan |
| GitHub Copilot Free · Pro · Business | the copilot CLI, the same way | the model Copilot picks for your plan |
| Any OpenRouter model, or Ollama | an API key, or nothing at all for a local model | hundreds, or whatever you pulled |
Kolk never reads a vendor's credential, token or cookie. It starts the CLI you already logged into and records what comes back. Each plan's own limits apply exactly as the vendor set them.
When a plan runs out
The limit is the vendor's. The stop is not.
A subscription allowance, an account quota and a capacity limit are told apart, and each is remembered across your sessions. By default kolk pauses, keeps your turn, and resumes by itself when the limit lifts — spending nothing to wait. It also tells you what could carry on: the best equivalent model on another plan you have, the same rung of the ladder, and the command that switches to it.
/continuewalks that chain when you say so./config set continuity.mode onwalks it by itself, subscriptions first, then paid keys, then a free model only if you listed one./config set continuity.select askasks once per run instead.
Allowance, spent where it counts
The frontier model runs only the hard steps.
A plan's allowance is finite, and a harness that sends every step to its best model spends it on renaming
files. In agent mode kolk routes each planned task: the trivial ones go to the cheapest rung your plan offers
under your model, the rest go to your model, and a slot per role — explore, fast, worker, orchestrator — can
pin a cheaper model or another plan to a kind of work. The effort dial picks which model answers, not only
how long it thinks. Your dashboard at /dash shows what share of your tokens ran below your top
rung, from your own log; nothing leaves the machine.
Measured on , one agent-mode run of four tasks on Claude Max with the dial at max: the plan and the final answer ran on the frontier model at max, every task ran below it, three at medium and one trivial task on the small model. 87% of the run's tokens ran below the top rung and 13% ran on the small model instead of the frontier one. One run, from kolk's own log; yours will differ.
Two minutes
Sign in, then pick a plan per model.
curl -fsSL https://kolkrabbi.francomichetti.com/install.sh | sh
kolk
/plans login anthropic "Claude Max"
/plans login openai "ChatGPT Plus"
/plans login github "Copilot Free"
/model "ChatGPT Plus/gpt-5.6-sol"
Each login opens the vendor's own sign-in and comes back. /plans shows which are signed in and
verified; /model lists every model every plan offers, with the plan it belongs to.
Also true
What this is not.
It is not a way around a plan's limits: kolk never proxies one account for several people, never bypasses a quota, and never scrapes a browser session. It is not the only open-source agent that connects a subscription — OpenCode does too, through its own connectors. What kolk adds is the continuity across plans described above, a local record of what each model cost and how you rated it, and one static binary that starts in milliseconds.