I kept aligning an account pin nothing was reading

/ Article
[ Fig. 1 ]

I spent a Saturday morning aligning account pins across my fleet of machines, and every single fix was cosmetic. Worse than cosmetic, actually. Each one quietly worked against the system I had built.

Here is the setup. I run Claude Code through a small wrapper script I wrote called cl. Every invocation, cl reads each account’s remaining rate-limit budget from disk and launches the session against whichever account has the most headroom. A rate limit is like a monthly data cap: run out and you wait. Spreading sessions across several accounts is how one person gets the throughput of several. I wrote about building that load balancer a while back.

Each box also has a global file, sitting in the home directory, that names one account as the account. A leftover from before the balancer existed. And whenever I noticed that file disagreeing with the account a box had actually been using, I “fixed” it: switched the global pin to match, felt tidy, moved on.

The file nobody reads

The Saturday in question, I was mid-fix on the third box when I finally asked the obvious question: what reads this file?

The answer was nothing. My wrapper sets an environment variable per invocation that points Claude Code at the chosen account’s own directory, so the global default in the home directory is never consulted. It is vestigial, the way your appendix is vestigial: present in every box, load-bearing in none.

So my morning of alignment had changed bytes on disk that no code path would ever open. That is the embarrassing half of the story.

The worse half: alignment re-pins the load

The point of a balancer is that every pick is dynamic, made fresh, from live headroom. A pinned preference is the opposite: it concentrates. Whatever account gets pinned absorbs session after session until its budget is gone, while the others sit idle with full tanks.

My hand “fixes” were not switching the global file to match reality. They were switching real sessions onto one account, by hand, in the name of consistency. If concentration is ever the actual problem, the fix is more healthy accounts in the pool, not tidier pins. I learned the discovery version of this lesson when the fourth account did not exist yet: the roster must be scanned, not hardcoded. This was the same lesson one level down. The pick must be fresh, not reconciled.

The bug that was actually worth hunting

There is exactly one consistency bug in this design, and it is not a mismatched pin. It is a box where the wrapper silently stops being dynamic at all.

I found one. A stray line in that box’s local shell config, sourced after everything else, defined cl as a plain alias instead of my balancer function. An alias is just text substitution: type cl, get whatever the alias says. This one bypassed the headroom scoring entirely and launched every session against a single hardcoded account. The box looked normal in every casual check, because sessions started fine. It just pinned 100 percent of its load onto one account for weeks, and the only symptom was that account running dry faster than its peers.

The audit that matters, then, is one command: ask the shell what cl actually resolves to. Function that scores headroom: healthy. Alias to a fixed path: the balancer is dead on that box and nobody got paged.

Align the resolver, not the pin

That is the sentence I keep: align the resolver, not the pin. The resolver is the thing that makes the choice. The pin is a fossil record of a choice made long ago. Reconciling fossils feels like maintenance and changes nothing you can observe, except when it quietly concentrates your load.

If you run anything that rotates across accounts, keys, or endpoints, try the one-command audit yourself. Ask each box what its entrypoint resolves to. The boxes that answer with a function are load-balancing. The boxes that answer with an alias are pinned, and a pinned box does not announce itself. It just drains one account and lets you call it a mystery.