readwise
This skill should be used when the user asks to "search Readwise", "find highlights", "get quotes from my reading", "add highlights to notebook", "search my annotations", "get full document text", "fetch article content", "add tagged documents to notebook", or needs to query their Readwise library.
Best use case
readwise is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
This skill should be used when the user asks to "search Readwise", "find highlights", "get quotes from my reading", "add highlights to notebook", "search my annotations", "get full document text", "fetch article content", "add tagged documents to notebook", or needs to query their Readwise library.
Teams using readwise should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/readwise/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How readwise Compares
| Feature / Agent | readwise | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
This skill should be used when the user asks to "search Readwise", "find highlights", "get quotes from my reading", "add highlights to notebook", "search my annotations", "get full document text", "fetch article content", "add tagged documents to notebook", or needs to query their Readwise library.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Readwise
<EXTREMELY-IMPORTANT>
## IRON LAW: Main Chat NEVER Calls Readwise CLI
**EVERY READWISE OPERATION MUST GO THROUGH LIBRARIAN. This is not negotiable.**
Main chat MUST NOT:
- Run `readwise` CLI commands directly
- Run `readwise-custom` CLI commands directly
- "Just quickly check" highlights
**If you're about to do anything Readwise in main chat, STOP. Spawn a librarian sub-agent instead.**
</EXTREMELY-IMPORTANT>
### Permission Model
| Context | Readwise CLI | readwise-custom CLI |
|---------|-------------|-------------------|
| Main chat | **FORBIDDEN** | **FORBIDDEN** |
| Librarian sub-agent | ALLOWED | ALLOWED |
### Red Flag Detection
```
STOP if you catch yourself thinking:
- "Let me quickly search Readwise..."
- "I'll just run readwise reader-search-documents..."
- "I'll just run readwise-custom search..."
These thoughts in MAIN CHAT = VIOLATION. Delegate instead.
```
### Correct Pattern
```
User: "Search my Readwise for proxy advisor articles"
MAIN CHAT RESPONSE:
Task(subagent_type="workflows:librarian", prompt="Search Readwise for proxy advisor articles and summarize findings")
NEVER IN MAIN CHAT:
readwise readwise-search-highlights --vector-search-term "proxy advisors"
readwise-custom search "proxy advisors"
```
---
## Two CLIs
| CLI | Binary | Use for |
|-----|--------|---------|
| **Official** (`@readwise/cli`) | `readwise` | Search, list, get, save, move, tags, highlights CRUD, export, daily review |
| **Custom** (`~/projects/readwise-cli/`) | `readwise-custom` | Chat/RAG, ghostreader, file upload (PDF/EPUB), prune, keyword highlight search |
---
## Tag-Based Workflow
<EXTREMELY-IMPORTANT>
**When user mentions items were added by tag, NEVER use semantic search.**
### Trigger Phrases
- "we added items tagged X"
- "I thought we added X to NLM"
- "items tagged [tag]"
- "documents with tag [tag]"
### Required Workflow
```
User mentions tagged items or NLM content
│
▼
┌──────────────────────────────────┐
│ 1. CHECK NLM FIRST │ ← MANDATORY
│ nlm list │
│ nlm chat <id> │
└──────────────────────────────────┘
│
Not in NLM?
▼
┌──────────────────────────────────┐
│ 2. USE readwise for tagged items │
│ readwise reader-list-documents│
│ --tag "X" │
│ NOT search! │
└──────────────────────────────────┘
```
</EXTREMELY-IMPORTANT>
---
## Quick Reference
### Official CLI (`readwise`)
| Need | Command |
|------|---------|
| Semantic search highlights | `readwise readwise-search-highlights --vector-search-term "query"` |
| Search documents (hybrid) | `readwise reader-search-documents --query "query"` |
| Documents by tag | `readwise reader-list-documents --tag "X"` |
| Full document (markdown) | `readwise reader-get-document-details --document-id <id>` |
| List all tags | `readwise reader-list-tags` |
| Save URL | `readwise reader-create-document --url <url>` |
| Move documents | `readwise reader-move-documents --document-ids <id> --location archive` |
| Bulk edit metadata | `readwise reader-bulk-edit-document-metadata --documents '[...]'` |
| Export library | `readwise reader-export-documents` |
| Daily review | `readwise readwise-get-daily-review` |
Add `--json` to any command for machine-readable output.
### Custom CLI (`readwise-custom`)
| Need | Command |
|------|---------|
| RAG chat over highlights | `readwise-custom chat "question"` |
| Keyword search highlights | `readwise-custom highlights --search "term"` |
| Prune stale docs | `readwise-custom prune` |
| Upload PDF/EPUB | `readwise-custom upload <file>` |
| Ghostreader | `readwise-custom ghostread summarize <id>` |
| Full document (HTML) | `readwise-custom get <id> --html` |
**Sub-skills with detailed reference:**
| Skill | Purpose |
|-------|---------|
| `readwise-search` | Vector + fulltext highlight search |
| `readwise-docs` | Document CRUD (list, get, save, move, bulk edit, export) |
| `readwise-chat` | GPT-5.1 RAG chat over highlights (fallback — prefer search + Claude synthesis) |
| `readwise-prune` | Two-pass stale document cleanup |
---
## Batch Add to NLM (by tag)
```bash
uv run python3 /Users/vwh7mb/projects/workflows/skills/readwise/scripts/readwise_to_nlm.py \
--tag "proxy advisors" --tag "disclosure" \
--notebook <notebook-id>
```
Add `--dry-run` to preview. Add `--verbose` for detailed output.
## Anti-Pattern: Never Fetch from Source URL
**WRONG:** Search Readwise, find document, fetch from original URL (fails for paywalled content).
**RIGHT:** Search Readwise, get full text FROM READWISE using `readwise reader-get-document-details --document-id <id>`.
If a document is in Readwise, the full text is already there. Never go back to the source URL.Related Skills
readwise-search
Search Readwise highlights. Use when the user wants to find highlights, quotes, notes, or annotations from their reading library. Triggers on "search highlights", "find in readwise", "what did I highlight about", "my notes on".
readwise-prune
Clean up stale Readwise Reader documents. Use when the user wants to declutter their reading library, remove old unread articles, or manage Reader inbox. Triggers on "clean up readwise", "prune reader", "delete old articles", "declutter reading list".
readwise-docs
Manage Readwise Reader documents. Use when the user wants to list, save, update, or delete documents in their Reader library. Triggers on "add to reader", "save article", "list my documents", "readwise list", "reader documents".
readwise-chat
Chat with Readwise highlights using GPT-5.1 RAG. Use when the user wants to ask questions about their reading library, get summaries across documents, or have a conversation about their highlights. Triggers on "ask readwise", "chat about my highlights", "what do my notes say about", "summarize my reading on".
writing
This skill should be used when the user asks to 'write a paper', 'start a writing project', 'draft an article', 'write about', 'brainstorm writing topics', 'gather sources for a paper', 'what should I write about', or needs the writing workflow entry point for any writing task.
writing-validate
Validate draft sections cover all PRECIS claims before review.
writing-setup
Internal skill for creating PRECIS.md, OUTLINE.md, and ACTIVE_WORKFLOW.md. Called after brainstorm sources are gathered.
writing-revise
This skill should be used when the user asks to 'revise writing', 'fix review issues', 'polish draft', 'apply review feedback', 'complete writing workflow', or after /writing-review produces REVIEW.md with issues to fix.
writing-review
Internal skill for hierarchical document review. Called by writing-validate after claim validation passes.
writing-precis-reviewer
Internal skill used by writing-setup at exit gate. Dispatches a reviewer subagent to verify PRECIS.md quality before outlining. NOT user-facing.
writing-outline
Internal skill for creating detailed section outlines. Called by /writing workflow after PRECIS and master OUTLINE are complete.
writing-outline-reviewer
Internal skill used by writing-outline at exit gate. Dispatches a reviewer subagent to verify OUTLINE.md quality before drafting. NOT user-facing.