When chat is the wrong UI
We're 176 years into this AI experiment. Wait, no — three years. Sometimes I can't even tell if a memory is mine or something my dad told me as a kid.
Anyway, three years in and chat is still the primary interface for LLMs. I'm pretty sure @pmarca argued for a textarea component in the HTML spec — I know that because I asked AI about it. In a textarea.
Steven Pinker put it better than I can: it's a shame the first large-scale AI implementation was a gimmick, a first-person chatbot. The real promise is task-oriented AI. And if an academic said it and I'm quoting it in a post, it must be true.
Chat became the default because it was the first thing people clicked with. It's a universal solution because nobody knows what users will throw at it. But you know what you're going to do with it — and that's exactly when chat fails you.
What you actually need is a customizable UI you can manifest on demand. In GitHub Copilot, that's called a canvas — a full-stack app that runs inside the Copilot app with zero browser chrome. The agent talks to the server side, the server talks back, and you get a surface that does anything a normal program can, plus bidirectional communication with the agent.
Sounds hand-wavy, so let's make it concrete.
I built a Connect 4 game as a canvas where I could play against the agent inside Copilot. I absolutely destroyed GPT-5.6 Sol on high reasoning. Then GPT-5.6 Luna beat me with no reasoning at all. Listen, Connect 4 is a hard game.
Building one is as simple as asking:
Create a new canvas that uses the Connect 4 game to demonstrate the ability for the user to interact with the canvas for the canvas to talk to the agent and for the agent to control the canvas
The app already knows what a canvas is. No further explanation needed.
Because canvases are real full-stack apps, not just web pages, they can call third-party APIs and execute code locally on your machine. I built a Winget UI that browses the registry and manages local packages — install, uninstall, the lot. No AI involved, and that's the whole point.
Chat pushes you to use the agent for everything, which is just burning tokens. It's almost always better to have the agent build a tool where future interactions are free than to treat the agent itself as the tool. Stop asking GPT-5.6 Sol Max to "stage and commit" every time. I know you do it — I do it too. Don't token-shame me.
Same logic applies to SQL workflows. Instead of asking chat to run queries for you, have it build a proper query UI once. Then every subsequent query is instant and free.

The author’s 176-year vs. three-year slip nails how AI warps time perception—memory blurring isn’t just poetic, it’s cognitive drift from constant synthetic interaction.