Documentation

claude-canvas documentation

claude-canvas is a Claude Code plugin. The reference documentation lives with the code, as one skill per canvas, and this page is the index into it.

Install

/plugin marketplace add sgomez-dev/claude-canvas
/plugin install canvas@claude-canvas

Requires Claude Code, plus somewhere a pane can open: an active tmux session, or Windows Terminal. An installed but unused tmux is not enough — the plugin looks for $TMUX, which only exists inside a session.

The canvases

  • picker ↗ — Choose one or more options from a list.
  • form ↗ — Fill in structured fields and submit them together.
  • table ↗ — Read tabular data, with a fixed header and scrolling body.
  • image ↗ — Look at a PNG in the pane: full resolution on kitty, iTerm2 and Sixel terminals, quadrant block cells everywhere else.
  • diff ↗ — Review a unified diff hunk by hunk, approving or rejecting each.
  • dashboard ↗ — Several of the above in one pane, at a glance.
  • calendar ↗ — Display events, or pick a meeting time from several calendars.
  • document ↗ — View or edit markdown, with text selection.
  • flight ↗ — Compare flights and pick a seat (a demo of the machinery).

CLI verbs

  • spawn <kind> — Open a canvas in a new pane. Waits until it is reachable before reporting success.
  • wait <id> — Block for the outcome. Answers selected, cancelled, pending, disconnected or error.
  • update <id> — Push a new config into a running canvas. Resets its interaction state.
  • get <id> <key> — Read state from a running canvas: selection, content, config.
  • close <id> — Ask a canvas to exit.
  • list — Every canvas currently registered, with its host and port.
  • scenarios — Every (kind, scenario) pair, with the interaction mode each one has.
  • show <kind> — Render a canvas in the current terminal instead of a new pane.
  • env — What was detected: the pane host, the image tier, colour and mouse support.

The plugin and each canvas talk over a length-prefixed JSON protocol on a socket bound to 127.0.0.1, with a per-canvas token. There is no HTTP API and no remote surface: it is a local tool.

Machine-readable files

The home page also serves markdown under content negotiation: request / with Accept: text/markdown.

Source and support

https://github.com/sgomez-dev/claude-canvas ↗ — issues and pull requests. For anything that does not belong in a public thread, contacto@sgomez.dev.