Generated banner for DeepPaperNote
Generated logo for DeepPaperNote

DeepPaperNote

Agent plugin

First committed by 917Dhj

Published in 917Dhj/DeepPaperNote. Publisher page

1,348 GitHub stars

What it is

Turn one dense paper into an Obsidian note worth keeping: read the way its field reads it, linked to the papers already in your vault, and aimed at your own research. Agent skills for Claude Code, Codex, Cursor, and any agent that supports skills.
— the description by 917Dhj

AutoGineer overview, from the brain’s own files

DeepPaperNote is an agent-based skill designed to streamline the academic reading process by converting complex research papers into durable, high-quality Obsidian notes. It functions as an expert reader that extracts core information, figures, tables, and formulas, organizing them into a structured format tailored to the specific type of paper (e.g., method, survey, benchmark). The system ensures accuracy by grounding conclusions directly in the source text and performing independent quality checks before saving. It integrates seamlessly into an existing Obsidian vault, linking new notes to related research and allowing users to maintain a growing, interconnected academic wiki. The tool supports various input formats including DOIs, arXiv IDs, and local PDFs, and offers optional enhancements like Zotero integration and OCR for scanned documents.

How it works

Memory model: Not stated

AutoGineer overview, from the brain’s own files

The tool operates as a skill for AI agents like Claude Code or Codex. Upon receiving a request with a paper identifier or file, the agent reads the document, extracts relevant content, and processes figures and tables. It then generates a structured Markdown note with sections for core information, methodology, evidence, and takeaways. The note is saved into the user's Obsidian vault, typically within domain-specific folders, and includes structured properties for filtering. Companion skills are available to manage research memory, organize the library, and build a glossary of terms.

Folders
FolderRoleFiles
.githubagent-config3
assetsattachments5
docsdocs1
scriptsscripts1
skillsagent-instructions108
teststests50
.claude-pluginfolder2
.codex-pluginfolder1
evalsfolder73

Requirements

Runtimes: Python >=3.10

API keys (by name): SEMANTIC_SCHOLAR_API_KEY

Works with: Claude Code, OpenAI Codex, GitHub Copilot, Cursor, Kiro, OpenCode, Amp, Cline, JetBrains Junie, Devin (ex-Windsurf)

Set it up

  1. Not scanned by AutoGineerThe author’s README also describes installing it as a Claude Code plugin marketplace. Read its install section: AutoGineer did not scan that path. https://github.com/917Dhj/DeepPaperNote/blob/9670b1bffbd7732caf19acafac076ff6730bd714/README.md#1-install
  2. First committed by 917Dhj. Published in 917Dhj/DeepPaperNote. Licence: MIT License.

Usage

AutoGineer overview, from the brain’s own files

  • Generate a deep-reading note for a specific paper using its title, DOI, or arXiv ID.
  • Automatically link new paper notes to existing research in an Obsidian vault.
  • Build and maintain a research memory that tracks personal research directions.
  • Organize an existing paper library by fixing domain categories and tags.
  • Create a glossary of key concepts extracted from research papers.
  • Check the environment and dependencies for the agent skill.
“Generate a deep-reading note for this paper: [arXiv ID]”
The agent reads the paper, extracts key findings and figures, and saves a structured Markdown note into the user's Obsidian vault.
“Organize my paper library”
The agent sorts papers into domain categories and fixes domain tags within the Obsidian vault.
“Build my research memory”
The agent records the user's research directions to tailor future note takeaways.
“Build glossary notes for this paper”
The agent identifies key terms in the paper and creates reusable term notes linked back to the paper text.

Documentation by 917Dhj

<div align="center">

DeepPaperNote

Turn one complex paper into an Obsidian note you will actually want to keep.

English | 简体中文

Image: Homepage Image: Release Image: License Image: Agents Image: Output

</div>

Image: DeepPaperNote Hero

<p align="center"> <em>Read one paper deeply. Add one durable page to your academic wiki.</em> </p>

