{"slug": "when-chat-is-the-wrong-ui", "title": "When chat is the wrong UI", "summary": "GitHub technologist Burke Holland argues in a GitHub Blog post that chat is the wrong UI for most AI interactions, proposing \"canvases\" — full-stack applications that run inside the GitHub Copilot app with no browser chrome and communicate bi-directionally with the Copilot agent. Holland demonstrates the approach with a Connect 4 game built by prompting the Copilot app and a Winget package-management UI that installs and uninstalls local packages, noting that having the agent build a tool makes future interactions free rather than spending tokens on chat.", "body_md": "### \n[Burke Holland](https://github.blog/author/burkeholland/)\n\nTechnologist, author, speaker, and creator. Working at GitHub where I focus on AI-powered development.\n\nWhat is a developer to do when they need something more tangible than a chat box? Enter canvases.\n\nWe’re 176 years into this AI experiment.\n\nWait…it’s only been three years?\n\nAre you sure?\n\nSometimes I remember things that happened last year, but it feels like it was so long ago. Did that really happen to me, or was it something that happened to my dad and he just told me about it when I was a kid?\n\nAnyway… we’re three years into this AI experiment and the primary interaction surface we have with LLMs is still chat. I’m pretty sure it was [@pmarca](https://x.com/pmarca) who first argued for a textarea component in the HTML spec. And I’m pretty sure of that fact because I asked AI about it. In a textarea.\n\nBut I would like to propose to you that perhaps, just maybe, chat is the wrong UI. Well, at least most of the time.\n\nThe Academic Steven Pinker said it this way…\n\nIt’s kind of a shame that the first large-scale implementation of AI was kind of a gimmick—a first-person chatbot. But there is tremendous promise for AI if it is task oriented.\n\nSteven Pinker, academic\n\nAnd if an academic says it and then I write it down as a quote in a blog post, then you know it’s true.\n\nChat is the primary way of working with AI because it was the first thing that people clicked with. And chat works really well as a universal solution simply because we don’t know what people are going to try to do with AI.\n\nBut as the user you know what you’re going to do with it, and at that point chat is often the wrong UI.\n\nWhat you need, dear reader, is some sort of customizable UI that you can manifest out of thin air to work with the AI (or fight with—you do you) in the way that works for what you are trying to do in the moment.\n\nThere are lots of ways to pull this off, but in the [GitHub Copilot app](https://github.com/features/ai/github-app), this is called a canvas.\n\nA [canvas](https://docs.github.com/en/copilot/how-tos/github-copilot-app/working-with-canvas-extensions) is a little full-stack application that runs inside of the GitHub Copilot app with no browser chrome. The agent can communicate with the server part of that app and the server can communicate back. So what you end up with is a surface that can do anything a normal computer program can do, plus can communicate bi-directionally with the GitHub Copilot agent.\n\nThat sounds very hand-wavy and I did use the word bi-directional which sounds like it’s straight off of a PowerPoint, so let’s look at this concept in practice and see if we can solve actual problems with the mighty canvas.\n\nWe’ll start with a simple example: using a canvas to create a Connect 4 game where you can play with the agent inside of the GitHub Copilot app.\n\nWatch me absolutely DESTROY GPT-5.6 Sol on high reasoning…\n\nOK. But I definitely did beat GPT-5.6 Luna with no reasoning so…LISTEN…CONNECT 4 IS A HARD GAME!!\n\nBuilding a canvas is as simple as asking for it…\n\n```\nCreate 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\n```\n\nThe GitHub Copilot app knows what a canvas is, so we don’t need to explain ourselves any more than that.\n\nNow because these canvases are actually full stack apps and not just web pages, they can call third-party APIs, yes, but they can also execute code locally on your machine.\n\nFor example, here is a UI for Winget that can browse for packages on the registry, as well as manage my local packages, including installing and uninstalling.\n\nThere’s no AI here, but that’s the point.\n\nWhen chat is the primary interface, it encourages you to use the agent to do everything. This is often just a pure waste of tokens. It’s almost always better to have the agent build a tool where all future interactions are free vs treating the agent itself as the tool. Stop asking GPT-5.6 Sol Max to “stage and commit”. (I know you do that. Because I’ve done it. Don’t token shame me, I have a fragile ego.)\n\nAnother great example would be instead of using the chat to ask the agent to do things with your SQLite database, how about you throw up a canvas and, you know, do it yourself.\n\nI mean, you can even have intellisense here. Why not? Its 2026, and AI is a magical box that just does whatever you want.\n\nIsn’t that pleasant?\n\nIt’s nice to write a little SQL every now and again. I said *every now and again*. Relax.\n\nOr why write your Jekyll blog posts in plain Markdown when you can literally bring Windows Live Writer back from the dead.\n\nOk, these are all fun and mildly useful examples, but the value of custom UI gets a lot more clear when you use it to automate your development workflows.\n\nI’m not going to tell you how to live your life, but my process for working with agents looks more or less like this…\n\nIt’s pretty simple, but each one of these steps requires me to be at the keyboard to interact, view prototypes, guide and move between steps.\n\nBut here’s the thing. I don’t actually need to be around for most of this process. The agent is capable of researching and generating prototypes and then letting me know when it’s ready for a review. The goal with agents is always to take yourself out of the loop as much as you can. That’s difficult though, because it’s not clear how to do that when all you have is a chat box.\n\nHere’s a full example of how you can use a canvas to automate your own workflow, removing yourself from the loop as much or as little as you like.\n\nI’m not saying you should copy this workflow or that this is the perfect example of how to work with agents. I mean, it might be. It probably is. Let’s ask AI…\n\nOMG.\n\nIn all seriousness, I do think being boxed in by the chat UI may be working against us all right now. This is making it hard to figure out how to solve actual problems, because it’s not at all obvious what to do when your only method of interaction is a textarea.\n\nGive canvases a try today. Some things like the SQLite canvas you can one shot. The workflow one took the better part of a day to get the design and automation right.\n\nBut I think you’ll find that you can go much further with AI when you think…wait for it…outside the chat box.\n\nIn this blog post, I explain how to use the new fuzzing taskflow based on the GitHub Security Lab Taskflow Agent AI framework.\n\nHow we rebuilt the diff surface in the GitHub Copilot app to open a million-line pull request with hundreds of inline review comments.\n\nWe dive into these questions and other AI hot takes on the latest episode of the GitHub Podcast.", "url": "https://wpnews.pro/news/when-chat-is-the-wrong-ui", "canonical_source": "https://github.blog/ai-and-ml/github-copilot/when-chat-is-the-wrong-ui/", "published_at": "2026-09-24 20:00:00+00:00", "updated_at": "2026-09-24 20:01:15.665049+00:00", "lang": "en", "topics": ["ai-agents", "ai-products", "developer-tools", "ai-tools"], "entities": ["GitHub", "GitHub Copilot app", "Burke Holland", "Steven Pinker", "Winget", "GPT-5.6 Sol", "GPT-5.6 Luna"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/when-chat-is-the-wrong-ui", "markdown": "https://wpnews.pro/news/when-chat-is-the-wrong-ui.md", "text": "https://wpnews.pro/news/when-chat-is-the-wrong-ui.txt", "jsonld": "https://wpnews.pro/news/when-chat-is-the-wrong-ui.jsonld"}}