From readwise
Interacts with Readwise Reader API via CLI to save documents from URLs/HTML, list queue by location/category, update states/labels, pull changes, and triage reading workflows.
npx claudepluginhub ryanlyn/readwise-skill --plugin readwiseThis skill is limited to using the following tools:
Use this skill to script workflows against the Readwise Reader product (saved articles, feeds, PDFs, newsletters).
Manages Readwise Reader documents via CLI: list/filter/search by tags/location, save URLs, get details, move, bulk edit metadata/tags. For library CRUD.
Accesses Readwise highlights and Reader documents via CLI for searching, listing, reading, and creating highlights from the command line. Useful for terminal integration with reading libraries.
Access Readwise highlights and Reader saved articles via Node.js CLI scripts. List/search/export books and highlights; manage documents with save/get/search.
Share bugs, ideas, or general feedback.
Use this skill to script workflows against the Readwise Reader product (saved articles, feeds, PDFs, newsletters).
READWISE_TOKEN.uv run --project ${CLAUDE_PLUGIN_ROOT} python ${CLAUDE_PLUGIN_ROOT}/skills/readwise-reader/scripts/reader_client.py ... whenever possible; it handles retries, .generated tagging, and --dry-run against the /api/v3 endpoints.docs create with a URLdocs list --category newdocs pull + docs update --state archiveuv run --project ${CLAUDE_PLUGIN_ROOT} python ${CLAUDE_PLUGIN_ROOT}/skills/readwise-reader/scripts/reader_client.py docs create --url <article> [--title ... --summary ... --location later --tags ... --labels ... --generated --dry-run] – creates a document via URL or raw HTML (--content). Use --location to set where it lands (defaults to later). Reader API v3 does not support uploading local files directly.... docs list [--location later] [--category article] [--tag deep-work] [--limit 25] [--id <doc-id>] [--with-content] – paginated document listing. Defaults to --location later. Use --id to fetch a single document. Use --with-content to include html_content (article text, video transcripts).... docs update <id> [--state archive --tags "deep,focus" --title ...] – patch metadata/state (new, later, archive). Supports --dry-run.... docs pull --since 2026-02-01 – fetches documents updated since a timestamp for recap/triage workflows.... auth validate – confirms your token works by hitting the /api/v2/auth/ endpoint.Locations describe where a document sits in your reading workflow:
new — inbox, freshly added items awaiting triagelater — saved for later reading (the default for docs list)shortlist — prioritized for near-term readingarchive — finished or dismissedfeed — RSS/feed items not yet triagedCategories describe the content type:
article, email, rss, highlight, note, pdf, epub, tweet, videoWhen a user asks for their "inbox" or "reading list", query --location later (the default). Use --location new only when specifically checking for untriaged items.
Default output is human-readable markdown with only key fields. Use --raw to get full JSON with all fields.
Use --with-content to retrieve the full html_content field, which contains:
This is disabled by default to keep responses fast. When you need to analyze, summarize, or extract quotes from a document, fetch it by ID with content:
... docs list --id <doc-id> --with-content --raw
--generated when saving synthetic journal entries or agent summaries. The CLI appends .generated to tags (and labels, when provided) so they are searchable in Reader.--url when the content exists online. Use --content for local snippets; Reader API v3 does not expose the legacy upload flow, so convert PDFs to shareable URLs before saving..journal, .deepread). Avoid overloading summary with custom formats—store structured metadata in labels/tags instead.--dry-run prints the payload without hitting the API. Dry-run output always shows the full payload (no field filtering).${CLAUDE_PLUGIN_ROOT}/skills/readwise-reader/scripts/reader_client.py: CLI covering document create/list/update/pull plus token validation against Reader API v3. Integrates with shared utilities from ${CLAUDE_PLUGIN_ROOT}/readwise_common/.${CLAUDE_PLUGIN_ROOT}/readwise_common/ (auth, HTTP retries, tag/location utilities); import from there when extending functionality to keep behavior consistent.uv run --project ${CLAUDE_PLUGIN_ROOT} python -m compileall ${CLAUDE_PLUGIN_ROOT}/skills/readwise-reader ${CLAUDE_PLUGIN_ROOT}/readwise_common before shipping changes.docs create --dry-run, docs list --limit 5, and docs pull --since <yesterday> to confirm pagination + tagging rules.