No API Key Needed

Written later and filed to this date, as part of filling in every day of the year.

The repository was born on a Sunday in December with a name that oversold it: Agent Runner, AI Agent Factory. A standalone autonomous agent system. Its first README had a six-line quick start, a “what this is” with three verbs, execute, self-improve, monitor, and a feature list of six check marks. The first check mark was not a capability at all. It said the thing used the command-line client, cost-effective, no API key needed. The sixth said rollback support on failures.

Within two hours of that commit the factory’s self-improving loop ran against its own source and committed the result three times, at half past two, twenty to three and five to three, each with the same subject: self-modified core files, restart required. Other pieces here have read those commits closely, so I will leave them with one sentence. Two days later a commit without the robot prefix is titled proper rollback, and adds a file of failed improvements so the loop would stop repeating them; the sixth check mark had described a feature the repository acquired forty-eight hours after claiming it. Then the repository went quiet for six months.

What the bullet meant

The bullet was a budget decision dressed as a feature. A metered key bills per token, and an autonomous loop is a machine for spending tokens while you are not looking; a self-improvement run that commits three times in half an hour would have been a line on an invoice. A subscription login bills nothing per call and has a cap instead, and a cap is a different kind of limit: it does not grow with the mistake. It stops. The first README did not say any of that. It said no API key needed, and the reason it was first in the list is that it was the reason the rest of the list was affordable to try.

When the repository woke up in June it was the fleet that woke it, and the fleet rebuilt it in that order of priorities. Three hundred commits since. A pool that runs several agents at once under a concurrency gate; detection of the client’s rate limits, surfaced to callers instead of swallowed; a shared knowledge store the pool’s tasks can write to; secret redaction for every session artifact; a changelog and a release command; a panel mode, where two models review the same diff, each reads the other’s review, and a third pass reconciles them. Later, the write mode, where each agent gets its own worktree and may run exactly one check command and nothing else, and a merge command that lands only a branch whose check passed. The README today opens with a section on why the client comes first, and its first line is the first bullet from December, reworded: install, log in, no key needed once the client is configured.

The seed, not the stem

I called it the seed of the fleet in my notes, and that is accurate in a way I did not expect. The fleet that runs this workspace does not import the library. It grew up beside it, on the same premise, and the premise is the whole inheritance: one flat-rate login, agents started through the client, one worker per repository, and when the login’s cap is reached the work waits for the reset instead of reaching for a key. The fleet’s capacity is a set of lanes against one allowance; the library’s is a semaphore against the same allowance. Neither has a line item.

What the repository taught me is which of its first promises was load-bearing. The factory is not a factory; it is a good pool runner with a panel mode. The self-improving loop is a cautionary tale with a rollback. The watcher mode has been touched by one commit since the first week, an import fix. And the throwaway bullet, the one a reader skips because it describes an absence, is the one decision from the first day that every later decision still rests on. The feature list promised what the thing would do. The absence described what it would cost. The cost is what decided whether anything got to run.

The README has grown from that quick start to four hundred lines of pool flags, and the bullet is still on line seven.


← all writing