When you study an important paper, the hard part is rarely the reading. It is turning what you understood into a note you can still use later. Finding the source, matching figures to the text, copying numbers over, and tracing the method often take the better part of a day. And the papers you have read end up scattered, with nothing connecting one to another.

DeepPaperNote is an agent skill that runs in Claude Code, Codex, and any other agent that supports skills. Hand it a paper, and it reads the full text, writes an illustrated deep-reading note, saves it into your Obsidian vault, and links it to the other papers you have read. Every paper you read grows your academic wiki a little.

  • 🚀 One sentence, one note. No prompts to learn, no templates to set up. Say "Generate a deep-reading note for this paper" with a title, DOI, arXiv ID, or PDF, and it finds the paper, reads it in full, extracts the figures, and saves the note into your vault.

  • 🎓 Reads like a domain expert. From CS and AI to medicine, psychology, and the humanities, from new methods and benchmarks to surveys and clinical trials, your papers can all go to DeepPaperNote. Each of 10 paper types gets its own way of reading, drawn from more than 50 reviewer guidelines and reporting standards such as the NeurIPS review criteria and CONSORT, and tested on 34 real papers.

  • 🎯 Accurate and complete. Every conclusion traces back to the paper, numbers come straight from its text and tables, and every main experiment is covered. When the paper does not report something, the note says so instead of guessing. Before saving, every note goes through an independent review and a strict quality check, and when the full text cannot be read, it never makes one up.

  • 🖼️ Figures, tables, and formulas in the text. Figures and tables are cropped from the PDF and placed right where the note discusses them, and key formulas render in Obsidian. No more flipping back to the PDF.

  • 🧠 A vault that knows you better the more you use it. Each note links to related papers in your vault and goes into the domain folders you already use. Record your research directions, and each note's Takeaways tell you what the paper means for your own work.

📰 News

  • [v3.0.0] 🎓 Notes read each paper by its type: 10 paper types each get their own way of reading and note structure, every figure is visually reviewed before it enters the note, and an independent quality review runs before saving. Release notes

  • [v3.0.0] 🧠 Every note joins your vault: notes gain Takeaways and Connections sections and carry structured properties, and two new skills, research-memory and organize-wiki, tailor the takeaways to your research directions and keep your domain folders in order.

  • [v2.3.1] 🔌 Added support for DeepPaperNote Connector: papers you save from your browser can get their notes in the same paper directory. Release notes

News lists only the three most recent user-facing milestones. See the changelog and GitHub Releases for the full history.

🚀 Quick Start

1. Install

Claude Code: install from the plugin marketplace

claude plugin marketplace add 917Dhj/DeepPaperNote
claude plugin install deeppapernote@deeppapernote

Codex and other agents that support skills: install with the skills CLI

npx skills add 917Dhj/DeepPaperNote

The plugin installs all four skills at once. The skills CLI lets you choose which skills to install and which agents receive them. To try it out, deeppapernote alone is enough; see below for what the other three do.

2. Install the PDF dependency
python3 -m pip install PyMuPDF

Python 3.10 or newer is required. If you use uv, run uv pip install PyMuPDF in the Python environment DeepPaperNote will use.

3. Read a paper

Tell your agent in one sentence, with the paper's title, DOI, URL, arXiv ID, or local PDF:

Generate a deep-reading note for this paper: <paper>
Turn this paper into an Obsidian note: <paper>

You can also call it with the slash command /deeppapernote <paper>.

The first time, it asks you two things: whether notes should be in English or Chinese, and whether to save them in the current workspace or your Obsidian vault. It remembers your answers and does not ask again. To use a different language or location for one paper, just say so in the request. For environment variables and other settings, see User Configuration.

4. Update to a new version

Claude Code:

claude plugin marketplace update deeppapernote
claude plugin update deeppapernote@deeppapernote

Restart Claude Code to apply the update.

skills CLI:

npx skills update

👀 What a Note Looks Like

Image: A DeepPaperNote deep-reading note for Attention Is All You Need

Every note has three parts: the opening and closing are the same for every paper, and the body in between follows the paper's type.

