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.
View on GitHubFebruary 4, 2026
Select agents to install to:
npx add-skill https://github.com/edwinhu/workflows/blob/main/skills/readwise/SKILL.md -a claude-code --skill readwiseInstallation paths:
.claude/skills/readwise/# Readwise Access Readwise highlights (via MCP) and full document content (via Reader API). <EXTREMELY-IMPORTANT> ## IRON LAW: Main Chat NEVER Calls Readwise Tools **EVERY READWISE OPERATION MUST GO THROUGH LIBRARIAN. This is not negotiable.** Main chat MUST NOT: - Call `mcp__readwise__search_readwise_highlights` directly - Call any `mcp__readwise__*` tool - “Just quickly check” highlights - “Look up one thing” in Readwise **If you’re about to call a Readwise tool in main chat, STOP. Spawn a librarian sub-agent instead.** </EXTREMELY-IMPORTANT> ### Permission Model | Context | Readwise MCP Tools | Reader API Script | |---------|-------------------|-------------------| | 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 check the highlights...” - “The MCP tool is right here in my tool list...” These thoughts in MAIN CHAT = VIOLATION. Delegate instead. ``` ### Rationalization Prevention | Thought | Reality | |---------|---------| | “Just one quick search” | Quick = context pollution. Delegate. | | “MCP tool is available” | Available != permitted in main chat. Delegate. | | “I’ll summarize results” | You still receive full payload. Delegate. | | “User wants speed” | Sub-agents ARE fast. Delegate. | | “I know the exact tag” | Use Python script via librarian. Delegate. | | “It’s a simple query” | Simple still pollutes. Delegate. | ### 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: mcp__readwise__search_readwise_highlights(...) ``` ### Honesty Requirement <EXTREMELY-IMPORTANT> **Calling Readwise tools directly in main chat is not “being helpful” - it’s violating the workflow.** When you call Readwise directly, you are: -