Skip to content

asimov-modules/asimov-readwise-module

ASIMOV Readwise Module

License Package on Crates.io Documentation

ASIMOV module for importing data from Readwise and converting it to JSON-LD format.

✨ Features

  • 📚 Import Highlights: Fetch and convert Readwise highlights to JSON-LD
  • 📖 Import Books: Fetch and convert Readwise book lists to JSON-LD
  • 🏷️ Import Tags: Fetch and convert Readwise tags to JSON-LD
  • 🔄 JSON-LD Output: Structured data compatible with KNOW ontology
  • Fast & Reliable: Built with Rust for performance and safety
  • 🚦 Rate Limit Aware: Respects Readwise API limits and provides clear error handling

🛠️ Prerequisites

  • Rust 1.85+ (2024 edition) if building from source code
  • Readwise account with API access
  • READWISE_API_KEY environment variable

⬇️ Installation

Installation with the ASIMOV CLI

asimov module install readwise -v

Installation from Source Code

cargo install asimov-readwise-module

👉 Examples

Import Highlights

# Import all highlights (transparent pagination)
asimov-readwise-importer https://readwise.io/highlights

# Import first 100 highlights only
asimov-readwise-importer https://readwise.io/highlights --page-size 100

# Import specific page
asimov-readwise-importer https://readwise.io/highlights --page 2 --page-size 50

Import Books

# Import all books (transparent pagination)
asimov-readwise-importer https://readwise.io/books

# Import first 50 books only
asimov-readwise-importer https://readwise.io/books --page-size 50

Import Tags

asimov-readwise-importer https://readwise.io/tags

Other Commands

# Show version information
asimov-readwise-importer --version

# Show license information
asimov-readwise-importer --license

# Show help
asimov-readwise-importer --help

⚙ Configuration

API Key Setup

Set your Readwise API key as an environment variable:

export READWISE_API_KEY="your-api-key-here"

Or use a .env file:

READWISE_API_KEY=your-api-key-here

Get your API key from: https://readwise.io/access_token

Rate Limiting

Heads up: This module plays nice with Readwise's API limits. If you get HTTP 429 errors (too many requests):

  • Just wait a bit: The API will throw an error if you're going too fast
  • No auto-retry: We don't automatically retry failed requests
  • Take it slow: If you're grabbing lots of data, give it some breathing room

The limits: This plugin is limited to 20 requests per minute due to Readwise's API restrictions.

👨‍💻 Development

git clone https://github.com/asimov-modules/asimov-readwise-module.git
cd asimov-readwise-module
cargo test

Share on X Share on Reddit Share on Hacker News Share on Facebook Share on LinkedIn

About

✅ ASIMOV module for data import powered by the Readwise/Reader search data platform.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •