Blulyk3 downloadsA low-latency, infinite Apple Pencil canvas stored as sync-friendly files.
Inkpad is a Pencil-first infinite drawing canvas for Obsidian. It stores each drawing as a portable .ink file in your vault, so your existing sync solution—including Remotely Save—remains in control.
Status: Inkpad 1.0.4 is the current public release. It is built for iPadOS with Apple Pencil and also supports Windows, macOS and Linux.
Inkpad keeps the input path deliberately small: Pointer Events, coalesced samples when available, Canvas 2D and no framework layer between the pen and the pixels. Completed ink is cached for responsive navigation in long study notes, while the active stroke remains vector-drawn immediately above that cache.
The plugin does not use a cloud service, telemetry, analytics or a database. It only reads and writes the .ink file you open or create and references assets already inside the vault.
Handwriting, extended PDFs, images, and Markdown notes can live together on the same infinite canvas.
Once accepted into the Obsidian Community directory, install Inkpad from Settings → Community plugins.
main.js, manifest.json and styles.css from the latest GitHub release.<vault>/.obsidian/plugins/inkpad/.For beta testing, add this repository to BRAT.
| Action | iPadOS | Desktop |
|---|---|---|
| Draw | Apple Pencil | Primary mouse button |
| Pan | One finger | Middle-mouse drag |
| Zoom | Two-finger pinch | Wheel or trackpad pinch |
| Open tools | Toolbar or floating palette | Toolbar, floating palette or shortcuts |
| Fit content | Frame icon | Frame icon or F |
| Reset zoom | Tap zoom percentage | Tap zoom percentage or 0 |
Desktop shortcuts: P pen, B pencil, M marker, H highlighter, E eraser, L lasso, F fit content, 0 reset zoom, Ctrl/Cmd+Z undo and Ctrl/Cmd+Shift+Z redo.
Each drawing is a single *.ink JSON file. Inkpad debounces writes and serializes them through Obsidian's vault API, which keeps it compatible with file-based synchronizers such as Remotely Save.
Avoid editing the same drawing on two devices before they have synchronized. If Inkpad sees an external change while local input is pending, it refuses to overwrite it and asks you to reload. Invalid or incomplete incoming files are never replaced with an empty drawing.
PDF pages are rasterized locally using PDF.js and shown inside a movable card. Images preserve their aspect ratio. Delete, lock, resize and reorder controls affect only the canvas card; the original vault file is never changed.
For smooth handwriting, embedded content is view-only while it sits on the canvas. Open the original note or PDF normally when you need to edit or scroll it.
Inkpad handles standard web pen input and side-button signals when iPadOS exposes them to the Obsidian WebView. Apple Pencil double-tap and Apple Pencil Pro squeeze are UIKit-only gestures, so a community plugin running in Obsidian cannot receive or replicate the native Apple Notes Pencil menu.
npm install
npm test
npm run test:performance
npm run build
Copy main.js, manifest.json and styles.css into <vault>/.obsidian/plugins/inkpad/, reload Obsidian and enable the plugin. npm run build produces one self-contained main.js, including the PDF renderer, because Community Plugin releases install only the standard plugin assets.
The GitHub Actions workflow runs tests and builds the plugin whenever a semantic-version tag such as 1.0.0 is pushed. It publishes main.js, manifest.json and styles.css as release assets—the exact files Obsidian installs.
Inkpad makes no network requests and collects no telemetry. PDF parsing, drawing and export all happen locally.
PDF rendering uses Mozilla PDF.js under Apache-2.0; see third-party notices.