bratet39 downloadsImport BOOX notebooks, calendar memos and book highlights as PDFs and Markdown, read straight from the BOOX tablet or from the BOOX cloud.
Import the notebooks, calendar memos and book highlights from your BOOX (Onyx) e-ink tablet into your Obsidian vault. Handwriting becomes PDFs or PNG pages, highlights become Markdown notes. Everything is decoded and rendered inside the plugin: no companion app, server or API key.
Sync is one-way. The plugin never changes anything on your tablet or in your BOOX account.
This is an independent project, not affiliated with Onyx International or BOOX.
| BOOX content | Default location in the vault |
|---|---|
| Notebooks | BOOX/Notebooks/<device folders>/<Title>.pdf |
| Calendar memos | BOOX/Calendar memo/<YYYYMMDD>.pdf |
| Book highlights and annotations | BOOX/Highlights/<Book>.md, with quotes, notes, chapters and pages |
| Attachments uploaded to the BOOX cloud (cloud source only) | BOOX/Files/<Filename> |
Pages keep the device order, and notebooks keep their device folders, including empty ones. Rendering covers pen pressure, colors, moved, resized and erased strokes, and infinite canvases. PDF pages are lossless 226 DPI images. Handwriting is not converted to searchable text, and page templates and backgrounds are not drawn.
The plugin reads your notes from one of two places. Pick it under Settings → BOOX Notes Sync → Read notes from.
| This tablet | BOOX cloud | |
|---|---|---|
| Where the plugin runs | Obsidian for Android on the BOOX tablet | Obsidian on any computer |
| Account needed | None | BOOX account with cloud sync on |
| Network use | None | BOOX servers and BOOX's Alibaba OSS storage |
| Notes that never uploaded | Included | Missing |
| Cloud attachments | Not available | Included |
| Reaching your other devices | Through your vault sync (Obsidian Sync or similar) | Through your vault sync, from the one connected device |
Pros
Cons
Pros
Cons
In Obsidian, open Settings → Community plugins → Browse, search for BOOX Notes Sync, then install and enable it.
To install by hand, download main.js and manifest.json from the latest release into <your vault>/.obsidian/plugins/boox-cloud-sync/, then enable the plugin under Community plugins.
Requires Obsidian 1.13.0 or newer. Older Obsidian versions are offered release 1.0.1.
.ksync folder of the tablet's shared storage, outside the vault.The plugin reads the tablet when Obsidian starts, every sync interval, and whenever Obsidian comes back to the foreground.
Run it on the tablet only. If your vault sync also copies plugins and their settings to your other devices (Obsidian Sync does), the plugin stays idle on them: computers never read the tablet source, and an Android phone without BOOX notes skips it quietly (only Sync now reports why). The exports arrive through vault sync. Don't change the source on another device: the change syncs back to the tablet.
The session is kept in your system keychain through Obsidian's secret storage, so syncing resumes after a restart. Disconnect removes it; your exported files stay.
Connect on one device per vault. The keychain session isn't copied by vault sync, so your other devices stay idle and receive the exports through vault sync. Two connected devices would both write the same files, and vault sync could create conflict copies.
0 to turn this off.Category folders are relative to Sync folder and can contain subfolders. Turn off Keep device folder hierarchy to put all notebooks in one folder. Handwriting format switches between one PDF per notebook or memo and individual PNG pages.
File extensions are added automatically. Name templates:
| Setting | Default | Placeholders |
|---|---|---|
| Notebook name | {title} |
{title}, {id}, {date} (last update, UTC) |
| Highlights note name | {title} |
{title}, {id} |
| Memo name | {date} |
{date}, {id}, {title} |
| Attachment name | {title} |
{title} without extension, {id}, {ext} |
| PNG page name | {title}_{page} |
{title}, {id}, {page} |
| Date format | YYYYMMDD |
YYYY, MM, DD, for example YYYY-MM-DD |
For example, notebook name {date} - {title} with date format YYYY-MM-DD gives 2026-09-20 - Meeting notes.pdf. A one-page PNG notebook uses the notebook name directly; longer notebooks get a folder of pages. PNG memos always get a folder.
Names are made safe for every platform. Two notebooks or memos with the same name get an ID suffix, and two books or attachments with the same name get a short hash suffix. Templates that would make two items write the same file stop the sync with a message instead of overwriting.
Highlight block template replaces the default quote callouts. It uses {quote}, {note}, {chapter}, {page} and {id}, and is repeated for each highlight. Leave it empty for the default.
Changes to names and formats apply at the next sync, and unchanged files move to their new paths. Changing Sync folder starts a new copy and leaves the old folder alone.
<sync folder>/.boox-sync.json records which files the plugin wrote, with checksums. A file you edited is never overwritten; the sync notice counts it as kept..boox-sync.json, so a device syncing for the first time finds earlier exports it hasn't recorded. It takes over a PDF at an export path only if this plugin produced it (PDF producer BOOX Sync), and copies the original to <sync folder>/.boox-sync-replaced/<time>/ first. Any other file at that path is kept and reported..ksync folder, outside the vault. That is why it needs Android's All files access.eur.boox.com or push.boox.com) to sign in and list your notes, and downloads note files from BOOX's Alibaba OSS storage. Nothing is sent anywhere else.data.json, so vault sync and backups don't copy it. Your account email and ID, and the plugin's preferences, are stored in data.json. Other plugins running in Obsidian can read secret storage.Use Node.js 22.13 or newer; the SQLite reader tests use node:sqlite.
npm ci
npm run build # type-check and bundle main.js
npm test # sync, protocol, rendering, naming and session tests
npm run lint # Obsidian's review rules (eslint-plugin-obsidianmd)
npm run test:smoke # settings and sign-in flow in a browser harness, plus real canvas rendering
npm run dev # watch build
The smoke test uses Microsoft Edge by default. Set BOOX_TEST_BROWSER=chrome or BOOX_TEST_BROWSER=chromium to use another browser. It uses made-up account responses and a minimal stand-in for Obsidian. Screenshots go to the ignored .vault-test/ folder.
src/__fixtures__/handwriting.json is synthetic and contains no user data.
Pushing a tag that equals the manifest.json version runs .github/workflows/release.yml, which tests, builds and publishes main.js and manifest.json as a GitHub release.
Other BOOX models, firmware versions and regions may behave differently.
Storage requests are signed following Alibaba OSS's signature format. PDFs are built with pdf-lib.