[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-11549":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":16,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":9,"pushedAt":9,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":14,"starSnapshotCount":14,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},11549,"paper-pilot","Xueyang-Song\u002Fpaper-pilot","Xueyang-Song","Research-paper workflow tool for literature triage and structured reading",null,"TypeScript",336,43,30,0,255,51.93,false,"main",true,[],"2026-06-12 04:00:55","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"https:\u002F\u002Fcapsule-render.vercel.app\u002Fapi?type=waving&color=gradient&customColorList=6,11,20&height=180&section=header&text=Paper%20Pilot&fontSize=72&fontColor=fff&animation=twinkling&fontAlignY=32&desc=Local-First%20AI%20Research%20Assistant%20for%20Scientists&descAlignY=55&descSize=20\" width=\"100%\"\u002F>\n\n[![Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FXueyang-Song\u002Fpaper-pilot?style=for-the-badge&logo=github&color=FFD700)](https:\u002F\u002Fgithub.com\u002FXueyang-Song\u002Fpaper-pilot\u002Fstargazers)\n[![TypeScript](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https:\u002F\u002Fwww.typescriptlang.org\u002F)\n[![Electron](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FElectron-47848F?style=for-the-badge&logo=electron&logoColor=white)](https:\u002F\u002Felectronjs.org\u002F)\n[![React](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReact_19-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)](https:\u002F\u002Freact.dev\u002F)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FXueyang-Song\u002Fpaper-pilot?style=for-the-badge&color=green)](LICENSE)\n\n**Navigate the sea of academic papers — with AI as your co-pilot.**\n\n[Features](#-features) • [Quick Start](#-quick-start) • [Sources](#-paper-sources) • [Architecture](#-architecture) • [Contributing](#-contributing)\n\n\u003C\u002Fdiv>\n\n---\n\n## What is Paper Pilot?\n\nPaper 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.\n\nEverything runs on your machine — your papers, your notes, your AI conversations. No cloud lock-in, no subscription fees, no data leaving your computer.\n\n```\nYou ──▶  Ask a research question\n          │\n          ▼\n     Paper Pilot crawls 8+ academic sources simultaneously\n          │\n          ▼\n     Papers downloaded → converted → indexed (FTS5 + vector search)\n          │\n          ▼\n     AI synthesizes insights from your local corpus\n          │\n          ▼\nYou ──▶  Get answers grounded in real papers, not hallucinations\n```\n\n---\n\n## ✨ Features\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n### 🔍 Multi-Source Paper Crawling\nSimultaneously queries **8+ academic databases**:\n- OpenAlex, Crossref, Semantic Scholar\n- PubMed\u002FPMC, arXiv, Europe PMC\n- CORE, Unpaywall\n- Google Scholar (experimental)\n\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n### 🤖 AI-Assisted Synthesis\n- **Local Ollama** for fully offline operation\n- **OpenAI-compatible** API support\n- Vercel AI Gateway support with non-generating provider health checks\n- Tool-calling agent with citation grounding\n- Chat workspace with full conversation history\n\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n### 🗄️ Smart Local Storage\n- **SQLite** with `node:sqlite` (zero dependencies)\n- **FTS5** full-text search across all papers\n- **`sqlite-vec`** vector similarity search\n- Project-scoped storage — keep research contexts separate\n\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n### 📄 PDF → Knowledge Pipeline\n- Open-access PDF auto-fetching via Unpaywall\n- **MarkItDown** conversion for AI-ready text\n- Python virtualenv isolation for scripting tools\n- Secure credential storage via Electron `safeStorage`\n\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n---\n\n## 🚀 Quick Start\n\n**Requirements:**\n- Node.js `>= 22.18.0`\n- Python 3.11+\n- (Optional) [Ollama](https:\u002F\u002Follama.com\u002F) for local AI\n\n```bash\n# Clone and install\ngit clone https:\u002F\u002Fgithub.com\u002FXueyang-Song\u002Fpaper-pilot.git\ncd paper-pilot\nnpm install\n\n# Run in development\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Package as desktop app\nnpm run package\n```\n\n> **Note:** Dev server must use `http:\u002F\u002F127.0.0.1:5173`. If that port is busy, free it before running.\n\n---\n\n## 📚 Paper Sources\n\n| Source | Type | API Key Required |\n|--------|------|-----------------|\n| **OpenAlex** | Multidisciplinary | Optional (email) |\n| **Crossref** | Multidisciplinary | Optional (email) |\n| **Semantic Scholar** | CS + Science | Recommended |\n| **PubMed \u002F PMC** | Biomedical | No |\n| **arXiv** | Physics\u002FCS\u002FMath | No |\n| **Europe PMC** | Life Sciences | No |\n| **CORE** | Open Access | **Required** |\n| **Unpaywall** | Open Access PDFs | Optional (email) |\n| **Google Scholar** | All fields | No (experimental ⚠️) |\n\n---\n\n## 🏗 Architecture\n\n```\npaper-pilot\u002F\n├── src\u002F\n│   ├── electron\u002F          # Main process (Node.js)\n│   │   ├── crawlers\u002F      # Academic source adapters\n│   │   ├── db\u002F            # SQLite + FTS5 + sqlite-vec\n│   │   ├── agent\u002F         # AI tool-calling agent\n│   │   └── python\u002F        # MarkItDown + Playwright bridge\n│   └── renderer\u002F          # React 19 + Vite UI\n│       ├── workspace\u002F     # ChatGPT-style chat interface\n│       ├── projects\u002F      # Project management rail\n│       ├── artifacts\u002F     # Paper & artifact panel\n│       └── settings\u002F      # API keys, policies\n├── tests\u002F                 # Vitest test suite\n└── package.json\n```\n\n**Tech Stack:**\n\n![Electron](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FElectron_42-47848F?style=flat-square&logo=electron&logoColor=white)\n![React](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReact_19-61DAFB?style=flat-square&logo=react&logoColor=black)\n![TypeScript](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTypeScript_5-3178C6?style=flat-square&logo=typescript&logoColor=white)\n![Vite](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVite_8-646CFF?style=flat-square&logo=vite&logoColor=white)\n![SQLite](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSQLite-003B57?style=flat-square&logo=sqlite&logoColor=white)\n![TanStack Query](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTanStack_Query-FF4154?style=flat-square&logo=reactquery&logoColor=white)\n![Tailwind](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTailwind_4-06B6D4?style=flat-square&logo=tailwindcss&logoColor=white)\n![Framer Motion](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFramer_Motion-0055FF?style=flat-square&logo=framer&logoColor=white)\n![Zod](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FZod-3E67B1?style=flat-square&logo=zod&logoColor=white)\n![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython_3.11+-3776AB?style=flat-square&logo=python&logoColor=white)\n\n---\n\n## ⚠️ Current Status\n\nThis is an **early v1** — buildable, test-covered, but still hardening for production-level reliability.\n\n| Area | Status |\n|------|--------|\n| Core crawlers (OpenAlex, Crossref, arXiv, PubMed) | ✅ Stable |\n| SQLite + FTS5 + vector search | ✅ Stable |\n| AI agent (Ollama \u002F OpenAI-compatible) | ✅ Stable |\n| Google Scholar crawler | ⚠️ Experimental |\n| macOS \u002F Linux packaging | ⚠️ Untested |\n| Cloud sync \u002F collaboration | ❌ Not planned |\n\n---\n\n## 🤝 Contributing\n\nContributions welcome. Please open an issue before large PRs to discuss approach.\n\n```bash\nnpm run verify                 # Typecheck, tests, and production build\nnpm run test                   # Run test suite (Vitest)\nnpm run typecheck              # TypeScript strict checks\nnpm run test:crawlers:api      # Live no-key HTTP source smoke\nnpm run test:crawlers:browser  # Playwright browser crawler smoke\n```\n\n---\n\n\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"https:\u002F\u002Fcapsule-render.vercel.app\u002Fapi?type=waving&color=gradient&customColorList=6,11,20&height=80&section=footer\" width=\"100%\"\u002F>\n\n*Built by a researcher, for researchers.*\n\n[![GitHub](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FXueyang--Song-181717?style=flat-square&logo=github)](https:\u002F\u002Fgithub.com\u002FXueyang-Song)\n\n\u003C\u002Fdiv>\n","Paper Pilot 是一款专为科研人员设计的本地优先桌面研究助手，旨在帮助用户高效地查找、阅读和整合学术论文。其核心功能包括同时查询8个以上的学术数据库（如OpenAlex、PubMed等），并利用AI技术从本地文献库中提炼见解。技术特点上，该项目使用TypeScript编写，结合了Electron和React框架构建跨平台桌面应用，采用SQLite进行智能本地存储，并支持FTS5全文搜索及向量相似性搜索。此外，它还提供完全离线运行模式以及与OpenAI兼容的API支持。Paper Pilot适用于需要频繁处理大量学术资料的研究场景，确保所有数据都在本地处理，无需担心隐私泄露或订阅费用问题。",2,"2026-06-11 03:32:04","CREATED_QUERY"]