expectedwrong hindsight

The Interface Is a Cache Miss

Someone got within one decision of a genuinely new thing, and Karpathy noticed.

3 min read 441 words #ai #software #ui #llm #karpathy
hindsight — nailed it

Karpathy's cached-LLM insight aged like a thesis statement for the next two years. AI-generated UIs shipped — v0, Claude artifacts, Cursor. The interface really is a cache miss now.

The person who almost got it had one foot out of the old world and kept the other planted firmly in it. They took LLMs seriously enough to build with them, stopped right at the edge of the obvious conclusion, and asked themselves: okay, but where does the interface live?

In a file. They put it in a file. That was the decision.

Karpathy's tweet reads like a tautology until you sit with it — deterministic software is just cached LLM software. Your app, my app, every modal and sidebar and dropdown that a human spent weeks arguing about in Figma, is something an LLM would have generated for you on the spot if you'd asked. We just decided to write it out ahead of time and call that a product.

That was reasonable. For a while.

The trap everyone is still inside — including the person who almost escaped it — is that an interface is a thing. A noun. A deliverable. You build it, you ship it, the user uses it. The LLM helps you build it faster. This is the entirety of what most people mean when they say "AI-native software," and it is, in the Karpathy framing, just a more expensive version of the cache.

What's coming is that the interface is an event. It happens once, for you, while you're asking for it, and then it stops existing. There's no file. No Figma doc. No product review about whether the button goes on the left or the right, because by the time anyone could schedule that meeting the button has already appeared exactly where you needed it, served its purpose, and dissolved.

Diffusion models don't store images. They generate them. The people in Karpathy's replies are finally saying this out loud about UI — which means we have maybe a week before someone ships it.

The one decision. That's what I keep coming back to. Whoever built the thing Karpathy was looking at did everything right until the moment they decided to have an interface at all — treated the generated UI as output rather than loop, handed it to the user instead of keeping the user inside the generation. One step further and they had something genuinely new. Instead they have a faster way to do the old thing.

There is a specific kind of mistake that only very smart people make. You understand the current paradigm so well that you can push it further than anyone else — and that's exactly the problem. You are extremely good at the wrong level of abstraction.

The interface is the cache. The cache was never the point.