Drawgent puts Claude Code, Codex or opencode on a live Excalidraw canvas

Drawgent puts Claude Code, Codex or opencode on a live Excalidraw canvas

Drawgent is a tool that connects a coding agent, specifically the user's own installed and logged-in Claude Code, Codex or opencode, to a live Excalidraw whiteboard. Instead of typing prompts into a terminal, the user asks for a diagram in a chat panel next to the canvas, or writes a note starting with "AGENT:" next to (or inside, or pointing at with an arrow) the part of a drawing they want changed. The agent looks at the canvas by taking a screenshot and reading the underlying scene data, edits the drawing live, checks its own result, and marks the note "DONE" in green. Editing the note back to "AGENT:" sends it again.

Setup runs once per agent via "drawgent setup ", which checks that the agent CLI is on the PATH and logged in, installs the official ACP (Agent Client Protocol) adapters for Claude Code and Codex (opencode speaks ACP natively), and sets up a renderer. The ACP adapters are installed once into a local cache directory and are about 60 MB, not counting the agents' own bundled binaries; the Claude and Codex bridges also require Node.js 18 or later. For rendering the canvas, setup either uses an existing Chrome or Chromium install or offers to download Chrome Headless Shell (Chrome for Testing), about 120 MB, with no sudo needed, or to install Chromium through the system package manager. "drawgent up" refuses to start until setup has succeeded for the chosen agent.

Running "drawgent up" inside a project directory starts an editor and API on 127.0.0.1:7300 (or the next free port), launches a new agent session over ACP working in that directory, and opens the canvas in the browser (on a headless machine it prints an SSH tunnel command instead). "drawgent up --attach" instead connects the canvas to a coding session the user is already running. On the canvas itself, an "AGENT:" note fires about 2.5 seconds after the user stops typing, carrying its position, what it points at and what is nearby. There is also a "laser zone" feature: drawing with Excalidraw's laser tool circles or scribbles an area, leaves a red outline, and opens the chat panel with a chip listing the elements under that zone; separate strokes made within 4 seconds of each other are grouped into a single zone. Prompts are queued and processed one at a time.

Drawgent can also join an excalidraw.com room as a collaborator, appearing with its own cursor, so that people working purely in the browser can write "AGENT:" notes that reach the connected agent and see its edits appear live; traffic to such rooms is end-to-end encrypted with the room's key. A Docker Compose setup can run a bare canvas server, without any agents bundled in, for hosting a shared canvas or room bridge; the documentation stresses that agents are never bundled and always run through the user's own local setup. The project also exposes an MCP server and a small HTTP/WebSocket API for scripting.

The documentation lists several current limits: the renderer needs Chrome for now, with a native renderer only planned; Claude's "attach" mode is implemented as a forked session because Claude Code has no public way to inject into an already-running terminal session; Codex's live attach is implemented but had not yet been tested against a logged-in Codex; and each workspace supports only a single scene, with images and files not synced.

Key facts

  • Drawgent connects a user's own logged-in Claude Code, Codex or opencode agent to a live Excalidraw canvas via the ACP protocol, without bundling any agent binaries itself
  • Users request edits by chatting in a side panel or by writing 'AGENT:' notes on the canvas, which fire about 2.5 seconds after typing stops and get resolved into green 'DONE:' notes
  • One-time setup installs ACP adapters for Claude Code and Codex (about 60 MB) and, if needed, a Chrome Headless Shell renderer (about 120 MB); the Claude/Codex bridges require Node.js 18+
  • It can join an excalidraw.com room as a live collaborator over end-to-end encrypted traffic, so browser-only users can leave notes for the connected agent
  • Known limits: Chrome-only rendering for now, Claude's attach mode runs as a forked session, Codex live attach is untested against a logged-in session, and only one scene per workspace with no image/file sync

Why it matters

Most coding-agent workflows are text-only: a terminal or chat window in, code changes out. Drawgent puts the same agents (Claude Code, Codex, opencode) on a visual, editable surface instead, so architecture diagrams, flowcharts or UI sketches can be handed to an agent the same way a human collaborator would be handed a whiteboard marker, with the agent reading the drawing, changing it, and reporting back inline.

Who it affects

It is aimed at developers who already use Claude Code, Codex or opencode locally and want those agents to work on diagrams rather than only on files, plus anyone collaborating on an excalidraw.com whiteboard who wants an agent to respond to notes left directly on the drawing.

How to use it

Users need one of Claude, Codex or opencode already installed and logged in, then run 'drawgent setup ' once (which installs ACP adapters of about 60 MB and, if needed, a roughly 120 MB Chrome Headless Shell renderer) and 'drawgent up' inside a project to open the canvas, or 'drawgent up --attach' to connect it to an already-running agent session. Requests go through a chat panel, inline 'AGENT:' notes, or laser-tool zones circled on the canvas; the tool can also join an existing excalidraw.com room as a collaborator, and offers an MCP server and HTTP/WebSocket API for scripted use.

How solid is it

The account here comes from drawgent's own documentation, which is detailed about mechanics (protocols, ports, file paths, timing windows) and candid about current limitations rather than making broad claims; no independent report or user testimonial is part of this material, and no author, company or version number is stated.

Risks and caveats

The documentation itself flags that the renderer currently depends on Chrome, that Claude's live-attach mode works around a missing integration point by forking a session, that Codex's live attach has not yet been tested against a logged-in Codex, and that each workspace is limited to a single scene with images and files left unsynced.

“The renderer needs Chrome (a native renderer is planned).”

— drawgent documentation