# zotero-paper-reader

Pulls a paper out of your Zotero library by title, author or topic, grabs the PDF and turns it into markdown the agent can read and summarise.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 606 installs · ★ 10
- Author: FuZhiyu
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/FuZhiyu/ResearchProjectTemplate/tree/HEAD/ProjectExample/.claude/skills/zotero-paper-reader/SKILL.md
- Updated: 2025-12-05
- HTML: https://affpapa.org/en/nevibecode/skills/zotero-paper-reader

## What it does

The skill runs the whole chain. It searches Zotero through the MCP tools, lists the matches when there is more than one, and keeps the `item_key` of the paper you pick. Then it asks for the item's children, spots the attachment typed `application/pdf`, and hands that key to `get_zotero_pdf.py`.

That script runs under `uv run python`. It looks in `~/Zotero/storage/` first and only falls back to downloading from the web library over the API. From there the PDF goes to the `mistral-pdf-to-markdown` skill, and the result lands in `Notes/PaperInMarkdown/` as `Author_Year_Title.md`. Extracted figures end up in an `images/` subfolder.

A web library needs `ZOTERO_API_KEY`, `ZOTERO_LIBRARY_TYPE` and `ZOTERO_LIBRARY_ID` in `Notes/.env`; the Mistral key for conversion goes in the same file. Local libraries only work when the local API is switched on in Zotero's preferences. Papers past 40k tokens are read in chunks — pull a whole one into context and you will hit the limit.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add FuZhiyu/ResearchProjectTemplate --skill zotero-paper-reader -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/zotero-paper-reader/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/zotero-paper-reader/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add FuZhiyu/ResearchProjectTemplate --skill zotero-paper-reader -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/zotero-paper-reader/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add FuZhiyu/ResearchProjectTemplate --skill zotero-paper-reader -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/zotero-paper-reader/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install FuZhiyu/ResearchProjectTemplate zotero-paper-reader
```

2. **Manually: put the files in place**
- File: `.github/skills/zotero-paper-reader/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add FuZhiyu/ResearchProjectTemplate --skill zotero-paper-reader -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/FuZhiyu/ResearchProjectTemplate --path ProjectExample/.claude/skills/zotero-paper-reader
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/zotero-paper-reader/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add FuZhiyu/ResearchProjectTemplate --skill zotero-paper-reader -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/FuZhiyu/ResearchProjectTemplate/tree/HEAD/ProjectExample/.claude/skills/zotero-paper-reader/SKILL.md

## When to use it
- locate a paper in Zotero by author or topic
- fetch its PDF from local storage or the web library
- turn the PDF into markdown with its figures
- work through the abstract and key sections of a long paper
- keep paper notes in one folder with predictable filenames

## Example prompts
- Find Du's 2023 papers in Zotero and summarise the abstracts
- Convert this Zotero paper to markdown and save it under `Notes/PaperInMarkdown/`

## Similar
- [anysearch](https://affpapa.org/en/nevibecode/skills/anysearch.md) — skill · 38500 installs
- [academic-paper](https://affpapa.org/en/nevibecode/skills/academic-paper.md) — skill · 10800 installs
- [nature-figure](https://affpapa.org/en/nevibecode/skills/nature-figure.md) — skill · 18800 installs
- [academic-paper-reviewer](https://affpapa.org/en/nevibecode/skills/academic-paper-reviewer.md) — skill · 9800 installs
- [nature-polishing](https://affpapa.org/en/nevibecode/skills/nature-polishing.md) — skill · 17500 installs
- [nature-citation](https://affpapa.org/en/nevibecode/skills/nature-citation.md) — skill · 15600 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
