Skip to content

helencute/omnisync

Repository files navigation

OmniSync

🚀 Self-hosted Readwise alternative for syncing highlights from Kobo eReaders and Amazon Kindle

OmniSync is a macOS application that automatically syncs your reading highlights from Kobo and Kindle devices, exports them to beautifully formatted Markdown files, and prepares them for NotebookLM analysis or Apple Notes export.


✨ Features

  • 📚 Kobo Sync - Automatically detect and sync highlights from Kobo eReaders (via NickelMenu)
  • 📖 Kindle Sync - Browser-based scraping with smart authentication and anti-bot detection
  • 🔄 Smart Deduplication - Automatically removes duplicate highlights across sources
  • 📝 Markdown Export - Individual files per book + merged library for NotebookLM
  • 🍎 Apple Notes Integration - One-click export of all highlights to Apple Notes
  • 📊 Statistics Dashboard - Track your reading progress and highlight counts
  • 🎯 Language Detection - Automatic language identification for all highlights
  • 🧠 NotebookLM Ready - Optimized merged output for AI analysis

🎥 Quick Demo

OmniSync Dashboard

Sync highlights from both Kobo and Kindle with a single click


📥 Installation

System Requirements

  • macOS 15.0 (Sequoia) or later
  • 500 MB free disk space
  • WiFi network (for Kobo sync)
  • Internet connection (for Kindle sync)

Download

Download OmniSync v1.0.dmg (171 MB)

Install

  1. Download and open OmniSync-v1.0.dmg
  2. Drag OmniSync.app to Applications folder
  3. Right-click OmniSync.app → Open (first launch only)
  4. Follow the detailed installation guide

Note: The app is ad-hoc signed (not notarized). You'll see a security warning on first launch - this is normal. Use Right-click → Open to bypass.


🔧 Setup

For Kobo Sync

  1. Install NickelMenu on your Kobo (one-time setup)

  2. Enable KoboReader Server

    • Tap NickelMenu → KoboReader Server → Toggle ON
    • Note your Kobo's IP address
  3. Configure OmniSync

    • Launch OmniSync
    • App will auto-detect Kobo on your network
    • Or manually set IP in settings if needed

For Kindle Sync

  1. Launch OmniSync and select Kindle sync
  2. Browser will open to Amazon login page
  3. Sign in with your Amazon account
  4. Complete 2FA if prompted
  5. Highlights will auto-sync (authentication persists)

🚀 Quick Start

# Clone the repository
git clone https://github.com/helencute/omnisync.git
cd omnisync

# Install dependencies
pip install -r requirements.txt

# Install Playwright browsers (for Kindle sync)
playwright install chromium

# Run from source
python3 main.py

Or download the DMG from Releases!


📂 Project Structure

omnisync/
├── agents/              # Data ingestion modules
│   ├── kobo_ingestor.py       # Kobo highlight fetcher
│   ├── kindle_ingestor.py     # Kindle scraper  
│   ├── normalizer.py          # Deduplication & validation
│   └── publisher.py           # Markdown export
├── gui/                 # CustomTkinter interface
│   └── app.py                 # Main GUI application
├── scripts/             # Utility scripts
│   └── merge_for_notebooklm.py  # Merge highlights
├── main.py              # CLI orchestrator
├── omnisync.spec        # PyInstaller configuration
├── config.yaml          # Application configuration
└── requirements.txt     # Python dependencies

🛠️ Building from Source

# Install PyInstaller
pip install pyinstaller

# Build .app bundle
pyinstaller omnisync.spec

# Find built app in dist/OmniSync.app

For DMG creation, see DMG_TESTING.md


📖 How It Works

  1. Kobo: Connects to your Kobo's WiFi HTTP server (enabled via NickelMenu), downloads KoboReader.sqlite, and extracts highlights
  2. Kindle: Launches browser automation (Playwright) with anti-detection, scrapes Amazon notebook page
  3. Normalization: Deduplicates highlights, detects language, validates data
  4. Publishing: Exports to Markdown files organized by book
  5. Merging: Combines all books into single file optimized for NotebookLM's 200万 token context window

💡 Use Cases

  • 📚 Personal Knowledge Base - Build a searchable library of all your highlights
  • 🧠 NotebookLM Analysis - Upload merged library to AI for cross-book insights
  • 🍎 Apple Notes Sync - Access highlights across all Apple devices
  • 📊 Reading Analytics - Track what you highlight and when
  • 🔄 Multi-Device Sync - Keep Kobo and Kindle highlights in one place

🤝 Contributing

Contributions are welcome! Whether it's:

  • 🐛 Bug reports
  • 💡 Feature requests
  • 📖 Documentation improvements
  • 🔧 Code contributions

Please open an issue or submit a pull request.


📜 License

MIT License - see LICENSE file for details


🙏 Acknowledgments


⚠️ Disclaimer

This project is not affiliated with Kobo, Amazon, or Readwise. It's a personal tool created for managing reading highlights.


📧 Support


⭐ If you find OmniSync useful, please star this repository!

Packages

 
 
 

Contributors

Languages