No description
Find a file
2026-04-30 14:11:03 +08:00
.planning feat: v1.4.11 — Obsidian plugin UX overhaul + headless_setup parity 2026-04-30 11:14:07 +08:00
command fix: VaultStep.__init__ missing step_id and checker in super() call 2026-04-27 19:49:36 +08:00
docs fix: update pip installs from GitHub source instead of package index 2026-04-29 00:16:13 +08:00
paperforge fix: add header_title key, fix lang detection, complete config summary i18n 2026-04-30 14:11:03 +08:00
scripts feat: complete i18n refactor + automated release script 2026-04-30 13:55:54 +08:00
tests feat: paperforge status --json, plugin panel with OCR progress bar 2026-04-28 19:21:52 +08:00
.gitignore gitignore: add .worktrees/ 2026-04-28 16:02:04 +08:00
.pre-commit-config.yaml feat(17-dead-code-precommit): add ruff config, pre-commit hooks, Check 5, and OCR error context 2026-04-27 17:29:13 +08:00
AGENTS.md docs: add developer guide (version bump, release, i18n, pre-commit) 2026-04-30 13:33:48 +08:00
CHANGELOG.md chore: rename PaperForge Lite -> PaperForge across 27 files 2026-04-28 01:25:51 +08:00
CONTRIBUTING.md chore: rename PaperForge Lite -> PaperForge across 27 files 2026-04-28 01:25:51 +08:00
paperforge.json refactor: __init__.py as single version source; pyproject.toml reads dynamically; paperforge.json drops version field 2026-04-28 22:41:48 +08:00
pyproject.toml fix: include styles.css in package data; prevent Unicode crash on pip output 2026-04-29 01:06:59 +08:00
README.md docs: rewrite README for Obsidian plugin-first experience 2026-04-30 11:18:52 +08:00
README.zh-CN.md docs: rewrite Chinese README for plugin-first experience 2026-04-30 11:20:41 +08:00
requirements.txt fix: add textual to requirements.txt 2026-04-23 00:09:00 +08:00
setup_wizard.py chore: rename PaperForge Lite -> PaperForge across 27 files 2026-04-28 01:25:51 +08:00
token-usage-output.txt fix: restructure skills — separate pf-deep/pf-paper, add prefix substitution, create config_file on deploy 2026-04-28 18:33:11 +08:00

    ______  ___  ______ _________________ ___________ _____  _____
    | ___ \/ _ \ | ___ \  ___| ___ \  ___|  _  | ___ \  __ \|  ___|
    | |_/ / /_\ \| |_/ / |__ | |_/ / |_  | | | | |_/ / |  \/| |__
    |  __/|  _  ||  __/|  __||    /|  _| | | | |    /| | __ |  __|
    | |   | | | || |   | |___| |\ \| |   \ \_/ / |\ \| |_\ \| |___
    \_|   \_| |_/\_|   \____/\_| \_\_|    \___/\_| \_|\____/\____/

PaperForge

Version Python License

简体中文 · English

Obsidian + Zotero literature pipeline. One plugin install, no terminal required.

Download plugin → Enable in Obsidian → Open wizard → Fill config → Click Install → Done

"From PDF to structured reading notes — all inside Obsidian."


What PaperForge Does

PaperForge turns your Zotero library into an AI-ready literature knowledge base:

Layer What you get How to use it
Literature index Structured notes with frontmatter (title, authors, journal, DOI, tags, abstract) Search, browse, filter via Base views
Full-text corpus OCR-extracted markdown (fulltext.md) Feed to LLMs for RAG or question answering
Figure database Figure-map with images + captions for every chart/table Multimodal AI: "show me Figure 3 and explain"
Deep reading AI-written 3-pass analysis with chart review and critical evaluation Literature synthesis, systematic reviews

Install

  1. Download the plugin files from the latest release

  2. Copy into your vault: {vault}/.obsidian/plugins/paperforge/

  3. Enable in Obsidian: Settings → Community Plugins → PaperForge

  4. Open the wizard: Settings → PaperForge → "打开安装向导"

  5. Follow 5 steps: Overview → Directory Config → Agent & Keys → Install → Done

