Image: GitHub
Why it mattersA team that writes architecture diagrams in Excalidraw can now have an agent fetch, update and render them in a build step or a review flow, without the browser editor open and without a one-off scraper.
A coding agent that can read a diagram does more useful work than one that can only read code. Excalidraw, the drawing tool, released an official command-line interface yesterday that reads, edits and renders its files, and the README names humans and AI agents as the two intended users.
The repository at excalidraw/cli was created on 8 October 2026 under an MIT licence, and the GitHub API reports 86 stars and 3 forks one day later. The package is on npm as @excalidraw/cli, requires Node.js 22, and installs with npm, pnpm, yarn, bun or Volta.
What the tool does
The CLI has two parts. The first manages an Excalidraw+ workspace through its API: it lists, creates, renames, moves, pins and trashes scenes, puts and patches scene content, manages collections, reads workspace users and invites, and queries the audit log. Every list command returns JSON by default, with a --limit up to 100 and an --all flag that fetches every page. Lists also render as a table with -o table, which the README uses in its first example.
The second part renders scenes to PNG without an API key or an account. excalidraw render drawing.excalidraw --out drawing.png turns a local .excalidraw file into an image, and scenes render does the same for a scene inside a workspace. Rendering uses whichever browser is already installed on the machine (Chrome, Edge, Chromium or Firefox) and never downloads one. Scale goes up to 16x, maximum size to 16,384 pixels, output is capped at 64 megapixels, and transparent backgrounds, a specific theme and a single frame of a multi-frame scene are all options. Scenes created in the browser carry their own fonts; CJK text in the hand-drawn font needs a one-time font download the first time a scene uses it.
What is built in for agents
The README lists five choices made for scripts and agents. Output is JSON unless the command is login or logout. The CLI reads EXCALIDRAW_API_KEY from the environment rather than needing a terminal prompt. Every command has --help with worked examples. Partial scene updates work through scenes content patch, which merges elements by ID with version as the tiebreaker and supports isDeleted: true to remove an element without replacing the whole scene. scenes content put, by contrast, replaces the whole drawing, so the file is the source of truth; the README calls out the difference to stop an agent accidentally dropping elements it had not loaded.
The CLI also pipes. cat drawing.excalidraw | excalidraw render - --out drawing.png reads from standard input, and --out - writes the PNG to standard output so another program (the README shows magick) can take it from there.
Known limits
Images in a scene must be embedded in the file; the CLI does not download image URLs or load website embeds while rendering. Workspace commands that update settings, manage users or read audit logs need admin rights, and a personal key that belongs to a member gets HTTP 403. The CLI checks for a newer version once a day while a command runs and prints the result after the output; EXCALIDRAW_NO_UPDATE_NOTIFIER=1 turns that off.
For a team that already stores architecture diagrams in Excalidraw, this is the first supported way to pull one into a build step, generate a PNG for a release note, or ask an agent to patch a flow when the API it describes has moved. Each of those jobs has been possible through the browser or through a private endpoint; the CLI is the one Excalidraw now supports.
Source
- Excalidraw: excalidraw/cli on GitHub
- npm: @excalidraw/cli
This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.
Get AI News in your inbox
New developer tools, model and agent releases, and how teams are actually using them to release software. Short, and only when there is something worth reading.

