Software Survival 3.0
Everyone is arguing about whether AI will write the code. Yegge takes that as settled and asks the next question: of all the software that exists, which pieces will agents keep reaching for — and which quietly go extinct because nobody, human or model, has a reason to invoke them anymore?
the survival fitness function
Yegge's frame is evolutionary. Compute is finite and metered, so there is real selection pressure, and software that survives is software that pays for itself in saved cognition. He compresses the whole model into one relation:
Survival(T) ∝ (Savings × Usage × H) / (Awareness_cost + Friction_cost)— Software Survival 3.0, the survival fitness function
Read the numerator as "why an agent bothers": how much thinking the tool saves, how broadly it gets used, and how much humans (H) want it in the loop. Read the denominator as "what it costs to get there": the energy an agent spends becoming aware the tool exists, plus the friction of actually using it. The thesis underneath the algebra is blunt:
"Software tends to survive if it saves cognition."— Software Survival 3.0
the six levers
The function is not just a scoreboard — it factors into six things you can actually move. These are Yegge's names, verbatim:
- Insight Compression — crystallized knowledge that would be expensive to re-derive from scratch. Git-shaped tools; the "Savings" term at its purest. Build something it would be crazy to re-synthesize.
- Substrate Efficiency — do the same computation more cheaply, either with a better algorithm or by moving the work to a cheaper substrate (CPUs, humans, even, in his phrasing, chimpanzees). This is where grep wins: it does its job without burning GPU tokens.
- Broad Utility — the "Usage" term. Wide applicability means more invocations, more reasons for the tool to persist in the training distribution and the ecosystem.
- Publicity — the lever that lowers Awareness_cost. In a crowded domain, agents won't find you by default; publicity is how you get into their field of view.
- Minimizing Friction — the lever that lowers Friction_cost: fewer errors, retries, and misunderstandings when an agent actually drives the tool.
- The Human Coefficient — the "H" term. Software humans still want in the loop keeps a survival edge that pure agent-efficiency doesn't buy.
"Nobody is coming for grep."— Software Survival 3.0, on substrate efficiency
Insight Compression is the lever he's proudest of, and the one he frames most memorably — durable software as stored thinking you can spend later:
"These systems are, in a meaningful sense, crystallized cognition, a financial asset, very much like (as Brendan Hopper has observed) money is crystallized human labor."— Software Survival 3.0
awareness cost
This is the part worth slowing down on, because it's easy to miscount. There is no lever literally named "awareness." Awareness is a cost in the denominator — and Publicity is the lever you pull to shrink it. Yegge defines it plainly:
"Awareness_cost is the energy required for agents to know the tool exists, understand what it offers, and choose to reach for it."— Software Survival 3.0
The dividing line is in-distribution versus not. A tool that's all over the training data — grep, Git, the common Unix furniture — costs an agent essentially nothing to know about. It's already in the weights; reaching for it is free. Your obscure internal tool is not in the weights. For an agent to use it, someone has to pay: to get it into future training data, or to spend inference-time tokens every session explaining what it is and why to call it. That ongoing tax is the awareness cost, and Yegge expects it to rise as agent attention becomes the scarce resource — a new attention economy where big, mediocre, well-known players may out-survive better tools simply because they're already recognized.
what it means for what you build
The framework is a design checklist. If you want your software to survive the transition, push on the numerator and starve the denominator: pack in cognition that's costly to re-derive, run it on the cheapest substrate that works, make it broadly useful, keep a reason for humans to want it — and then pay down awareness and friction so an agent can actually find it and drive it without fighting.
Friction is where Yegge has been doing the empirical work. His agent-first issue tracker Beads — a CLI with 100+ subcommands, built for agents rather than humans — got its low friction by watching what models tried to do and then making those attempts real:
"What I did was make their hallucinations real, over and over, by implementing whatever I saw the agents trying to do."— Software Survival 3.0, on Beads' "Desire Paths"
That's the loop: agents keep reaching for a path that doesn't exist yet, so you pave it, and next time the tool behaves the way they already expected. His orchestration project Gas Town is the same bet at larger scale — software shaped by taking the exponential seriously rather than waiting for it. The uncomfortable corollary for everyone else: a tool can be genuinely excellent and still go extinct if agents never learn it exists or hate using it. Survival is not just quality; it's quality divided by the cost of being noticed.