The wizard auto-detects Python, Zotero, and Better BibTeX before starting.

Prerequisites

Software Purpose Get it
Python 3.9+ Run PaperForge CLI https://python.org
Zotero Literature management https://zotero.org
Better BibTeX Zotero plugin for JSON export https://retorque.re/zotero-better-bibtex/
PaddleOCR Key OCR text extraction https://aistudio.baidu.com/paddleocr

CLI (Advanced)

cd /path/to/your/vault
pip install git+https://github.com/LLLin000/PaperForge.git
python -m paperforge setup --headless --agent opencode --paddleocr-key <key>

Usage (All in Obsidian)

Action How
Open Dashboard Ctrl+P → "PaperForge: Open Dashboard", or click sidebar book icon
Sync Literature Dashboard → "Sync Library" — pulls from Zotero, generates notes
Run OCR Dashboard → "Run OCR" — extracts full text & figures
Deep Read /pf-deep <zotero_key> — AI 3-pass analysis (must run in AI agent)
Quick Query /pf-paper <zotero_key> — fast paper Q&A

Dashboard

┌──────────────────────────────────┐
│  PaperForge                   ↻  │
│                                  │
│  [Papers: 550] [Notes: 520] [...]│
│                                  │
│  OCR Pipeline  [Active]          │
│  ████████████░░░░░░░ 80%         │
│  Pending: 10  Active: 2  Done: 8│
│                                  │
│  Quick Actions                   │
│  [Sync Library] [Run OCR]        │
└──────────────────────────────────┘

Commands

Obsidian Command Palette (Ctrl+P)

Command Description
PaperForge: Open Dashboard Open status panel with metrics and quick actions
PaperForge: Sync Library Sync Zotero and generate notes
PaperForge: Run OCR Extract PDF full text and figures

Agent Commands

Command Description Requires
/pf-deep <key> Full 3-pass deep reading OCR complete
/pf-paper <key> Quick Q&A Formal note exists
/pf-sync Sync Zotero Installed
/pf-ocr Run OCR Installed
/pf-status System status Installed

CLI (Optional)

Command Description
paperforge sync Sync Zotero, generate notes
paperforge ocr Run OCR
paperforge status System overview
paperforge doctor Diagnose configuration
paperforge update Auto-update

Supported Agent Platforms

Platform Agent Commands Setup
OpenCode Full support (all /pf-* commands) .opencode/command/ + .opencode/skills/
Claude Code /pf-deep, /pf-paper .claude/skills/
Cursor /pf-deep, /pf-paper .cursor/skills/
GitHub Copilot /pf-deep, /pf-paper .github/skills/
Windsurf /pf-deep, /pf-paper .windsurf/skills/
Codex $pf-deep, $pf-paper .codex/skills/
Cline /pf-deep, /pf-paper .clinerules/

Select your platform in the wizard — files are deployed automatically.


Configuration

All config is handled by the setup wizard. Generated files:

vault/
├── paperforge.json          ← directory config + agent platform
├── System/
│   └── PaperForge/
│       ├── .env             ← PaddleOCR API key
│       ├── exports/         ← Better BibTeX JSON exports go here
│       └── config/          ← domain-collections.json
├── Resources/
│   ├── Notes/               ← formal literature notes (metadata + deep reading)
│   └── Index_Cards/         ← index records (one per paper, by domain)
└── Base/                   ← Obsidian Base views (filterable table views)

Environment variables (optional overrides):

Variable Default Description
PADDLEOCR_API_TOKEN PaddleOCR API Key
PAPERFORGE_LOG_LEVEL INFO Logging level

Update

Auto-update on every Obsidian restart (can be disabled in plugin settings). Or manually:

paperforge update
# or
pip install --upgrade git+https://github.com/LLLin000/PaperForge.git

Documentation

Document Content
Setup Guide Step-by-step from zero to running
Quick Install Concise install instructions
Post-Install Guide First-time user guide and workflow
Changelog Version history
Contributing Dev setup and conventions

License

MIT License