Navigate the sea of academic papers — with AI as your co-pilot.
Features • Quick Start • Sources • Architecture • Contributing
Paper Pilot is a local-first desktop research assistant built for scientists who are tired of switching between 10 browser tabs to find, read, and synthesize academic papers.
Projects, papers, notes, conversations, citations, and indexes stay on your machine. Ollama keeps generation local; when you select a hosted provider, only the context needed for that request is sent to the configured endpoint.
You ──▶ Ask a research question
│
▼
Paper Pilot crawls 8+ academic sources simultaneously
│
▼
Papers downloaded → converted → indexed (FTS5 + vector search)
│
▼
AI synthesizes insights from your local corpus
│
▼
You ──▶ Get answers grounded in real papers, not hallucinations
|
Simultaneously queries 8+ academic databases:
|
|
|
|
See the evidence review guide. |
|
Requirements:
- Node.js
>= 22.18.0 - Python 3.11+
- (Optional) Ollama for local AI
# Clone and install
git clone https://github.com/Xueyang-Song/paper-pilot.git
cd paper-pilot
npm install
# Run in development
npm run dev
# Build for production
npm run build
# Package as desktop app
npm run packageNote: Dev server must use
http://127.0.0.1:5173. If that port is busy, free it before running.
| Source | Type | API Key Required |
|---|---|---|
| OpenAlex | Multidisciplinary | Optional (email) |
| Crossref | Multidisciplinary | Optional (email) |
| Semantic Scholar | CS + Science | Recommended |
| PubMed / PMC | Biomedical | No |
| arXiv | Physics/CS/Math | No |
| Europe PMC | Life Sciences | No |
| CORE | Open Access | Required |
| Unpaywall | Open Access PDFs | Optional (email) |
| Google Scholar | All fields | No (experimental |
paper-pilot/
├── src/
│ ├── electron/ # Main process (Node.js)
│ │ ├── crawlers/ # Academic source adapters
│ │ ├── db/ # SQLite + FTS5 + sqlite-vec
│ │ ├── agent/ # AI tool-calling agent
│ │ └── python/ # MarkItDown + Playwright bridge
│ └── renderer/ # React 19 + Vite UI
│ ├── workspace/ # ChatGPT-style chat interface
│ ├── projects/ # Project management rail
│ ├── artifacts/ # Paper & artifact panel
│ └── settings/ # API keys, policies
├── tests/ # Vitest test suite
└── package.json
Tech Stack:
This is an early v1 — buildable, test-covered, but still hardening for production-level reliability.
| Area | Status |
|---|---|
| Core crawlers (OpenAlex, Crossref, arXiv, PubMed) | ✅ Stable |
| SQLite + FTS5 + vector search | ✅ Stable |
| AI agent (Ollama / OpenAI-compatible) | ✅ Stable |
| Evidence-grounded multi-chat research workspace | ✅ Stable |
| Auditable evidence review workspace | ✅ Stable |
| Google Scholar crawler | |
| macOS / Linux packaging | |
| Cloud sync / collaboration | ❌ Not planned |
Contributions welcome. Please open an issue before large PRs to discuss approach.
npm run verify # Format, lint, typecheck, coverage, and build
npm run format:check # Check repository formatting
npm run lint # Run ESLint with zero warnings
npm run test # Run test suite (Vitest)
npm run test:coverage # Run tests with enforced coverage thresholds
npm run typecheck # TypeScript strict checks
npm run test:crawlers:api # Live no-key HTTP source smoke
npm run test:crawlers:browser # Playwright browser crawler smokeSee CONTRIBUTING.md for the protected PR workflow and automatic release labels.