skills/paperpile/SKILL.md
This skill should be used when the user asks to "add paper", "paperpile add", "fetch PDF for", "find and add", "search paperpile", "find in paperpile", "paperpile search", "label paper", "trash paper", "download paper", "paperpile index", "edit paper metadata", "update paper title", "fix paper author", "paperpile edit", "find PDF online", "search google for PDF", "resolve PDF", "fetch PDF for citation", "get full-text for DOI", "resolve cite to PDF", or any request to manage their Paperpile library or resolve a citation to a local PDF.
npx skillsauth add edwinhu/workflows paperpileInstall 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.
Manage your Paperpile library and resolve citations to PDFs via the paperpile CLI.
paperpile binary at ~/.local/bin/paperpile (Bun-compiled from ~/projects/paperpile-cli)paperpile auth import <path> (exported from Cookie-Editor in JSON format)~/.config/chrome-cdp)| Need | Command |
|------|---------|
| Verify auth | paperpile auth |
| Import cookies | paperpile auth import ~/cookies.json |
| Index/refresh library | paperpile index --refresh |
| Search library | paperpile search "proxy voting" |
| Download PDF by item ID | paperpile download <item_id> |
| Fetch PDF by bibkey | paperpile fetch Smith2024-ab |
| Add by DOI | paperpile add 10.1016/j.jfineco.2024.01.001 |
| Add web source by URL | paperpile add https://example.com/article |
| Add remote PDF | paperpile add https://example.com/report.pdf |
| Add local PDF | paperpile add /path/to/report.pdf |
| Add DOI stub (no metadata) | paperpile add <doi> --force |
| List labels | paperpile label list |
| Create label | paperpile label create "My Label" |
| Apply label | paperpile label apply "My Label" Smith2024-ab |
| Remove label | paperpile label remove "My Label" Smith2024-ab |
| Delete label | paperpile label delete "My Label" --confirm |
| Trash item | paperpile trash Smith2024-ab --confirm |
| Restore from trash | paperpile trash Smith2024-ab --restore --confirm |
| Edit metadata | paperpile edit Smith2024-ab --title "..." --author "..." --year 2024 --confirm |
Key behaviors:
add auto-detects input type:
10.xxx) -- lookup metadata via Guru, create entryhttps://...) -- create entry with url:[] field (no --force needed)https://.../*.pdf) -- download PDF, copy to Google Drive, attach to entry/path/to/*.pdf) -- copy to Google Drive sync folder, create entry with PDF attached--title, --author, --year, --pubtype for metadata--force only needed for DOIs when Guru metadata is unavailableedit updates metadata fields on existing items via sync API. Dry-run by default -- pass --confirm to apply.fetch resolves a bibkey to PDF via Paperpile API + Google Drive download.search scores against a local index cache. Run paperpile index first.trash and label delete are dry-run by default -- pass --confirm to execute.One command: citation string → paper in Paperpile with PDF.
paperpile find-and-add "<citation>" [--doi DOI] [--ssrn ID] [--title T] [--author A] [--year Y] [--journal J] [--volume V] [--page P] [--json] [--no-pdf]
# Law review article (HeinOnline)
paperpile find-and-add "Robertson, Passive in Name Only, 36 Yale J. on Reg. 795 (2019)"
# SSRN working paper
paperpile find-and-add --ssrn 5093097
# Paper with known DOI
paperpile find-and-add --doi 10.1016/j.jfineco.2024.01.001
# Multi-author law review
paperpile find-and-add "Montagnes, Peskowitz and Sridharan, How Well Do Voting Choice Policies Represent Public and Investor Preferences, SSRN 5093097 (2024)"
pdf_url preprint/publisher download (pure HTTP)filetype:pdf search via CDP (final fallback)~/Google Drive/.../Paperpile/All Papers/<Letter>/)UCLA L. Rev., Yale J. on Reg., Yale L.J., Harv. L. Rev., Stan. L. Rev., Colum. L. Rev., Mich. L. Rev., Va. L. Rev., U. Pa. L. Rev., N.Y.U. L. Rev., Chi. L. Rev., Geo. L.J., Duke L.J., Cornell L. Rev., Nw. U. L. Rev., Tex. L. Rev., B.U. L. Rev., and more (see heinonline.ts in paperpile-cli).
shibidp.its.virginia.edu) are now snapshotted -- EZproxy re-auth is transparent across Dia restartsUpdate title, author, year, and other fields on existing library items.
paperpile edit <bibkey-or-_id> --title "..." --author "..." --year 2024 [--confirm]
Supported flags: --title, --author, --year, --journal, --volume, --pages, --abstract, --url
# Edit title and year (dry-run)
paperpile edit Smith2024-ab --title "New Title" --year 2025
# Apply the edit
paperpile edit Smith2024-ab --title "New Title" --year 2025 --confirm
# Institutional author (& treated as single author)
paperpile edit abc123 --author "Davis Polk & Wardwell" --confirm
# Multiple personal authors (comma-separated "First Last" pairs)
paperpile edit abc123 --author "Jack Pitcher, Emily Glazer" --confirm
Key behaviors:
--confirm to mutate._id via the local index (same as trash).action: "update" to patch fields.& are treated as institutional (single author). Comma-separated "First Last" pairs are split into multiple personal authors.| Need | Command |
|------|---------|
| Poll for PDF attachment | ${CLAUDE_SKILL_DIR}/scripts/poll_attachment.sh <item_id> |
| Warm up proxy session | ${CLAUDE_SKILL_DIR}/scripts/warmup.sh |
warmup.sh auto-clicks the NetBadge cert login via CDP. Runs every 25 min via launchd (com.paperpile.warmup.plist).
If the /fetch-paper skill is available (lives in dotfiles, not this plugin), prefer it
for downloading paywalled PDFs. It uses a WRDS SOCKS tunnel to present a Penn IP — which
is registered with publishers for IP-based access — and bypasses EZproxy entirely.
Check availability:
which wrds-tunnel && which fetch-paper-browser && echo "fetch-paper available" || echo "fetch-paper not available — falling back to EZproxy/CDP"
If available: use /fetch-paper for PDF acquisition, then paperpile add <local.pdf> to add to library.
If not available: use the EZproxy/CDP pipeline in find-and-add as before.
See ${CLAUDE_SKILL_DIR}/references/institutional_access.md for technical details.
fetch-paper (dotfiles) → download PDF via WRDS SOCKS
Paperpile (this skill) → cite-check (upload PDFs to Gemini)
→ nlm (upload to NotebookLM)
~/.claude-work/skills/paperpile/cookies/<domain>.json~/.claude-work/skills/paperpile/cache/paperpile-index.json~/Library/CloudStorage/[email protected]/My Drive/resources/Paperpile/All Papers/| Action | Why Wrong | Do Instead |
|--------|-----------|------------|
| Using --force without user approval | Adds DOI stubs without metadata -- clutters library | Ask user before adding DOIs without Guru data. URLs and PDFs don't need --force |
| Running trash --confirm without showing dry run | Destructive, cannot be undone | Run without --confirm first |
| Skipping paperpile index before search | Stale results from cached index | Run paperpile index --refresh first |
| Calling Paperpile API directly | Skips auth, cookies, error handling | Always use the CLI |
| Using curl to fetch a DOI URL | Publisher returns HTML paywall, not PDF | Use paperpile find-and-add --doi |
| Running find-and-add without Chrome on :9250 | CDP PDF fallbacks will fail | Check curl -sf http://localhost:9250/json/version first |
testing
Internal skill for literature review and source materialization. Called after brainstorm, before setup. NOT user-facing.
documentation
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.
testing
Validate draft sections cover all PRECIS claims before review.
testing
Internal skill for creating PRECIS.md, OUTLINE.md, and ACTIVE_WORKFLOW.md. Called after brainstorm sources are gathered.