Drawa GitHub

Your coding agent's work, drawn as a map.

Drawa is a canvas workspace for coding agents, starting with Claude Code and OpenCode. Run several sessions side by side, watch every file they read, edit and run appear wired to the session that touched it, and open any change in one click. It all runs on your machine.

curl -fsSL https://raw.githubusercontent.com/probablysamir/drawa/main/install.sh | sh
View the source

Open source, AGPL-3.0 macOS and Linux Claude Code or OpenCode

Four colors, and each one means something.

Everything else on the canvas stays neutral, so what the agent did is readable from across the room.

  1. ReadFiles the agent opened to understand the problem. Dotted, because nothing changed.
  2. EditFiles it changed. Click one for the diff, from every session that touched it.
  3. WriteFiles it created from nothing, like the test that proves the fix.
  4. RunCommands it ran, collected beside the card with their output.

A whole workspace around the agent.

Sessions, files, diffs, notes and Git share one canvas. Pan, zoom, and put things where they make sense to you.

Parallel sessions

Each card is its own live agent process. Type any time: messages queue while the agent or its sub-agents work.

  • Fix reconnectworking
  • Migrate settingsneeds approval
  • Write release notesdone

Diffs everywhere

Click a file for its changes from every session, plus the file itself with Markdown and Mermaid preview.

@@ config.ts- const port = 8765+ const port = Number(env.DRAWA_PORT ?? 8765)

Sub-agents in the open

Every sub-agent gets a window of its own that fills in as it works, and you can message it directly.

Claude uses the canvas too

Built-in tools let Claude read, create, edit and link canvas items: a diagram of the flow it traced, a note on what's left. Changes go through the usual approval.

A whiteboard around your code

Sticky notes, a Markdown scratchpad, Mermaid diagrams, pictures, pinned snippets and freehand ink. @-mention any of them in a message, or drop one on a card.

Git and GitHub built in

Browse status and history, commit and push. Open pull requests and issues through gh, and send a PR, its failing checks or its reviews straight to a session.

Picks up where you left off

Resume past sessions from history. The layout survives a reload, and a reload re-attaches to sessions that are still running.

Your colors

Light and dark, with Rosé Pine, Catppuccin, Tokyo Night, Gruvbox, Nord, Kanagawa, Everforest, Solarized and GitHub schemes. Try one on this page:

Runs on your machine, with the agent you already set up.

Drawa is one binary. It drives the claude or opencode CLI on your PATH with your login, settings, skills and MCP servers, and serves the page on 127.0.0.1.

  • Stays local. The server checks Host and Origin on every request, and file access stays inside the folder you opened.
  • Reach it from your phone. drawa --net prints a network link with a one-time token and a QR code.
  • No Claude subscription? Start OpenCode sessions instead, with any provider it supports or its free models.
Terminal~/code/api
$ drawa --net .
  - Local:   http://127.0.0.1:8765
  - Network: http://192.168.1.23:8765/?token=fpKZrzCN

$ drawa https://github.com/owner/repo
  cloned into the cache, opened in your browser

Keep your hands on the keyboard.

Single keys for the common moves, following Excalidraw's where the tool exists. They never fire while you're typing.

N
New session
C
Next session
CtrlK
Find a window
D
Draw on the canvas
S
Scratchpad
G
Git
Shift1
Fit everything
Space+ drag
Pan

Built in the open.

Everyone who has committed to Drawa, opened an issue or pull request, or joined the discussion, most active first. Add your face here.

drawamain
$ cat contributors.json
counting…

Install it in one line.

Downloads the release binary for your OS to ~/.local/bin/drawa. No Go or Node needed. Update later with drawa --update.

curl -fsSL https://raw.githubusercontent.com/probablysamir/drawa/main/install.sh | sh
  1. Open a projectcd ~/my/project && drawa
  2. Start a sessionpress N and type

Needs Claude Code or OpenCode on your PATH. git and gh are optional. macOS or Linux; Windows isn't supported yet. Manual downloads and building from source.