
Papi
- 1 installs
- 35 repo stars
- Updated August 1, 2026
- hummat/paperpipe
Interact with a local paper database via the papi CLI to list, search, show details, add papers, or export context, preferring CLI over MCP RAG for direct lookups.
About
Entry-point skill for a paper reference database driven by the papi CLI for listing, searching, adding, and exporting papers. A developer uses it as the first stop for paper lookups, delegating synthesis to dedicated papi sub-skills.
- papi CLI list/search/show/add over a local paper DB
- Routes to papi-ask, verify, compare, ground, and curate for deeper workflows
Papi by the numbers
- 1 all-time installs (skills.sh)
- Ranked #2,476 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
- Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/hummat/paperpipe --skill papiAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| repo stars | ★ 35 |
| Last updated | August 1, 2026 |
| Repository | hummat/paperpipe ↗ |
What it does
Interact with a local paper database via the papi CLI to list, search, show details, add papers, or export context, preferring CLI over MCP RAG for direct lookups.
Files
Paper Reference Assistant (CLI)
Entry point skill. Use papi CLI first; MCP RAG tools only when CLI is insufficient.
For specialized workflows, invoke dedicated skills:
/papi-ask— RAG queries requiring synthesis/papi-verify— verify code against paper/papi-compare— compare papers for decision/papi-ground— ground responses with citations/papi-curate— create project notes
Setup
papi path # DB location (default ~/.paperpipe/; override via PAPER_DB_PATH)
papi list # available papers
papi list | grep -i "keyword" # check if paper exists before searchingWhen NOT to Use MCP RAG
- Paper name known →
papi show <paper> -l summary - Exact term search →
papi search --rg "term" - Checking equations →
papi show <paper> -l eq - Only use RAG when above methods fail or semantic matching required
Decision Tree
| Question | Tool |
|---|---|
| "What does paper X say about Y?" | papi show X -l summary, then papi search --rg "Y" |
| "Does my code match the paper?" | /papi-verify skill |
| "Which paper mentions X?" | papi search --rg "X" first, then leann_search() if no hits |
| "Compare approaches across papers" | /papi-compare skill or papi ask |
| "Need citable quote with page number" | retrieve_chunks() (PQA MCP) |
| "Cross-paper synthesis" | papi ask "..." |
Search Commands
papi search --rg "query" # literal text match (fast, no LLM) — NOT regex by default!
papi search --rg --regex "pattern" # regex patterns (add --regex explicitly)
papi search "query" # ranked BM25
papi search --hybrid "query" # ranked + exact boost
papi search "query" -p paper1,paper2 # limit search to specific papers
papi ask "question" # PaperQA2 RAG
papi ask "question" --backend leann # LEANN RAG
papi notes {name} # open/print implementation notesSearch Escalation (cheapest first)
1. papi search --rg "X" — exact text, fast, no LLM 2. papi search "X" — ranked BM25 (requires papi index --backend search first) 3. papi search --hybrid "X" — ranked + exact boost 4. leann_search() — semantic search, returns file paths for follow-up 5. retrieve_chunks() — formal citations (DOI, page numbers) 6. papi ask "..." — full RAG synthesis
MCP Tool Selection (when papi CLI insufficient)
| Tool | Speed | Output | Best For |
|---|---|---|---|
leann_search(index_name, query, top_k) | Fast | Snippets + file paths | Exploration, finding which paper to dig into |
retrieve_chunks(query, index_name, k) | Slower | Chunks + formal citations | Verification, citing specific claims |
papi ask "..." | Slowest | Synthesized answer | Cross-paper questions, "what does literature say" |
- Check available indexes:
leann_list()orlist_pqa_indexes() - Embedding priority: Voyage AI → Google/Gemini → OpenAI → Ollama
Adding Papers
papi add 2303.13476 # arXiv ID
papi add https://arxiv.org/abs/... # URL
papi add 2303.13476 1706.03762 "Attention Is All You Need" # multiple at once (mixed sources OK)
papi add --pdf /path/to.pdf # local PDF
papi add --pdf "https://..." # PDF from URL
papi add --from-file papers.bib # bulk importPer-Paper Files
Located at {db}/papers/{name}/: equations.md, summary.md, source.tex, notes.md, paper.pdf, figures/.
If agent can't read ~/.paperpipe/, export to repo: papi export <papers...> --level equations --to ./paper-context/ Use --figures to include extracted figures in export.
See references/commands.md for full command reference and per-file details.
papi Command Reference
Core Commands
| Command | Description |
|---|---|
papi path | Print database location |
papi docs | Print agent integration snippet |
papi list [--tag TAG] | List papers (optionally filtered) |
papi tags | List all tags with counts (--audit, --merge OLD NEW, --delete TAG) |
papi search "query" | Ranked search (BM25 if search.db exists) |
papi search "query" -p paper1,paper2 | Search within specific papers |
papi search --rg QUERY | Literal text match via ripgrep (NOT regex by default) |
papi search --rg --regex PATTERN | Regex patterns (must add --regex explicitly) |
| `papi show <papers...> [-l eq\ | tex\ |
papi notes <paper> [--print] | Open/print implementation notes |
| `papi index [--backend pqa\ | leann\ |
Paper Management
| Command | Description |
|---|---|
papi add <id-or-url-or-title>... | Add one or more papers (mixed sources OK) |
papi add --pdf PATH_OR_URL | Add local PDF or URL |
papi add --from-file <file> | Import from JSON/BibTeX/text |
papi add <id> --update | Refresh existing paper |
papi add <id> --figures | Extract figures from LaTeX/PDF |
papi regenerate <name> [--all] | Regenerate summaries/equations |
papi regenerate <name> --name NEW | Rename a paper |
papi regenerate <names...> --tags/--remove-tags/--set-tags/--clear-tags | Edit tags on one or more papers (no LLM) |
papi remove <name> | Remove a paper |
papi audit [--regenerate] | Flag/fix issues in generated content |
papi rebuild-index [--dry-run] [--validate] | Rebuild index from paper directories |
Export
| Command | Description |
|---|---|
papi export <names...> --to ./dir | Export to directory |
| `papi export ... --level summary\ | equations\ |
papi export ... --figures | Include extracted figures |
RAG Queries
| Command | Description |
|---|---|
papi ask "question" | PaperQA2 RAG (default) |
papi ask "q" --backend leann | LEANN RAG |
papi ask "q" --format evidence-blocks | JSON output with citations |
papi ask "q" --pqa-agent-type fake | Cheaper/deterministic |
Common flags: --pqa-llm, --pqa-summary-llm, --pqa-agent-llm (search agent; defaults to --pqa-llm), --pqa-embedding, --pqa-rebuild-index, --leann-provider, --leann-model, --leann-index.
Per-Paper Files
Located at <paper_db>/papers/{name}/:
| File | Best For |
|---|---|
equations.md | Code verification |
summary.md | Understanding approach |
source.tex | Exact definitions |
notes.md | Implementation gotchas |
paper.pdf | RAG backends |
figures/ | Architecture diagrams, plots |