Kobo2Notion is an Electron application built with TypeScript and React that extracts bookmark data from Kobo e-readers and seamlessly uploads it into your Notion database. Additionally, it can summarize bookmarks using Google Gemini. This project offers a cost-free alternative to existing solutions like Readwise, providing users with greater control over their reading data.
- Features
- Prerequisites
- Installation
- Usage
- Configuration
- Building for Distribution
- Contributing
- Contact
- License
- Acknowledgements
- Buy me a coffee
- Extract bookmarks from Kobo e-readers
- Upload bookmarks to a Notion database
- Summarize bookmarks using Google Gemini AI
- Modern desktop interface built with Electron
- Free and open-source
- Node.js 18 or later (tested on v22.2.0)
- Kobo e-reader
- Notion account
- Google Cloud account (for Gemini API access)
If you're a windows user, you can just download the latest released
.exe
file from the Releases page.
-
Clone the repository:
git clone https://github.com/ghnmqdtg/Kobo2Notion.git cd Kobo2Notion
-
Install dependencies:
npm install
-
Start the application in development mode:
npm run dev
Or build and run the production version:
npm run build npm start
-
When you first launch the app, you'll be prompted to enter your configuration in the Settings page:
- Kobo Highlights File Path (e.g.,
/Volumes/KOBOeReader/.kobo/KoboReader.sqlite
on MacOS) - Notion API Key
- Notion Database ID
- Gemini API Key (optional, for bookmark summarization)
How can I get these values? Please refer to the Config section.
- Kobo Highlights File Path (e.g.,
-
After saving your settings, the application will display your Kobo library. Select the books you want to export and click the export button.
-
Check your Notion database to see the exported bookmarks and summaries.
-
The overview of the library. You can see all the books you purchased.
-
Once you select and export a book, the application will start to extract the bookmarks and upload them to Notion.
-
The detail of the book. The original highlight is saved in
Highlight
page, and the summary is saved in the main page.
-
Click to read the details
-
The path of the
KoboReader.sqlite
file- MacOS:
/Volumes/KOBOeReader/.kobo/KoboReader.sqlite
- Windows: Usually under the drive letter assigned to your Kobo device, e.g.,
E:\.kobo\KoboReader.sqlite
- MacOS:
-
Notion API key
-
Go to Notion Integrations
-
Create a new integration named
kobo-export
and set associated workspace to your workspace. -
Click
Save
. -
Click
Show
and copy theSECRET
value.
-
-
Notion Database ID
-
Duplicate the database template here to your workspace.
-
Click
Share
and copy the link. -
Extract the
Notion Database ID
from the URL.For example, if the URL is
https://www.notion.so/ghnmqdtg/4978bcc5eda847a59940f5cb4aff32d9?v=28a249bcfa92488889f3505127a8e1ef&pvs=4
, theNotion Database ID
is4978bcc5eda847a59940f5cb4aff32d9
.
-
-
Connect the your database to the
kobo-export
integration. -
Google Gemini API key here (optional)
This is an optional feature if you want to summarize your bookmarks. The API for
gemini-1.5-flash
is free on Google AI Studio.
You can build the app by running:
# Build for MacOS
npm run build:mac
# Build for Windows
npm run build:win
# Build for Linux
npm run build:linux
I haven't signed the macOS app yet because my Apple Developer Program membership has expired, and I don't have a budget to renew it. Therefore, I cannot distribute the app on the macOS. If you want to use the app, you can build it yourself, or just run the app in development mode.
Contributions are welcome! Please feel free to submit a Pull Request.
For questions or support, please open an issue on the GitHub repository.
This project is licensed under the MIT License.
- mollykannn/kobo2notion
- starsdog/export_kobo
- huybn5776/Kobo bookmark (for using corsproxy to avoid CORS issues)
- Notion for their API
- Google for the Gemini AI model
If you like this app, please consider buying me a coffee and save this poor guy ;(