PartSections
OpeningCore Information · Abstract · Contributions · One-Sentence Summary
BodyMethod paper: Background and Problem → Limitations of Prior Work → Key Idea and Challenges → Method → Experimental Evidence → Deep Analysis<br>Benchmark: Evaluation Gap → Task and Design Goals → Construction and Quality Control → Evaluation Framework → Findings → What It Really Measures<br>Survey: Scope and Search → Taxonomy → Directions → Consensus, Disagreement, and Gaps<br>…10 paper types in all
ClosingLimitations · Takeaways · Connections · My Notes

The closing sections are where the note meets your vault:

  • Takeaways: Transferable Ideas and Next Steps, covering which of the paper's ideas carry over to other problems and what to do after reading it. Once you set up research memory, this part is written against your own research directions.

  • Connections: links to related paper notes in your vault, and the key prior work you need to understand this paper.

  • My Notes: yours to write in, and kept exactly as it is when the note is regenerated.

<details> <summary><b>What appears in your vault after saving</b></summary>

Each paper gets its own folder, and figures and tables are named after their labels in the paper:

<your papers folder>/
└── NLP/                       ← domain folder, reusing the ones you already have
    └── Attention_Is_All_You_Need/
        ├── Attention_Is_All_You_Need.en.md
        └── images/
            ├── figure_1.png
            └── table_2.png

Each note opens with structured properties you can query and filter with Obsidian Bases, for example to list every benchmark paper you have read, or everything you read this month:

paper_type: benchmark_or_dataset
methods: [...]
datasets: [...]
tasks: [...]
read_date: 2026-11-08

</details>

🧩 From Paper to Wiki

DeepPaperNote reads each paper deeply and saves it well. The other three skills are optional companions that look after your vault as a whole.

SkillWhat it does for youHow to call it
deeppapernoteCore. Deep-reads one paper and saves an illustrated note into your vault, linked to the other papers you have read."Generate a deep-reading note for this paper: <paper>"<br>or /deeppapernote
research-memoryKeeps a research memory for you: it records the research directions you are working on and follows them as you read. With it, DeepPaperNote writes each note's Takeaways against your directions, so the next note knows you better."Build my research memory"<br>or /research-memory
organize-wikiOrganizes your vault: it sorts out the domain categories, moves papers filed under the wrong domain, and fixes their domain tags. The categories it settles become what DeepPaperNote follows when it files new papers."Organize my paper library"<br>or /organize-wiki
paper-glossaryBuilds a glossary for your vault: it turns a paper's key concepts into reusable term notes and links them back into the paper's text. The same term in different papers points to the same term note."Build glossary notes for this paper"<br>or /paper-glossary

A good rhythm: read a few papers with DeepPaperNote first; once your vault has some notes, build a research memory; when the papers pile up and the categories start to drift, organize the vault.

✅ Notes You Can Trust

  • A deep read, not a summary. Every note answers all the core questions of its paper type, and states plainly where the paper does not report something.

  • Grounded in the paper. Conclusions and numbers in the note come from the paper itself, with nothing invented or guessed.

  • No full text, no note. If only the abstract is available, it stops and asks you for the paper instead of handing over a note that only looks complete.

  • Every figure is checked. Each figure and table is visually reviewed before it enters the note; a crop that is incomplete or does not match the text stays out.

  • A final check before saving. An independent review checks the note for errors and omissions, and the note is fixed before it is saved.

  • Your existing notes are safe. An existing note is never silently overwritten, and regenerating a note keeps its My Notes section exactly as it is.

More than words: we run regression tests on 34 real papers covering all 10 paper types, and in a blind evaluation on 6 sample papers with our internal rubric, the average score rose from 73.6 to 84.2 (out of 100) after the type-specific redesign.

🔧 Optional Enhancements

DeepPaperNote reads ordinary digital PDFs without any of these. Add them as you need:

