skills/readwise-skill/SKILL.md
Import books, articles, podcasts, and other content from Readwise into Content Notes with all highlights and annotations. Use when user wants to import specific content from their Readwise library.
npx skillsauth add jeffvincent/claude-config readwise-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill imports books, articles, podcasts, and other content from your Readwise library into Content Notes as source documents. It fetches all highlights, annotations, and metadata, creating a properly formatted markdown document that can be analyzed later.
Use this skill when:
IMPORTANT: Most users want to analyze content after importing. If user says:
Use readwise-content-analyzer skill instead - it will handle BOTH import and analysis automatically.
Do NOT use this skill for:
/sources/ directoryYYYY-MM-DD_Author_Title_Readwise.mdGet Readwise API Token:
Configure Credentials:
echo "READWISE_API_TOKEN=your_token_here" > ~/.claude/secrets/readwise/.env
Install Dependencies:
cd ~/.claude/skills/readwise-skill
pip3 install -r requirements.txt
Test Authentication:
cd ~/.claude/skills/readwise-skill/scripts
python3 auth.py
~/.claude/secrets/readwise/.env exists with READWISE_API_TOKENcd ~/.claude/skills/readwise-skill/scripts
python3 auth.py
If user provides a title or author name (not book ID):
cd ~/.claude/skills/readwise-skill/scripts
python3 search.py --query "atomic habits"
For specific categories:
python3 search.py --query "tim urban" --category articles
Show results to user and ask which one to import.
Once you have the book ID:
cd ~/.claude/skills/readwise-skill/scripts
python3 import_item.py --book-id 12345 --output-dir "/Users/jvincent/Projects/Knowledge System/notes/content notes/sources"
The script outputs JSON with:
{
"success": true,
"filename": "2026-02-10_James-Clear_Atomic-Habits_Readwise.md",
"filepath": "/full/path/to/file.md",
"title": "Atomic Habits",
"author": "James Clear",
"category": "books",
"num_highlights": 47,
"book_id": "12345"
}
Tell the user:
sources/[filename]After successful import, automatically commit to git:
cd "/Users/jvincent/Projects/Knowledge System/notes/content notes"
git add .
git commit -m "Add Readwise import: [Title] by [Author]
Imported [N] highlights from Readwise
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>"
git push
After import, ask:
readwise-content-analyzer skillTo update an existing import with new highlights:
cd ~/.claude/skills/readwise-skill/scripts
python3 sync.py --filepath "/Users/jvincent/Projects/Knowledge System/notes/content notes/sources/2026-02-10_James-Clear_Atomic-Habits_Readwise.md"
The script:
After syncing, commit the changes to git.
Generated source documents have this structure:
# [Title] | [Author] - Readwise
## Metadata
- **Type**: Book / Article / Podcast / etc.
- **Author**: [Author name]
- **Source URL**: [URL if available]
- **Date Imported**: YYYY-MM-DD
- **Total Highlights**: [count]
- **Readwise Tags**: #tag1, #tag2
## Document Notes
[Your document-level notes from Readwise]
## Your Highlights
### Highlight 1 (Page 15)
> "The highlighted text goes here"
**Your Note**: Your annotation from Readwise
**Tags**: #important, #actionable
---
### Highlight 2 (Position 234)
> "Another highlight"
---
[... all highlights in chronological order ...]
## Synthesis Analysis
_To be completed during analysis phase_
## Key Themes Identified
_To be completed during analysis phase_
## Related Synthesis Documents
_Add connections to existing themes:_
- [[Theme 1]]
- [[Theme 2]]
## Source Information
- **Readwise Book ID**: 12345
- **Category**: books
- **Original URL**: https://...
Common errors:
User: "Import 'The Mom Test' from Readwise"
Claude:
python3 search.py --query "the mom test"Found 1 result(s):
1. [BOOKS] The Mom Test
Author: Rob Fitzpatrick
Highlights: 23
ID: 12345
python3 import_item.py --book-id 12345 --output-dir ".../sources"User: "Import that Tim Urban article about AI"
Claude:
python3 search.py --query "tim urban" --category articlesUser: "Sync my Atomic Habits import with new highlights"
Claude:
sources/2026-02-10_James-Clear_Atomic-Habits_Readwise.mdpython3 sync.py --filepath "..."User: "What articles do I have from Y Combinator in Readwise?"
Claude:
python3 search.py --query "y combinator" --category articlesThis skill is part of the Readwise → Analysis workflow:
┌─────────────────────┐
│ readwise-skill │ ← YOU ARE HERE
│ (import content) │
└──────────┬──────────┘
│
▼
┌──────────────────────────────┐
│ readwise-content-analyzer │ → Analyze highlights + content
│ (generate insights) │ Generate synthesis documents
└──────────────────────────────┘
Next steps after import:
readwise-content-analyzer to analyze the highlights~/.claude/secrets/readwise/.env (gitignored)tools
Render a video clip with captions overlaid, using the Remotion captioner at `/Users/jvincent/Projects/remotion-captioner/`. Use when user provides a video file and wants to add captions/subtitles, mentions "caption this video", "add captions", "burn in subtitles", or provides a video + SRT file pair.
development
Upload video files to Wistia projects using the Data API. Use when user wants to upload videos to their Wistia account for hosting, transcription, or sharing.
development
Transcribe voice memos to text using Whisper. Use when user provides audio/video files (.m4a, .mp3, .mov, etc.) and asks to transcribe them into text and SRT format with timestamps.
testing
# Voice Authenticity Reviewer ## Purpose Review any written content for alignment with authentic speaking and writing voice using analyzed patterns from 7 meeting transcripts and strategic memos. ## When to Use This Skill - Before sharing strategic memos with leadership - Before sending important emails - When drafting presentation scripts - When reviewing documentation for external sharing - As part of Writing /produce-memo workflow (Step 6) - Anytime voice authenticity verification is needed