Sirwan Afifi248 downloadsAn infinite handwriting canvas with note embeds, designed for Apple Pencil and other pens.
Inkplane gives handwriting and sketches their own dedicated space inside Obsidian. Every drawing is a portable .inklayer file in your vault: open it as an edge-to-edge canvas, draw naturally with Apple Pencil or another pen, and embed it in any note when you want it in context.

Draw on an infinite canvas, then embed the result directly in any Obsidian note.
Inkplane stores new drawings in the Inkplane folder by default. Both the folder and default embed dimensions are configurable in Settings → Inkplane.
Inkplane keeps the controls compact so the drawing remains the focus:

The Pencil-first canvas on iPad, with drawing tools, quick colours, and zoom controls close at hand.
Open Settings → Inkplane to configure:
.inklayer drawings and default embed dimensionsRun Inkplane: Insert new drawing in current note to create, embed, and open a canvas in one flow. To reuse a drawing, run Insert existing drawing in current note.
Inkplane generates ordinary Obsidian embed syntax:
![[Inkplane/Project sketch.inklayer|800x600]]
Change 800x600 to control the preview size. Embedded canvases are intentionally read-only so they never capture note scrolling. Double-click a preview, or use its expand control, to open the source drawing.
Obsidian installs updates from Inkplane's matching GitHub releases.
To test a release before it reaches the Community directory, use BRAT:
https://github.com/SirwanAfifi/inkplane.BRAT will keep the plugin updated from GitHub releases.
main.js, manifest.json, and styles.css from the latest release.<vault>/.obsidian/plugins/ink-layer/.The folder remains ink-layer for compatibility with existing installations; the product name shown in Obsidian is Inkplane.
| Command | What it does |
|---|---|
| Create new drawing | Creates and opens a standalone canvas. |
| Insert new drawing in current note | Creates a drawing, embeds it, and opens it. |
| Insert existing drawing in current note | Chooses and embeds a drawing from the configured drawing folder. |
| Export current drawing as SVG | Writes a scalable image attachment to the vault. |
| Convert legacy ink from current note to a drawing | Copies version 0.1 note ink into a standalone canvas. |
| Select pen / highlighter / eraser / lasso / pan | Switches tools from the command palette or a custom hotkey. |
| Switch between pen and eraser | Toggles between the two tools on the active canvas. |
| Undo ink / Redo ink / Fit drawing / Clear drawing | Controls the active canvas. |
| Platform | Experience |
|---|---|
| iPad + Apple Pencil | Primary experience: Pencil draws, one finger pans, and two fingers zoom. |
| Windows pen devices | Supported through standard browser PointerEvent pen input. |
| Desktop + trackpad | Draw with a mouse if enabled; pan and zoom with the trackpad or canvas tools. |
| Touch devices | Palm rejection is on by default; optional finger drawing is available in settings. |
Inkplane uses web-standard pointer type, pressure, tilt, pointer capture, and coalesced events. Apple Pencil double-tap and Pencil Pro squeeze are not exposed consistently to Obsidian community plugins by the iPad WebView, so Inkplane does not claim to intercept those private hardware gestures.
Each .inklayer file is readable JSON. Stroke points are stored as compact tuples containing position, pressure, tilt, and time, while the drawing file retains its canvas metadata. This format follows normal Obsidian Sync, backup, rename, and file-management workflows.
Ink created by Inkplane 0.1 remains untouched in the plugin's data.json. Open the original note and run Convert legacy ink from current note to a drawing to copy those strokes into a standalone file and insert an embed. The original data is deliberately retained as a backup.
Inkplane makes no network requests and collects no telemetry. The existing-drawing picker searches only the configured drawing folder and does not enumerate other vault file paths. The only files Inkplane writes are plugin settings, .inklayer drawings, and SVG exports you explicitly request.
Requirements: Node.js, npm, and Obsidian 1.7.2 or newer.
npm install
npm run check
npm run check runs the test suite, production build, and release validation. For local development, clone the repository into <vault>/.obsidian/plugins/ink-layer, run npm run dev, and reload Obsidian when the bundle changes.
A release consists of:
main.js
manifest.json
styles.css
The runtime uses Obsidian's mobile-safe APIs and does not import Node.js or Electron APIs. Bug reports and feature requests are welcome in GitHub Issues.
The internal plugin ID remains ink-layer, and drawing files retain the .inklayer extension. This preserves upgrades, existing installations, embeds, and vault data across the Inkplane rebrand.
MIT © Sirwan Afifi