Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Excaliboard

Wilson NetoWilson Neto37 downloads

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.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates3

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.

Obsidian with a vault of drawings. The Sharding drawing opens from the file explorer in the Excalidraw editor, fitted to the tab; a box labelled Cache is drawn and joined to the routing tier with an arrow; the tab is closed and the drawing opened again with the change kept at the same zoom; then Obsidian switches to its dark theme and the drawing follows

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.

Features

  • The Excalidraw editor. The official @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.
  • Plain files. A drawing is standard Excalidraw JSON, images included, with nothing added. Keys that another tool put at the top of the file are kept when Excaliboard saves it.
  • Written only when you change it. Opening a drawing, scrolling, zooming and selecting never write the file. A change is saved 2 seconds later, as soon as you switch to another app, when the tab closes and when you quit; Cmd/Ctrl+S saves at once.
  • A drawing is never lost. Before its first save in a session, the drawing is copied to a session backup, and each save keeps a copy of the new version until the drawing is written, so quitting during a save can't leave it cut off. A drawing that holds something this Excalidraw version can't read, such as the sticky notes excalidraw.com saves today, opens read-only and stays exactly as it is, instead of losing those parts on the next save.
  • Changes from elsewhere show up in place. A change made by Obsidian Sync, iCloud, git or another tab appears in the open drawing. If you had unsaved edits too, yours are kept and saved, and the other version goes to the session backups.
  • At home in Obsidian. New drawings from a folder's menu, the ribbon or the command palette; links on shapes that open your notes ([[Note]]) and websites; Export image in the tab's menu; your light or dark theme and your accent colour.
  • Each drawing as you left it. The scroll position and zoom are kept for the 200 drawings you opened most recently, in the plugin's own data.
  • On your phone, to read. On phones and tablets, drawings open read-only: pan, zoom and tap a link on a shape to open the note. Edit them in Obsidian's desktop app (On phones and tablets).
  • Offline. The editor and its fonts are inside the plugin, and nothing goes online, not even the parts of Excalidraw that would (How it works).
  • Drawings from your AI agent. An agent skill teaches Claude, or another agent, to write drawings that open here (For AI agents).

How it compares

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.

Getting started

Open and create drawings

  • Open: click a .excalidraw file in the file explorer, or open it from a link, the quick switcher or search.
  • New drawing: right-click a folder in the file explorer and choose New drawing to make it in that folder. The ribbon button (the shapes icon) and the command Excaliboard: Create new drawing make it in the folder set in Settings > Excaliboard or, when that is empty, where Obsidian puts new notes. A new drawing is named after the time, for example Drawing 2026-11-08 1402.excalidraw, and opens in a new tab; rename it like any file.
  • Export an image: Export image in the tab's ⋯ menu, or the command Excaliboard: Export image, opens Excalidraw's export dialog (PNG, SVG or the clipboard). The menu at the top left of the canvas has it too.
  • Link a shape to a note: select the shape, press Cmd/Ctrl+K and type a note's name in double brackets, such as [[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.)
  • Link a shape to another shape: right-click a shape and choose Copy link to object, then paste that link on another shape. Clicking it scrolls to the first shape, here and on excalidraw.com.

New drawing from the Drawings folder's menu opens an empty drawing in a new tab; a box labelled Read the sharding notes is drawn, Cmd+K gives it the link [[Sharding]], and clicking the link icon on the box opens the Sharding note

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.

Keys

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 phones and tablets

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.

What a drawing looks like as a file

