Inkflow

by Quang Nguyen
5
4
3
2
1
Score: 50/100

Description

A fast, focused handwriting sidecar for Obsidian notes.

Reviews

No reviews yet.

Stats

0
stars
47
downloads
0
forks
7
days
3
days
3
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
18
commits

README file from

Github

Inkflow

Inkflow is a fast handwriting sidecar for Obsidian. Open a Markdown note, tap the pen, and write. Your editable ink is saved automatically and a normal PNG embed stays up to date inside the note.

It is intentionally not a whiteboard or diagramming system. Inkflow does one thing: it makes handwritten marginalia feel immediate on iPad, Boox, and other pen-enabled devices, including e-ink screens.

Why it feels different

  • One gesture to ink. Open Inkflow from the ribbon or command palette and start writing.
  • Made for styluses. Pressure-sensitive strokes, raw and coalesced pointer samples, palm rejection, and large touch targets.
  • Fast over long sessions. New pen segments go straight to the display without clearing or repainting the canvas. Completed strokes are cached and display pixel density is capped to protect e-ink and mobile GPUs.
  • Portable by default. Every canvas produces an ordinary PNG embedded with Obsidian's ![[...]] syntax and refreshes visible embeds after each short stroke burst.
  • Editable and recoverable. A compact .ink.json sidecar preserves every point. Rename-safe associations live in plugin data, leaving no bookkeeping text in your notes.
  • Disposable by design. Delete handwriting in one action: the embed disappears and its private source and image follow your Obsidian trash preference. Deleting the parent note cleans them up automatically.
  • Distraction-free. Ink automatically follows the theme, paper is always dotted, and the only choices while writing are pen, eraser, and three useful widths.
  • Full-bleed. Dotted paper covers the entire writing pane—there is no inset page edge or dead margin to find on an e-ink screen.
  • Local and offline. No accounts, analytics, network calls, native modules, or runtime dependencies.

Use

  1. Open a Markdown note.
  2. Select Open handwriting for current note from the command palette, or tap the pen ribbon icon.
  3. Write. Inkflow creates the sidecar and image after your first stroke.

The canvas follows the active note by default. Turn this off in Settings → Inkflow when you want to keep one canvas pinned while reading other notes.

Controls

Action Control
Pen Toolbar or P while the canvas is focused
Stroke eraser Toolbar or E
Undo / redo Toolbar or platform-standard Ctrl/Cmd+Z and Ctrl/Cmd+Shift+Z
Stroke width Thin, regular, or bold toolbar buttons
Delete handwriting Trash button beside the save status, or Delete handwriting from current note in the command palette
Zoom in / reset Ctrl/Cmd + wheel

The eraser removes whole strokes. This is deliberate: it is predictable, fast, and makes undo exact.

Boox and other e-ink devices

Inkflow works directly on Boox and other e-ink tablets.

Boox setup (everyone)

For the best writing speed on a Boox device, go to Settings → App Management → App Optimization, find Obsidian, and set its refresh mode to Fast or Ultrafast. This makes the screen redraw faster while you write. The trade-off: you'll see a bit more ghosting (faint traces of earlier strokes) until the screen does a full refresh.

Boox setup (rooted devices, optional)

Boox reserves its fastest ink path for a handful of apps, such as OneNote and Evernote. On a rooted device, you can add Obsidian to that list yourself by editing your device's ink configuration (eac_config on older firmware, or the onyx_config store on firmware 4.0 and later) and setting the draw view to com.getcapacitor.CapacitorWebView, then rebooting. Steps and file locations: https://gist.github.com/calliecameron/b3c62c601d255630468bd493380e3b7e

This is entirely optional, and only for users comfortable with rooting. Rooting voids your warranty and can brick your device, so only do this if you accept that risk.

What to expect

Without the rooted optimization above, writing in Obsidian on a Boox device will feel a little slower than the built-in Notes app, since Boox limits its fastest ink path to a small set of built-in apps.

Files and privacy

By default Inkflow writes to Attachments/InkFlow:

My-note-abc1234.ink.json  # editable source
My-note-abc1234.png       # portable snapshot embedded in Markdown

All processing happens on-device. Inkflow does not access the network, collect telemetry, require an account, display ads, or access files outside your vault.

Inkflow assets belong to their note by default. Deleting handwriting keeps the Markdown note, removes its image embed, clears the association, and moves the .png and .ink.json files to your configured Obsidian trash. Deleting the Markdown note performs the same asset cleanup automatically. If an asset is referenced by another note, Inkflow leaves it in place.

Installation

Community plugins

After publication, install Inkflow from Settings → Community plugins → Browse.

Manual / beta

Download main.js, manifest.json, and styles.css from a release and place them in:

<vault>/.obsidian/plugins/inkflow/

Then reload Obsidian and enable Inkflow.

BRAT beta channel

BRAT can install prerelease Inkflow builds without changing the version published in Obsidian's community directory:

  1. Install and enable BRAT from Community plugins.
  2. Run BRAT: Add a beta plugin for testing from the command palette.
  3. Enter quangnd159/inkflow as the repository.
  4. Enable Inkflow again if Obsidian prompts you.

BRAT downloads the beta main.js, manifest.json, and styles.css from GitHub Releases and can update them independently of the community-store channel. Run BRAT: Check for updates to all beta plugins and update whenever a newer test build is announced.

Development

Requires Node.js 20.19 or newer.

npm install
npm run dev
npm run check

To test in Obsidian, copy or symlink the repository into a dedicated development vault at .obsidian/plugins/inkflow, then enable the plugin. Do not develop against a valuable vault.

Release checklist

  1. Update CHANGELOG.md.
  2. Run npm version patch, minor, or major.
  3. Push the commit and the numeric tag (for example 1.0.1, without a v).
  4. GitHub Actions builds and attaches main.js, manifest.json, and styles.css to the release.
  5. For the first public version, submit the repository to obsidianmd/obsidian-releases.

License

MIT