localhost Network
The Pattystack console: three stacked plans with 71%, 34% and 8% quota left, token and dollar totals, and the router explaining it will send the next request to work-sub

Stop hitting the limit on one plan

If you pay for more than one ChatGPT or Codex plan, you can only use one at a time. Pattystack signs into all of them and sends every request to whichever has the most left — through a single OpenAI-compatible URL.

Free and open source. Runs on your own machine.

$ npx @puffle/pattystack

Needs Node 22+. Opens the console above at 127.0.0.1:3210.

Why you'd want this

You already paid for the quota

A personal plan, a work seat, one for a side project. Three bills, and you still get rate-limited on whichever one you happen to be signed into. Pattystack uses all of them.

No more logging in and out

Your editor, your agent, your scripts all point at one URL and one key. Which account actually serves the request is Pattystack's problem, not yours.

It doesn't just fail at the cap

When a plan is throttled it moves to the next one. When every plan is spent it can fall back to pay-as-you-go API credit, so you get an answer instead of an error.

You can see what you're burning

A local console shows tokens per plan, what your subscriptions absorbed for free, and what the paid fallback actually cost you in dollars.

How it works

  1. 1

    Start it on your machine. One command. It listens on 127.0.0.1:3210, an address that never leaves the computer it runs on, and prints a key.

  2. 2

    Add your plans. Sign each ChatGPT or Codex account in once from the console. Add an OpenAI-compatible API key too if you want a paid spare tyre.

  3. 3

    Point your tools at it. Anything that speaks the OpenAI API — Cursor, the SDKs, your own code — just needs the URL and the key. Pattystack picks the account per request.

Try it without signing anything in

Add --fake and it makes up plans that behave like real ones, so you can watch it choose between them first.

$ npx @puffle/pattystack --fake=work-sub:0.71:190 --fake=side-project:0.34:64
  • Runs a local daemon on http://127.0.0.1:3210
  • Prints a one-time API key; connect in the browser console
  • Point Cursor, Codex, or the OpenAI SDK at the same URL
GitHub 0

OpenAI-compatible clients

Pattystack supports any client that can set a custom baseURL and apiKey.

Client:

        

FAQ

What actually is it?
A small program you run on your own machine. It holds the logins for every ChatGPT/Codex plan you pay for and offers them to your tools as a single OpenAI-compatible API. Each request goes to whichever plan has the most quota left.
How is this different from the official OpenAI API?
The OpenAI API bills you per token on top of whatever your subscriptions already cost. Pattystack spends the subscription quota you have already paid for first, and only reaches for paid API credit once everything else is used up.
Does it work with Claude Code / Cursor?
Yes — anything that lets you change the API base URL. Point it at http://127.0.0.1:3210/v1 and use the API key printed at startup.
Is this against OpenAI's terms of service?
Read the terms for your own plans and decide — we can't decide that for you, and nothing here is legal advice. The honest picture: Pattystack is for accounts you are entitled to use. It signs in with the normal Codex login flow, one account at a time, and each request is served by exactly one account, the same as if you had switched to it by hand. What it does not do is share one account between several people, resell access, or work around a rate limit on any single account. If you use it to pool other people's accounts, that is on you, and it will almost certainly break your provider's terms.
Is my data private?
It listens on 127.0.0.1, an address that never leaves the machine it runs on — not your phone on the same wifi, not anyone on the internet. Your prompts go to the AI provider you chose and nowhere else. There is no Pattystack server.
What can I plug into it?
ChatGPT and Codex plans are the main case — Plus, Pro, Team seats, however many you have. You can also add anything that speaks the OpenAI API, including OpenAI itself, a proxy, vLLM, or Ollama.