ptk201014 downloadsSend notes, or sync folders and a tag, to an Xteink e-reader running CrossPoint firmware as EPUB, over Wi-Fi or through an Xteink Lover shelf.
Send Obsidian notes to an Xteink X3/X4 e-reader running CrossPoint firmware, as EPUB. No pandoc, no desktop app, works on desktop and mobile.
| Reader on Wi-Fi | Xteink Lover shelf | |
|---|---|---|
| How | Pushes the EPUB straight into the reader | Uploads to your online shelf; the reader downloads it over OPDS |
| Needs | Reader in File Transfer → Join Network, on the same network | A free account at Xteink Lover (or your own self-hosted copy) and an app token |
| Works from anywhere | No | Yes, even when the reader is off |
Pick the destination in Settings → Xteink Sync → Send to.
.obsidian/plugins/xteink-sync/outbox); run Send queued files later.Clippings, where Obsidian Web Clipper saves, so clipping an article in the browser puts it on your reader in one step. Existing notes and edits are not sent.Scope is inclusive: a folder includes all its subfolders. Notes outside the chosen folders are only sent if they carry the sync tag.
Notes are rendered with Obsidian's own Markdown renderer, so callouts, tables, embeds and links look like reading view. Images are scaled for e-ink and re-encoded as baseline JPEG (CrossPoint cannot show progressive JPEG or GIF). Mermaid diagrams and math are kept as source text, because the reader cannot draw them. Footnotes stay clickable.
Sign in at https://app.xteinklover.workers.dev (password or Google).
Account → App tokens → Create, copy the token.
In Obsidian: Send to → Xteink Lover shelf, paste the token, press Check.
On the reader: add the OPDS server shown under ⚡ Connect on the website.
Optional, instead of step 4: put the reader in File Transfer → Join Network and run Connect reader to Xteink Lover shelf (or the Connect reader button in settings). The plugin creates a new OPDS key and saves the "Xteink Lover" server on the reader over Wi-Fi (CrossPoint 1.6+), so you don't type anything on the reader. Readers still using the old key need the new one.
The token can list, add and remove books on your shelf, and create a new OPDS key for Connect reader. It cannot change your password or account, and you can revoke it on the website at any time.
This plugin makes network requests only when you send or sync, or press Check:
crosspoint.local or the IP you set): /api/status, /api/files, /upload, /mkdir, /delete. CrossPoint has no login and no encryption, so only use this on a network you trust. /delete is only called for files this plugin sent, when Remove when a note leaves the sync scope is on.GET/POST /api/opds, to save the shelf address, your username and the new OPDS key on the reader.https://app.xteinklover.workers.dev), with your app token: list, upload and remove books. The EPUBs (your note content) are stored on that server. The hosted service runs on Cloudflare; you can self-host it instead (source).https:// addresses are downloaded while converting (up to 10 MB each). Otherwise they are replaced by their alt text and nothing is fetched.No telemetry, no analytics. Settings and sync history stay in the plugin's data.json in your vault.
npm install
npm test # unit tests, no Obsidian needed
npm run lint # Obsidian's plugin review rules
npm run build # main.js
npm run install-vault -- <path-to-vault> # copy into a vault and enable
Releasing: bump version in manifest.json and package.json, add it to versions.json and a section to CHANGELOG.md, commit, then push a tag with the same number (no v). GitHub Actions tests, builds, attests and publishes the release.
Reader endpoints: docs/webserver-endpoints.md in crosspoint-reader.
MIT