kidpeterpan76 downloadsExport notes, book folders, or linked notes as EPUB for e-ink readers, with optional wireless delivery to Onyx Boox.
Inkbound exports your Obsidian notes as EPUB ebooks, so you can read them comfortably on an e-ink device instead of a laptop screen.
Export from the command palette or a right-click menu, in three ways:
Every export produces a real, valid EPUB 3 file. Images in your notes come through, and so do Mermaid diagrams — as pictures rather than live diagrams, since most e-ink readers cannot draw them otherwise. Any language works, including Thai.
A book's index note in Obsidian, with its chapters as linked notes:

Right-click it and export the note plus everything it links to:

With Push after export turned on, the finished book lands straight in the Boox library over Wi-Fi and reads like any other EPUB — Thai text, tables and all:
| On the shelf | Open on the device |
|---|---|
![]() |
![]() |
From Obsidian's Community plugins browser, once Inkbound is listed there: Settings → Community plugins → Browse, search for "Inkbound", then Install and enable it.
From a GitHub release (works today, before the plugin is listed):
main.js, manifest.json, and styles.css from the
latest release.<vault>/.obsidian/plugins/inkbound/ (create the folder if it doesn't
exist).[!WARNING] If Obsidian was already running when the plugin folder was added, the new plugin will not appear in the Community plugins list until you click the refresh icon at the top of that list (or restart Obsidian).
Three commands, available from the command palette and from a right-click context menu:
The finished .epub is written to the folder set in Settings → Inkbound →
Output folder (~/Downloads by default), and a notice in Obsidian confirms
the path once the export finishes. If Push after export is turned on,
the same notice reports whether the send to your Boox device succeeded.
Found under Settings → Community plugins → Inkbound:

| Setting | Default | Purpose |
|---|---|---|
| Output folder | "" (empty → ~/Downloads) |
Absolute path or ~/… folder the EPUB is written to. Existing files of the same name are overwritten. |
| Default link depth | 1 |
How many hops of wikilinks Export note + linked notes follows outward from the active note (1–3, via a slider). |
| Backlink listing position | start (Start of chapter) |
Where each chapter shows its "Linked from:" list of the chapters in the same book that link to it — at the start of the chapter, the end, both, or none (disables the list entirely). Chapters nothing links to show no list. |
Language (dc:language) |
"th" |
Fallback language used when a note has no usable language frontmatter field. |
| Fallback author | "" (empty → "Unknown") |
Used as dc:creator when a note/index has no usable author frontmatter field. |
| Device URL | "" |
The BooxDrop device's address as shown in the BooxDrop app, e.g. http://192.168.1.42:8085. Required for pushing. |
| Push after export | false |
When enabled (and a Device URL is set), every export is uploaded to the device after being saved locally. Below this toggle is a Test connection button to verify the Device URL. |
Say you keep book notes like this, one folder per book, one note per chapter:
Reading/
└── grokking-algorithms/
├── grokking-algorithms.md <- the index note
├── 01_introduction.md
├── 02_selection_sort.md
├── 03_recursion.md
├── 10_where_to_go_next.md
└── assets/
└── fig02-1_arrays.png
Give the index note this frontmatter:
---
aliases:
- Grokking Algorithms
author: Aditya Y. Bhargava
language: english
coverUrl: https://example.com/grokking-cover.jpg
tags:
- book
- main
---
Then right-click the grokking-algorithms folder and choose Export folder
to EPUB. You get a single Grokking Algorithms.epub containing:
01, 02, 03,
10. Note that 10 comes last, not after 01, because the NN_ prefix is
read as a number rather than sorted as text.aliases rather than
the filename, with Aditya Y. Bhargava as the author.coverUrl and embedded, so it shows on your
reader's shelf.assets/ embedded in the chapter that references it,
whether you wrote it as ![[fig02-1_arrays.png]] or
.dc:language set to en, from language: english.The index note is found by its book + main tags. If you would rather not
tag it, name it after the folder instead — grokking-algorithms.md inside
grokking-algorithms/ is detected the same way. Without either, the folder
name becomes the title and every note is treated as a chapter.
Chapter titles come from filenames, so 03_recursion appears in the table of
contents as written. Rename the files if you want prettier chapter names.
Every export scope resolves its book metadata from the exporting note's own frontmatter (the active note for single/linked exports, the detected index note for folder exports). Recognised fields:
aliases — sets the book title (dc:title). The first non-empty
string, or first non-empty string in the list if aliases is a list, is
used; otherwise the note's filename is used. This is the book title
only — chapter titles are derived separately from headings/filenames.
author — sets dc:creator. A string is used as-is; a list of
strings is joined with ", "; anything else falls back to the
Fallback author setting, or "Unknown".
language — sets dc:language. A BCP-47 tag (e.g. en, en-GB,
th) is used as-is (lowercased). Otherwise, one of these names is
matched, case-insensitively:
| Frontmatter value | dc:language |
|---|---|
thai |
th |
english |
en |
japanese |
ja |
chinese |
zh |
korean |
ko |
Anything else falls back to the Language setting.
coverUrl — the book's cover image, as a full http:// or https://
URL. A cover that fails to download degrades the export to coverless
rather than failing it.
tags: [book, main] — for folder exports, marks which note in the
folder is the index/metadata source. If no note is tagged this way,
Inkbound looks for a note whose filename matches the folder name.
Pushing to an Onyx Boox e-ink device is entirely optional. Turn on Push after export and set your device's Device URL (shown in the BooxDrop app on the device — both need to be on the same Wi-Fi network) and every export is uploaded straight to the device's library after it saves. The local file is always written first, so a failed push never loses your export — it just stays in your output folder.
.epub file directly to a folder on disk (the one you choose
in Settings) and reads note images through your vault — both of which
need filesystem access that mobile does not offer.$$ blocks) has not been verified against a real
Obsidian render or a real device yet. It may work, but treat exports
containing it with a bit of extra scrutiny until you've checked the result
by eye.![[Note^block]]) now work for every kind of block Obsidian lets you
label — paragraphs, headings, tables, code blocks, callouts and
blockquotes, whole lists, and single list items (which bring their
sub-items with them). A table row, though, is not something Obsidian can
address: a ^id typed inside a cell is just cell text, so an embed
pointing at it degrades to a placeholder plus an export warning, same as
any block ID that doesn't exist.Building from source, running the test suite, and the architecture notes
live in docs/DEVELOPMENT.md.
Inkbound is free and MIT-licensed. If it saves you time, you can buy me a coffee — entirely optional, and it never affects the plugin's features.
MIT © 2026 kidpeterpan