Some notes need a diagram rather than a paragraph: a few boxes, a few arrows, a label. Excalidraw is my tool for that - a hand-drawn look, fast, open source. Joplin has had it for years thanks to two people: artikell wrote the original joplin-excalidraw in 2022, and neagix continued it as joplin-excalidraw-v2, with Excalidraw and its fonts packed into the plugin, SVG previews saved automatically and the old drawings converted. That is the plugin I used for my own notes.
This year I wanted three more things from it: the current Excalidraw inside, a dark theme and an editor that fills the whole window. In June I built the first two on top of v2, and fixed the text tool and the hand-drawn font in exported SVGs along the way. In September came the full-size editor, the copy actions and the second window, and the plugin got a name of its own: Excalidraw.
Excalidraw puts Excalidraw drawings in your Joplin notes. A pencil button on the editor toolbar creates one, and it is inserted at the cursor as an ordinary image. The editor is the real Excalidraw app, bundled into the plugin. It fills the whole Joplin window, or Joplin’s normal dialog size - a toggle in the corner switches between the two, and the choice is remembered. Light and dark theme follow Joplin’s own.
Every drawing has four actions. They sit in a hover toolbar over the drawing in the viewer, in the editor’s right-click menu when the cursor is on the drawing’s line, and in Tools → Excalidraw:
- Edit opens the editor.
- Edit in a new window opens the note in a second Joplin window and the editor there, so you can read or type in the note while you draw.
- Copy as image puts a PNG on the clipboard, rasterised at 2× for HiDPI screens. Dark drawings copy dark.
- Copy as JSON puts the drawing on the clipboard in Excalidraw’s own format. Paste it into excalidraw.com, into Obsidian’s Excalidraw plugin or into another drawing here, and you get editable shapes, not a picture.
A saved drawing refreshes in place, in every open window. On disk it is two Joplin resources - the .json scene and the .svg preview - and the note holds nothing special, just an image link, so a drawing syncs and exports like any attachment.
The part I find interesting: two of these features exist because of Joplin’s limits, not Excalidraw’s. Joplin’s own “Copy image” does nothing for a drawing in the Markdown editor, because it decodes the image with code that cannot read SVG, so the plugin turns the SVG into a PNG itself. And Joplin opens every plugin dialog at 90% of the window, with no way for a plugin to resize it. But a plugin dialog can reach the Joplin window around it, so this one restyles its own frame to fill the window, and draws Save, Close and the size toggle as one small island in the canvas corner instead of Joplin’s button band under the dialog.
Coming from the old plugin? Disable or uninstall it first - with both enabled every drawing gets two sets of buttons, and an Edit click can land in the wrong editor. Your drawings are ordinary attachments, so nothing is converted and nothing is touched: the v2 links and resources are read as they are, and drawings from the original v1 still get their Convert button. The three settings start at their defaults under the new id.
Desktop only: a Joplin mobile plugin cannot create a resource, so mobile editing waits for Joplin itself. Not compatible with the Freehand Drawing plugin when both are enabled. Joplin 3.3 or newer.
Free and open source under MIT, continuing artikell’s and neagix’s work: github.com/pmslava/joplin-plugin-excalidraw. It is in Joplin’s plugin list - Tools → Options → Plugins, search Excalidraw - and the .jpl is on the releases page too.