Wilson Neto37 downloadsDraw in your vault with the Excalidraw editor. Each drawing stays a plain .excalidraw file that excalidraw.com opens, written only when you change it.
Your drawings stay plain .excalidraw files that excalidraw.com opens, and Excaliboard writes one only after you
change it: opening, scrolling and zooming leave the file byte for byte as it was.
Draw in your vault with the Excalidraw editor. Each drawing stays a plain .excalidraw file that excalidraw.com opens, written only when you change it.
Excaliboard opens .excalidraw files in the official Excalidraw editor, in an Obsidian tab. A drawing is an ordinary
file in your vault, in the JSON that excalidraw.com writes when you save to disk, so it opens there too, diffs in
git and syncs with whatever syncs your vault. Excaliboard adds no format of its own and keeps nothing in the drawing
that Excalidraw doesn't: what it remembers for you, such as where you left each drawing, stays in the plugin's folder.
@excalidraw/excalidraw 0.18.1: its drawing tools, the hand-drawn fonts,
frames, the laser pointer, the library (not kept yet: it lasts until Obsidian quits, so export what you want to keep
from the library's menu, in the drawing you added it in), image export (PNG, SVG and the clipboard) and Excalidraw's
own shortcuts.
Web embeds, the AI tools and Mermaid import are left out.[[Note]]) and websites; Export image in the tab's menu; your light or dark theme and your accent
colour.Several Obsidian plugins open and edit Excalidraw drawings. The table sets out what each one says about itself on its page in the community directory.
| Drawings are saved as | Editor | Previews in notes | Desktop and mobile | Network use | |
|---|---|---|---|---|---|
| Excaliboard | .excalidraw files, in the plain JSON that excalidraw.com writes, images included |
The official @excalidraw/excalidraw 0.18.1, without web embeds, the AI tools or Mermaid conversion; the fonts of its font picker, with CJK text in a system font |
No | Desktop; read-only on phones and tablets | None |
| Excalidraw | Markdown files with the drawing inside, optionally compressed; compatibility settings for legacy .excalidraw files |
Excalidraw | Yes | Yes | Optional: AI features, OCR, link titles, web images and script downloads; CJK fonts are downloaded from GitHub when needed |
| Just Simple Excalidraw | .excalidraw JSON files, images included |
The official Excalidraw editor, in a lean build: no Mermaid conversion or web embeds, and one Latin font subset | No | Yes | None |
| CanvasDraw | excalidraw code blocks inside notes; pasted images as files in a content/ folder |
The Excalidraw editor, in a full-screen modal | Yes, as an image or a live canvas | Yes | — |
| Excalidraw CN | — | excalidraw-cn, a whiteboard based on Excalidraw with a Chinese handwriting font | — | Yes | — |
The others also do things Excaliboard doesn't: Excalidraw links drawings and notes both ways and adds scripts, LaTeX, OCR and PDF export; Excalidraw CN links shapes to notes and adds table, mind map and Markdown cards; CanvasDraw keeps a set of installed shape libraries; Just Simple Excalidraw takes a custom handwriting font and edits drawings on phones.
.excalidraw file in the file explorer, or open it from a link, the quick switcher or search.Drawing 2026-11-08 1402.excalidraw, and opens in a new tab; rename it like any file.[[Sharding]], or a web address with its https://. Click the link icon on the shape to open it; Cmd/Ctrl-click
opens a note in a new tab. A note that doesn't exist yet is created, as from a link in a note. (Without https://,
an address that starts with www., has a path, or ends in .com, .org or another common ending still opens in the
browser; anything else is taken for a note's name.)
Only one plugin can open .excalidraw files. While another plugin that opens them is turned on (the community
Excalidraw plugin, Just Simple Excalidraw), it keeps them: choose Open in Excaliboard in a drawing's menu to open
one here. New drawings open in Excaliboard either way. When you turn that plugin off, Excaliboard takes the files.
To switch the other way, turn Excaliboard off first, then turn the other plugin on: while Excaliboard has the files,
the other plugin can't load, and Obsidian leaves it off. Turn Excaliboard back on afterwards if you like; it leaves
the files to the other plugin. With the Excalidraw plugin and Excaliboard both on, each brings its own copy of
Excalidraw's styles, which can make the other's editor look slightly off (in a narrow tab, for example): keep the one
you use turned on.
Excalidraw's own shortcuts work while a drawing has the keyboard, which it gets as soon as you open its tab. Press ?
in a drawing for the full list. A few:
| Key | What it does |
|---|---|
| R, O, D, A, L, P, T | Rectangle, ellipse, diamond, arrow, line, pencil, text |
| V or 1, H, E | Select, hand (pan), eraser |
| Cmd/Ctrl+G, Cmd/Ctrl+Shift+G | Group, ungroup |
| Cmd/Ctrl+D | Duplicate |
| Cmd/Ctrl+K | Add a link to the selected shape |
| Cmd/Ctrl+F | Find text on the canvas |
| Cmd+Option+[ and ] on a Mac, Ctrl+Shift+[ and ] elsewhere | Send to back, bring to front |
| Cmd/Ctrl+Enter | Edit the points of the selected line or arrow; finish a text |
| Cmd/Ctrl+Z, Shift+Cmd/Ctrl+Z | Undo, redo |
| Shift+1, Shift+2 | Zoom to fit the drawing, zoom to the selection |
| Cmd/Ctrl+S | Save now |
Obsidian would take some of these for itself; in a drawing they go to Excalidraw: Cmd/Ctrl+G (Obsidian's graph view), Cmd/Ctrl+K, Cmd/Ctrl+D, Cmd/Ctrl+F and Cmd/Ctrl+Enter. Obsidian's other shortcuts keep working: Cmd/Ctrl+P, Cmd/Ctrl+O, Cmd/Ctrl+W, switching tabs and the rest.
On a phone or tablet, Excaliboard opens drawings read-only, in Excalidraw's view mode: drag to move around, pinch to zoom, and tap the link icon (↗) at the corner of a shape to open its note or website. Nothing there changes a drawing, and Excaliboard never writes one: there is no new drawing, image export or setting, and the crossed-out pencil in the tab's header says why. Edit your drawings in Obsidian's desktop app; whatever syncs your vault brings the changes to the phone, and a drawing that is open there updates in place. Scroll and zoom are remembered on the phone too.
Editing on phones and tablets, with touch and an app the system can close at any moment, is yet to be designed and tested; until then, Excaliboard leaves drawings there exactly as they are.
{
"type": "excalidraw",
"version": 2,
"source": "https://github.com/wilsonneto-swe/excaliboard-obsidian",
"elements": [
{ "id": "router", "type": "rectangle", "x": 100, "y": 80, "width": 200, "height": 80, "boundElements": [{ "type": "text", "id": "router-label" }], "...": "..." },
{ "id": "router-label", "type": "text", "text": "Router", "containerId": "router", "...": "..." }
],
"appState": { "gridSize": 20, "gridStep": 5, "gridModeEnabled": false, "viewBackgroundColor": "#ffffff" },
"files": {}
}
Each shape, line and piece of text is one element; images are kept in files as data URLs. The format is
Excalidraw's own, unchanged. More drawings to open are in examples/: database sharding as a system
diagram, a weekend trip plan, and a short tour of Excaliboard itself. Copy the folder into your vault.
main.js at 2.8 MB, well under the 5 MB that Obsidian
Sync's Standard plan syncs. A drawing opened for the first time is fitted into the tab; after that, it opens where
you left it (for the 200 drawings you opened most recently)..obsidian/plugins/excaliboard/saving/, and the copy is removed once the drawing is written. A drawing that can't
be read because its last write was cut off gets that copy back when it is opened, with a notice, and the cut-off
file goes to the session backups. On phones and tablets Excaliboard writes no drawing and keeps no backup:
Excalidraw is locked in its view mode, and a change from elsewhere always replaces the drawing shown..obsidian/plugins/excaliboard/backups/, into a folder of its own whose name is a short code made from the
drawing's path (eight letters and digits), as a file named after the time of the backup (UTC). The newest five are
kept per drawing. A version that changed on disk is also copied there before Excaliboard saves over it.The agent skill in skills/excalidraw-diagrams teaches an AI agent (Claude Code, the
Claude apps, or any agent that reads instructions) to make drawings in your vault: how to lay out a readable
diagram, the file format and its rules, and how to change a drawing without breaking it. Its checker reads a drawing
the way Excaliboard does and reports anything that would open read-only.
Install it in Claude Code by copying the folder into your skills folder, then start a new session:
git clone --depth 1 https://github.com/wilsonneto-swe/excaliboard-obsidian.git
mkdir -p ~/.claude/skills && cp -R excaliboard-obsidian/skills/excalidraw-diagrams ~/.claude/skills/
Then ask, for example: "Draw a diagram of how our checkout service talks to payments, in my Obsidian vault." For the Claude apps and other agents, see skills/README.md. The skill is not part of the plugin: Obsidian never loads it, and the plugin's releases do not include it.
main.js, manifest.json and styles.css from the
latest release into
<vault>/.obsidian/plugins/excaliboard/, reload Obsidian, then enable Excaliboard in Settings > Community
plugins.Excaliboard needs Obsidian 1.15 or later. It edits drawings in the desktop app (macOS, Windows, Linux) and shows them read-only on phones and tablets (iOS, iPadOS, Android): install it there from Community plugins too, or let Obsidian Sync bring it (Settings > Sync > Installed community plugins). Obsidian 1.15 is the first version whose saving the data safety rules can rely on. Excaliboard has been tested with Obsidian 1.15.0 on macOS, including its mobile layout.
Excaliboard works offline. It makes no network requests and keeps the Excalidraw editor from making any
(How it works); it has no telemetry or ads, and needs no account. Excalidraw's fonts are embedded
instead of downloaded. It reads and writes the drawings you open or create, the notes a link on a shape creates, and
the files you pick yourself in Excalidraw's dialogs (an exported image, a picture you insert, a library). It keeps
three things in its own folder (.obsidian/plugins/excaliboard/): data.json, with the folder for new drawings and
the scroll position and zoom of each drawing, backups/, the session backups, and saving/, which holds a
drawing's new version only while it is being saved. Every file goes through Obsidian's vault API: Excaliboard doesn't
use Node's file system, keeps nothing in the window's localStorage and runs no generated code. On phones and tablets
it writes no drawing and keeps no backup.
npm ci # the dependencies, exactly as package-lock.json lists them
npm run build # main.js and styles.css, next to manifest.json
npm run dev # the same, rebuilt on every change
npm run check # Obsidian's lint rules, type checks, tests, the third-party notices and the build
The plugin's code is in src/, with the data safety rules at the top of src/view.ts; skills/ holds the agent
skill, outside the build. Copy main.js, manifest.json and styles.css into
<vault>/.obsidian/plugins/excaliboard/. Releases are built by GitHub Actions when a version tag is pushed
(.github/workflows/release.yml), with build attestations. CONTRIBUTING.md covers trying a build
in a test vault, reporting a bug and sending a pull request.
What would make you switch from the Excalidraw plugin you use now, or from excalidraw.com? Tell us in Discussions, where questions and ideas are welcome too.
Found a bug? Open an issue. Pull requests are welcome and ship with the next version: CONTRIBUTING.md explains how.
Excaliboard is free, works offline and has no ads or accounts. If it is useful to you, you can support its development on GitHub Sponsors.
MIT, see LICENSE. Excaliboard bundles Excalidraw (MIT), React (MIT), their dependencies and Excalidraw's
fonts; their licences are in THIRD-PARTY-NOTICES.md, which main.js also carries at its
end. Excaliboard is not affiliated with Excalidraw.
Mindslate: open a note as a keyboard-first mind map and edit it in place, while the note stays an ordinary heading with a nested list.
Plain Deck: study flashcards written in your notes, with spaced repetition (FSRS); each review is saved as a hidden line under its card, in the same note, so your progress syncs with the vault.