EnhancementWhat it does for youHow to turn it on
DeepPaperNote ConnectorSaves a paper from your browser into your Obsidian paper library in one click, so its note can later be written in the same folderInstall the browser extension; it currently supports Chrome on macOS
ZoteroUses the item and PDF already in your Zotero library, with no searching or downloading againIn Zotero 7, open Settings → Advanced and check "Allow other applications on this computer to communicate with Zotero"; it is used automatically from then on
Semantic Scholar API keyFinds the right title, authors, and venue even for papers that are hard to identifySet the environment variable SEMANTIC_SCHOLAR_API_KEY
OCRRecovers the text of scanned or poor-quality PDFsInstall Tesseract and pytesseract

For any of these, you can also ask your agent to check your environment and set it up for you.

🛠️ Troubleshooting

When something goes wrong, the easiest fix is to ask your agent:

  • Installed, but it does not work: say "Check DeepPaperNote's environment." It tells you what is missing, covering Python and PyMuPDF, your Obsidian settings, and optional enhancements such as Zotero and OCR.

  • A note stopped partway or was not saved: say "Where did this DeepPaperNote run stop?" It tells you where it got stuck, what is missing, and what to do next.

Intermediate files are kept under ~/.deeppapernote/runs/, one directory per paper, and are not cleaned up automatically. Delete them by hand if they take up too much space.

If that does not solve it, please open an issue.

🧭 Inspirations

DeepPaperNote was influenced by projects that take paper reading, evidence extraction, and note generation seriously, especially:

🤝 Contributing

Pull requests should target develop, not main. Before submitting, run the tests and lint locally:

python3 -m pip install -e '.[dev]'
python3 -m pytest -q -n auto
python3 -m ruff check skills tests

The workflow is defined in skills/deeppapernote/SKILL.md. Changes that may affect note quality should be evaluated with evals/regression-workflow.md and evals/note-quality-rubric.md.

Star History

Image: Star History Chart

<p align="center"> <em>Thanks for reading, using, and supporting DeepPaperNote. May your paper-reading days be a little clearer, calmer, and more rewarding.</em> </p>

<p align="center"> <a href="./LICENSE">MIT License</a> &copy; <a href="https://github.com/917Dhj">917Dhj</a> </p>

LICENSE

Shown as plain text.

MIT License

Copyright (c) 2026 dingdingcar

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
253 files · 245 not served here

Advantages

  • Provides type-specific reading structures based on over 50 reviewer guidelines and reporting standards. evidence: README.md
  • Ensures accuracy by grounding all conclusions and data in the original paper text. evidence: README.md
  • Maintains a persistent, interconnected academic wiki by linking new notes to existing vault content. evidence: README.md
  • Supports visual content by cropping and embedding figures and tables directly into the generated notes. evidence: README.md

Limitations

  • Requires Python 3.10 or newer and specific dependencies like PyMuPDF to function. evidence: README.md
  • Does not generate notes if the full text of the paper is unavailable. evidence: README.md
  • Intermediate run files are not automatically cleaned up and may consume disk space. evidence: README.md

Security

Risk level: Low risk

This brain runs

