Xueyang-Song/paper-pilot
Research-paper workflow tool for literature triage and structured reading
Paper Pilot – A Local‑First AI Research Assistant
What it is – Paper Pilot is a desktop application (Electron + React) that helps scientists collect, store, and synthesize academic papers. It crawls multiple open‑access scholarly databases, downloads PDFs, converts them to plain‑text, indexes the content with full‑text and vector search, and lets you ask natural‑language questions that are answered by a local or hosted LLM (e.g., Ollama, OpenAI‑compatible APIs). All data stays on your machine unless you deliberately send a request to a remote model.
Core capabilities
| Capability | How it works |
|---|---|
| Multi‑source crawling | Simultaneously queries 8+ sources (OpenAlex, Crossref, Semantic Scholar, PubMed/PMC, arXiv, Europe PMC, CORE, Unpaywall, and an experimental Google Scholar scraper). |
| PDF → knowledge pipeline | Retrieves open‑access PDFs via Unpaywall, converts them to Markdown with the MarkItDown tool, and stores the text in a SQLite database. |
| Local storage & search | SQLite with the built‑in FTS5 engine for keyword search and the sqlite‑vec extension for vector similarity search. Projects are isolated so you can keep separate research contexts. |
| AI‑assisted synthesis | Sends a user’s query plus the relevant retrieved passages to a local Ollama model or any OpenAI‑compatible endpoint. Supports streaming chats, “grounded” mode (only returns information that can be traced to a source) and “exploratory” mode (allows more speculative answers). |
| Auditable evidence review | Every answer is linked to the exact citation(s) used; the UI shows a trace of the reasoning, lets you accept/reject AI suggestions, and exports a reproducible evidence package (RIS, BibTeX, CSV). |
| Secure credentials | API keys are stored using Electron’s safeStorage API, keeping them encrypted on disk. |
Architecture at a glance
paper‑pilot/
├─ src/electron/ # Node.js main process
│ ├─ crawlers/ # adapters for each scholarly API
│ ├─ db/ # SQLite + FTS5 + sqlite‑vec layer
│ ├─ agent/ # LLM orchestration (tool‑calling, streaming)
│ └─ python/ # MarkItDown conversion & Playwright bridge
├─ src/renderer/ # React 19 UI (Vite, Tailwind, TanStack Query)
│ ├─ workspace/ # Chat interface
│ ├─ projects/ # Project management
│ ├─ artifacts/ # Paper list & PDF viewer
│ └─ settings/ # API keys, policies, model choice
└─ tests/ # Vitest test suite
The stack is entirely open‑source: TypeScript 5, React 19, Vite, SQLite, and a thin Python environment for PDF processing.
Getting started (quick‑run)
# 1. Clone
git clone https://github.com/Xueyang-Song/paper-pilot.git
cd paper-pilot
# 2. Install Node dependencies
npm install
# 3. Run the development server (UI opens at http://127.0.0.1:5173)
npm run dev
# 4. Build a production bundle
npm run build
# 5. Package as a native desktop app (macOS/Linux – still untested)
npm run package
Prerequisites: Node ≥ 22.18, Python 3.11+, and optionally Ollama if you want fully offline LLM inference.
Who might benefit?
- Researchers who need to pull literature from many repositories without juggling dozens of browser tabs.
- Literature reviewers who want a reproducible audit trail linking every claim to a specific paper.
- Teams with strict data‑privacy policies because all PDFs and embeddings stay on the local disk.
- Anyone experimenting with local LLMs (Ollama) for scholarly Q&A.
Current maturity
- Core crawlers, SQLite indexing, and the AI chat workspace are marked stable.
- Google‑Scholar scraper is experimental.
- macOS/Linux packaging has not been fully tested; cloud‑sync collaboration is not planned.
Contributing
The repo includes a full Vitest test suite, linting, and type‑checking scripts. Contributions are encouraged; the maintainers ask that you open an issue before large PRs. See CONTRIBUTING.md for the protected‑branch workflow and release labeling.
TL;DR
Paper Pilot bundles together scholarly‑source crawling, local PDF ingestion, searchable SQLite storage, and an LLM‑driven chat interface—all in a single desktop app that keeps your data private. It’s a practical tool for scientists who want AI assistance without moving their research corpus to the cloud.
Related
- Project
- Project
- Project
- Project