Kobo Note Sync

by kennkyou
5
4
3
2
1
Score: 35/100

Description

This plugin has not been manually reviewed by Obsidian staff. Import highlights and annotations from your Kobo e-reader into your notes.

Reviews

No reviews yet.

Stats

stars
12
downloads
0
forks
1
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

Kobo Note Sync

繁體中文

An Obsidian plugin that imports highlights and annotations from your Kobo e-reader into Obsidian notes.

Features

  • Import highlights and annotations from Kobo Desktop App's SQLite database
  • Customizable note and highlight templates using Eta.js syntax
  • Append-only sync — existing highlights in Obsidian are preserved even if deleted on Kobo
  • Rich metadata support (23 book variables + 5 highlight variables)
  • Cross-platform: macOS and Windows
  • i18n: English and Traditional Chinese (follows Obsidian language setting)

How It Works

Kobo Device / App → Kobo Cloud → Kobo Desktop App → Kobo.sqlite → This Plugin → Obsidian Notes

The plugin reads the local Kobo.sqlite database created by the Kobo Desktop App and generates Markdown notes in your vault.

Installation

Manual Installation

  1. Download main.js, manifest.json, and sql-wasm.wasm from the latest release
  2. Create a folder kobo-note-sync in your vault's .obsidian/plugins/ directory
  3. Copy the downloaded files into that folder
  4. Restart Obsidian and enable the plugin in Settings → Community Plugins

Prerequisites

  • Kobo Desktop App installed and signed in with your Kobo account
  • Sync your library in Kobo Desktop App so that Kobo.sqlite is up to date

Usage

  1. Open Command Palette (Cmd/Ctrl + P) and run Kobo Note Sync
  2. Or click the book icon in the left sidebar

Highlights will be created as Markdown files in the configured output folder (default: Kobo Note Sync/).

Settings

Setting Description
Kobo database path Path to Kobo.sqlite. Auto-detected based on your OS.
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

Default Database Paths

OS Path
macOS ~/Library/Application Support/Kobo/Kobo Desktop Edition/Kobo.sqlite
Windows %LOCALAPPDATA%\Kobo\Kobo Desktop Edition\Kobo.sqlite

Templates

Templates use Eta.js syntax: <%= it.variableName %> for output, <% if (it.condition) { %> for logic.

Note Template Variables

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

Highlight Template Variables

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)

Example Templates

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 %>
<% } %>
---