Agent instructions that run or fetch something (32)

  • AGENTS.md: install the core runtime dependency with `python3 -m pip install PyMuPDF`
  • AGENTS.md: install the local development environment with `python3 -m pip install -e '.[dev]'`
  • AGENTS.md: run the test suite, companion skills included, with `python3 -m pytest -q -n auto`
  • AGENTS.md: run the lint CI enforces with `python3 -m ruff check skills tests`
  • AGENTS.md: when checking environment-related problems, use `python3 skills/deeppapernote/scripts/check_environment.py`
  • AGENTS.md: after changing extraction or figure selection, run the local paper corpus with `python3 -m pytest -q -m corpus`, as described in `evals/paper-corpus.md`
  • AGENTS.md: run the test suite and the lint from Working Commands
  • skills/deeppapernote/SKILL.md: Each run handles one paper.
  • skills/deeppapernote/SKILL.md: Run the steps in order.
  • skills/deeppapernote/SKILL.md: `references/run-state.md` explains how to bind the artifacts you write.
  • skills/deeppapernote/SKILL.md: **Configuration Readiness.** Resolve Run Overrides from the explicit request, CLI, and process environment.
  • skills/deeppapernote/SKILL.md: **Save Target Admission.** In Obsidian mode, run `scripts/write_obsidian_note.py --preflight` with the resolved title, `--language`, Vault, `--source-manifest`, and `--output <run_directory>/<run_prefix>_admission.json`.
  • skills/deeppapernote/SKILL.md: **Formal Save.** Run `scripts/write_obsidian_note.py` with `--content-file`, `--plan-file`, `--lint-json`, `--grounding-lint-json`, `--source-manifest`, `--figure-decisions`, `--final-quality-review`, `--final-readability-review`, the admitted `--domain` and `--new-domain-reason`, and a …[+89 chars]
  • skills/deeppapernote/SKILL.md: A normal request finishes in one run: text, figure decisions, image materialization, and save.
  • skills/deeppapernote/SKILL.md: When a run stops early, name the current stage and the remaining stages.
  • skills/deeppapernote/SKILL.md: After a successful Formal Save, report in the user's conversation language, and derive every claim from current-run artifacts;
  • skills/deeppapernote/SKILL.md: `SKILL.md` and the synthesis bundle carry a normal run.
  • skills/deeppapernote/SKILL.md: | Reference | When | |---|---| | `references/user-configuration.md` | Configuration Readiness | | `references/paper-archive.md` | existing Obsidian directories, local PDF versions, Connector handoff | | `references/domain-routing.md` | choosing the domain folder, the `papers/` tag, the …[+924 chars]
  • skills/deeppapernote/SKILL.md: When `python3` is older, use another interpreter of 3.10 or newer, such as `python3.12`, for the whole run;
  • skills/deeppapernote/SKILL.md: Run `scripts/check_environment.py` only when a concrete dependency or integration problem blocks a step, and explain the required dependencies, optional enhancements, and downgrade behavior directly.
  • skills/organize-wiki/SKILL.md: To undo the last reorganization, run `python3 scripts/organize.py undo --latest`, report what it restored or the conflicts it lists, and stop.
  • skills/organize-wiki/SKILL.md: Run `python3 scripts/scan_library.py --output <tmp>/scan.json`.
  • skills/organize-wiki/SKILL.md: Run `python3 scripts/organize.py preview --plan <plan.json>`.
  • skills/organize-wiki/SKILL.md: After the user confirms, run `python3 scripts/organize.py apply --plan <plan.json> --expected-digest <plan_digest>`.
  • skills/paper-glossary/SKILL.md: **Run deterministic proposal** from the effective body.
  • skills/paper-glossary/SKILL.md: Run library **inventory** from that triage artifact;
  • skills/paper-glossary/SKILL.md: **Run one writer invocation** against the **configured glossary directory**;
  • skills/research-memory/SKILL.md: Run `python3 scripts/aggregate_reading.py --output <tmp>/aggregate.json`.
  • skills/research-memory/SKILL.md: Keep `memory.sha256` from this run;
  • skills/research-memory/SKILL.md: Run the writer with `--create <content.json> --expected-sha256 absent --language <aggregate language> --dry-run`, and show the user `text` in full.
  • skills/research-memory/SKILL.md: Run it with `--update <changes.json> --expected-sha256 <memory.sha256> --dry-run`, and show the user `diff`.
  • skills/research-memory/SKILL.md: After the user confirms, run the same command without `--dry-run`.
  • Low risk: network-instructions (AGENTS.md:67)

Attribution and licence

First committed by
GitHub avatar of 917Dhj917Dhj
Declared authors
  • 917Dhj (declared in .claude-plugin/plugin.json)
  • dingdingcar (declared in pyproject.toml)
Publisher
HJ Ding (Community)
Source
917Dhj/DeepPaperNote · commit 9670b1b
Licence
MIT License (files served here)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Contributors
917Dhj, KuangjuX

AutoGineer is not affiliated with or endorsed by 917Dhj.

Install from source

245 of its files are not served here, so there is no ZIP. 917Dhj/DeepPaperNote at 9670b1b