About
About claude-canvas
What it is
claude-canvas is a plugin for Claude Code, Anthropic's terminal coding agent. It opens a real interactive terminal pane beside the conversation, so that when the answer to a question is a choice rather than a sentence — which file, which hunks of a diff, which meeting slot, which values in a form — you make that choice in an interface instead of typing a number back into a chat.
The selection returns to Claude over a socket bound to localhost, as structured data. That is the point in both directions: you see the real thing instead of a description of it, and the agent receives an exact value instead of parsing prose back into an intent.
Why it exists
Prose is a poor carrier for a decision. A numbered menu in a chat window forces the person to hold a mapping in their head, and forces the agent to guess what "the second one, but not the formatting changes" meant. Both ends of that exchange lose information that a list, a form or a diff viewer would have kept.
Who maintains it
Santiago Gómez de la Torre Romero — https://sgomez.dev ↗. Issues, questions and pull requests go to the repository: sgomez-dev/claude-canvas ↗. For anything that does not belong in a public issue, write to contacto@sgomez.dev.
What it forks
This is a fork of dvdsgl/claude-canvas ↗ by David Siegel, substantially extended. The original made the case that a coding agent should be able to show you something rather than describe it; this fork added the generic primitives, canvas composition, the image pipeline and the terminal-capability detection. The MIT licence carries both copyrights.
What it is built with
TypeScript on Bun, with React and Ink rendering the terminal interfaces. The plugin and each canvas talk over a length-prefixed JSON protocol on a loopback TCP socket, with a per-canvas token. Panes are opened through tmux or Windows Terminal, whichever the environment provides. It ships as a prebuilt bundle with no runtime dependencies, so installing it needs no build step, and its test suite runs on macOS, Linux and Windows in continuous integration.