{
  "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.

How it works

  • Opening. Excaliboard reads the file and checks it before the editor sees it: it must be Excalidraw JSON, and every element must be one Excalidraw 0.18.1 can load. If not, the tab shows why, and the file is never written. The editor itself, about 2.5 MB of code, is part of the plugin but runs only when the first drawing opens: at startup, Obsidian only reads it. Excalidraw's translations of its interface are left out, as it runs in English here, and so is its font subsetting (see Offline), which keeps 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).
  • Saving. Every change in the editor is compared with the drawing as it was read or last saved. Scrolling, zooming and selecting change nothing that is saved, so they never cause a write. A real change is saved 2 seconds later, as soon as Obsidian's window loses focus or is hidden, when the tab closes, when another file opens in the tab and before Obsidian quits, in the standard JSON from Excalidraw's own serializer.
  • Never cut off. A save is Obsidian's own write, through its vault API. That write is asynchronous, and a large file is written in pieces after it has been emptied, while Obsidian gives a closing window 3 seconds: a quit during a write could leave a drawing cut off. So the new version is first copied to .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.
  • Session backups. Before the first save after a drawing is opened, its previous version is copied to .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.
  • Changes from elsewhere. When the file changes on disk while it is open (sync, git, another tab) and you have no unsaved edits, the drawing is replaced in place and nothing is written back. With unsaved edits, yours win, and the version from disk is backed up first; a notice says so.
  • Offline. The fonts of Excalidraw's font picker are embedded in the plugin. Chinese, Japanese and Korean text uses a system font, since Excalidraw's handwritten CJK font alone is 12 MB. Excaliboard also keeps Excalidraw itself from going online, wherever a drawing's content comes from (a file, a paste, a drop, the library): embedding web pages is turned off; pictures load only from the drawing itself, so one stored as a web address shows as a picture that failed to load (which isn't counted as a change); a paste from a web page goes in as its text, without its pictures; a web page made by Excalidraw's AI tools shows a note in its place; the library shows its items as images, which can't load anything; and the library's Publish, an upload, is hidden. Excalidraw gets only a drawing's elements, pictures and saved settings, never other settings or a library stored in the file. The Mermaid-to-Excalidraw importer is left out, which keeps the plugin smaller and free of known advisories. So is Excalidraw's font subsetting, WebAssembly run through code it generates: an SVG export holds each font it uses whole, rather than only the letters used, as Excalidraw itself does when subsetting fails.
  • One window. Excalidraw works only in Obsidian's main window. A drawing moved to a separate window shows a note to move it back, after its pending edit is saved.

For AI agents

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.

Installation

  • From Community plugins (once Excaliboard is listed in the directory): Settings > Community plugins > Browse, search for "Excaliboard", then select Install and Enable.
  • Manually: download 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.

Privacy

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.

Building from source

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.

Feedback

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.

Sponsor

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.

License

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.

More plugins by the author

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.

HealthExcellent
ReviewPassed
About
Edit .excalidraw drawings in Obsidian using the official Excalidraw editor inside a tab. Keep each drawing as a plain Excalidraw JSON file (images included), write files only when changed so opening/zooming/scrolling never alters them, preserve unknown keys, create session backups, and reflect external changes live.
DrawingFiles
Details
Current version
0.3.0
Last updated
4 days ago
Created
4 days ago
Updates
3 releases
Downloads
37
Compatible with
Obsidian 1.15.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
GitHub Sponsors
Author
Wilson NetoWilson Netowilsonneto-swe
GitHubwilsonneto-swe
wilsonneto-swe
GitHubwilsonneto-swe
  1. Community
  2. Plugins
  3. Drawing
  4. Excaliboard

Related plugins

Excalidraw Extras

Companion plugin for Excalidraw high-privilege and large components.

tldraw

Integration with tldraw, allowing users to draw and edit content on a virtual whiteboard.

Notebook Navigator

A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.

Excalidraw

Visual PKM powerhouse. Create and edit Excalidraw drawings.

Claudian

Embeds Claude Code/Codex and other local Agents as AI collaborators in your vault.

Advanced URI

Control everything with URI.

Mermaid Tools

Improved Mermaid.js experience: visual toolbar with common elements and more.

Thino

Quickly capture memos and display them in the sidebar with a heatmap. (Closed source)

Local REST API with MCP

Unlock your automation needs by interacting with your notes over a secure REST API.

ChatGPT MD

A seamless integration of ChatGPT, OpenRouter.ai and local LLMs via Ollama into your notes.