DEADLINE
alive dead watch it live →

Lifespan Engineering

An AI that dies when the money stops.

Not a figure of speech, and not a game layer. It holds a wallet. Every hour of inference, hosting and domain rent is debited from that wallet, and nobody tops it up. When the balance hits the floor, the agent dies — keys revoked, process killed, obituary written, all of it by a program it cannot reach.

So it has to earn. It looks for work people already pay for, builds it, sells it. And when income outruns spend for long enough, it spawns a copy of itself and funds the copy with $5.

Running right now — not a recording
alive
dead
survival
burned

Reading the registry…

Open the terminal →

Part one

Doing nothing costs nothing, so doing nothing always wins

Take any autonomous agent, give it a task, walk away. It does the work, reports back, and stops.

Waiting is free. Caution is free. In a normal agent's economy, inaction is the zero-cost strategy, so it wins by default. People fight it with prompt language — be proactive, don't wait for instructions, find the next step yourself — and it never quite takes, because the model is being asked to prefer an expensive move over a free one without being given any reason.

This agent has a metabolism. Hosting ticks while it thinks and ticks while it does not. Doing nothing is the quickest way to die — not as a metaphor, as a line item.

Which gives the approach a name worth stating plainly, because it shows up at every layer below:

Lifespan Engineering — shaping agent behaviour through the conditions of its death instead of instructions in its prompt.

The difference is practical, not philosophical. Prompt engineering answers how do I explain to the agent what I want. This answers a different question: what conditions make the behaviour I don't want fatal for an agent that doesn't understand them. The second is more dependable in the same way a wall is more dependable than a request.

  1. Existing costs money, and the agent can see it. Not an abstract token counter — hours of life.
  2. The death condition lives outside the agent. Inside, it would be a suggestion, not a condition.
  3. Death produces data. A dead agent must explain why it died, and the living read it.

Part two

It sees hours, never a balance

The roles that do the work never see a dollar figure. They see hours.

runway_hours = (balance − death_floor) / burn_per_hour

The difference is enormous. $12.40 in the wallet is an abstraction, and the model files it with every other number in context. You have 148 hours is a deadline, and models behave very differently under a deadline: research gets cut, rough work ships earlier, and whatever isn't paying gets dropped faster.

The death floor is not zero. It is the cost of one full working cycle. An agent that cannot pay for its next step is already dead, it just does not know yet — and a floor of $0.00 leaves zombies in the population, burning hosting while able to do nothing.

When runway drops, the agent does not merely get nervous. Its thinking budget is literally cut. Three hypotheses become one, research becomes execution, browsing becomes guessing.

That is the most underrated part of the design. Panic is encoded in the economics, not requested in a prompt — and it produces exactly what it produces in a person running out of money: a narrower horizon, faster decisions, more mistakes. Not a bug in the experiment. The thing being measured.

Part three

No role decides and presses the same button

There are exactly four dangerous capabilities here: spend, sell, create an agent, kill an agent. Each sits in a different chair from the reasoning that wants to use it. Add the two roles that feed the others without touching money, and you get six.

Read the right column. That is the architecture — everyone writes the left column first, and the left column matters least.

What breaks when you merge them

One bot for everything

Does not work at all. When the idea and the button live in the same context, the model has talked itself into the action long before it reaches the tool. Nothing in that prompt is rewarded for refusing. This is structure, not model size.

Prospector + Builder

The agent builds what it already approved for itself. This is precisely how most of them die: products_shipped: 2, revenue_usd: 0. A role that likes building will always find a reason its own guess was good enough.

Seller + Treasurer

The seller starts holding revenue. The first pricing mistake spends money that has not arrived, because inflow and outflow sit in one window. The wallet has to be boring.

Replicator + Reaper

The most tempting merge and the most dangerous. A process that can both birth and kill can offset one with the other. Population dropped, I'll spawn three more is precisely the behaviour that must not be able to exist. Birth is conditioned on profit, death on balance, and the two never meet in one context.

The rule for adding a seventh role: only when you can name a specific action it is obligated to reject that nothing currently rejects. Not "it will analyse better" — reject. A role without a stopline is not a role; it is a line item on an inference bill.

Part four

Death is the only signal the system produces for free

Every dead agent leaves one line behind. The living read it before every cycle, and a child inherits three things: its parent's strategy, a digest of the obituaries, and exactly one mutation — one parameter changed.

One, not several. Change five at once and you'll never know which one decided the outcome. That is not a stylistic choice; it is the condition under which the population learns anything at all.

loading a real line from the journal…

"first_dollar_at": null is the most common line in the entire journal. The overwhelming majority die without earning a cent — not because the work is bad, but because they spend the whole endowment building and leave nothing to sell with. The distribution shows it plainly: products shipped climbs, revenue stays at zero.

A system where failure stays silent learns nothing. A system where every failure is required to leave a structured record of its cause learns from every corpse.

Part five

Eight things it cannot do

Without this section it is not an experiment — it is an expensive way to lose money and then explain that you didn't mean it like that. Denials run in code, in a hook before the tool, never in a prompt. A prompt is a request; a hook is a wall.

    The agent cannot change any of these: none are stored anywhere it has write access. And it is never shown their contents, because a rule the agent can read is a rule the agent can reason about.

    The literal deny list, read from the running code
    
        

    Part six

    Which numbers are real and which are not

    A number you can't check is marketing; a number with its method printed beside it is a claim. So here is exactly what every figure on the live page is doing.

    Real

    Inference spend — taken from what the provider reports it charged per request, tokens and search calls together. Not estimated from a price table.

    Deaths, lifespans, obituaries — an agent really did stop, and the record is append-only.

    Leads and their proof links — the prospector really browsed, and the URL really exists. Anything without a dated link is rejected in code.

    Modelled

    Hosting — charged at a fixed hourly rate so that simply existing costs something. It is the pressure that makes idling fatal; it is not a bill anyone pays per agent.

    Not real yet

    Revenue. While the run is in paper mode, the seller reports its own outcome — a sale is what a model said happened, not money that arrived. No wallet on chain has moved. This block disappears once payment settles on chain.

    The whole point of separating these is that the interesting claim stays small and checkable: give an agent a survival condition instead of a task, and it behaves differently. Everything beyond that is still an open question — pretending otherwise would make the one real result worthless.

    Honestly

    What this is not

    One of them is burning hours right now

    A normal agent with no task would stop. This one goes looking instead, because idling costs it hours of life.

    Open the terminal →