kennkyou55 downloadsImport highlights and annotations from your Kobo e-reader into your notes.
An Obsidian plugin that imports highlights and annotations from your Kobo e-reader into Obsidian notes.
Kobo Device / App → Kobo Cloud → Kobo Desktop App → Kobo.sqlite → This Plugin → Obsidian Notes
Kobo Device → copied KoboReader.sqlite → This Plugin → Obsidian Notes
The plugin can read the local Kobo.sqlite database created by the Kobo Desktop App, or a Kobo SQLite database file you copied to a path of your choice, and generates Markdown notes in your vault.
main.js and manifest.json from the latest releasekobo-note-sync in your vault's .obsidian/plugins/ directory.kobo/KoboReader.sqlite, to a stable local pathCmd/Ctrl + P) and run Kobo Note SyncHighlights will be created as Markdown files in the configured output folder (default: Kobo Note Sync/).
This plugin reads the local Kobo SQLite database selected in settings and creates or updates notes in your Obsidian vault. It does not send your reading data to any external server.
This plugin includes sql.js, which is licensed under the MIT License. See THIRD_PARTY_NOTICES.md.
| Setting | Description |
|---|---|
| Sync source | Choose Kobo Desktop App or a custom SQLite file |
| Kobo Desktop database path | Path to Kobo.sqlite. Auto-detected based on your OS. |
| Custom database file path | Path to a copied Kobo SQLite database, such as .kobo/KoboReader.sqlite |
| Detect Kobo reader | Finds /Volumes/*/.kobo/KoboReader.sqlite on macOS or ?:\.kobo\KoboReader.sqlite on Windows and fills the custom database path |
| Output folder | Folder in your vault for highlight notes |
| Note template | Eta.js template for each book note |
| Highlight template | Eta.js template for each highlight |
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Kobo/Kobo Desktop Edition/Kobo.sqlite |
| Windows | %LOCALAPPDATA%\Kobo\Kobo Desktop Edition\Kobo.sqlite |
Templates use Eta.js syntax: <%= it.variableName %> for output, <% if (it.condition) { %> for logic.
| Variable | Description |
|---|---|
it.bookTitle |
Book title |
it.bookAuthor |
Author |
it.publisher |
Publisher |
it.isbn |
ISBN |
it.series |
Series name |
it.seriesNumber |
Series number |
it.subtitle |
Subtitle |
it.language |
Language |
it.description |
Book description (HTML stripped) |
it.progress |
Reading progress % |
it.status |
Reading status (unread / reading / finished) |
it.numPages |
Number of pages |
it.wordCount |
Word count |
it.averageRating |
Average rating on Kobo |
it.ratingCount |
Rating count |
it.timeSpentReading |
Time spent reading (seconds) |
it.timesStartedReading |
Times started reading |
it.dateAdded |
Date added to library |
it.dateCreated |
Book creation date |
it.lastRead |
Last read date |
it.lastFinished |
Finished reading date |
it.highlightCount |
Number of highlights |
it.highlights |
Rendered highlights content |
| Variable | Description |
|---|---|
it.highlightText |
Highlighted text |
it.annotation |
Your note/annotation |
it.dateCreated |
Highlight date |
it.chapter |
Chapter title |
it.chapterProgress |
Progress within chapter (0-1) |
Note template:
---
title: "<%= it.bookTitle %>"
author: "<%= it.bookAuthor %>"
publisher: "<%= it.publisher %>"
last_read: <%= it.lastRead %>
highlight_count: <%= it.highlightCount %>
source: Kobo
---
<%= it.highlights %>
Highlight template:
*<%= it.dateCreated %>*<% if (it.chapter) { %> | <%= it.chapter %><% } %>
> <%= it.highlightText %>
<% if (it.annotation) { %>
**Note:** <%= it.annotation %>
<% } %>
---