Skip to main content
A whiteboard is a freeform Excalidraw drawing saved as a markdown file with an .excalidraw.md suffix. Because the drawing lives in a plain file, it gets git history, travels over every protocol, and embeds in other pages. Use a whiteboard for sketches, brainstorming, and hand-drawn diagrams. For structured diagrams built from cards and page references, use a canvas instead.

File format

KiwiFS uses the same layout as the Obsidian Excalidraw plugin, so drawings open in both tools. The scene JSON sits in a fenced block under a ## Drawing heading.
whiteboards/architecture.excalidraw.md
The elements array holds the shapes, arrows, and text you draw. KiwiFS also reads drawings saved as LZ-string compressed scenes in a ```compressed-json fence, and keeps them compressed when it saves. New whiteboards go under whiteboards/, named from the title you enter:
whiteboards
architecture.excalidraw.md
brainstorm.excalidraw.md

Web UI

1

Open the whiteboard hub

Click Whiteboard in the toolbar. The hub lists every .excalidraw.md file and reopens the last one you used. If none exist, it creates whiteboards/untitled.excalidraw.md.
2

Create or pick a board

Click New whiteboard and enter a name, or pick a board from the dropdown.
3

Draw

Use the Excalidraw tools to sketch and annotate. Changes save about 1.5 seconds after you stop drawing. Saves use the file’s ETag, so a conflicting edit from another client is rejected instead of overwritten.
Opening an .excalidraw.md file from the file tree opens it on the whiteboard. Hide the Whiteboard toolbar button with whiteboard = false under [ui.features].

Embed a drawing in a page

Embed a whiteboard with wiki link embed syntax. The page shows a read-only preview with a button to open the full board.
concepts/auth.md
The same syntax embeds a canvas, for example ![[canvases/auth-flow.canvas.json]].

Agents and whiteboards

Whiteboards need no dedicated API. Agents read and write them with kiwi_read and kiwi_write, or with GET and PUT /api/kiwi/file, like any other page. To change a drawing, replace the JSON inside the ## Drawing fence and keep the rest of the file intact.
For diagrams that agents generate or edit often, prefer a canvas. Its typed nodes and PATCH endpoint are easier to change precisely than raw Excalidraw elements.

Canvas

Structured JSON Canvas diagrams.

Wiki links

Link and embed syntax.

Files as truth

How KiwiFS stores everything on disk.

Web UI

Toolbar views and the file tree.
Last modified on October 19, 2026