Paper Morning is a research-context paper search engine for medical and health AI work. It turns a project description into search queries, retrieves papers, reranks them by practical relevance, and explains why they matter.
- Latest version: v0.7.3
- License:
GNU AGPLv3(LICENSE) - Privacy policy: PRIVACY.md
If you want to understand the product from GitHub first:
What happens on that page:
- The page itself explains what Paper Morning does before you run anything
- Enter your research context, choose a search mode, and paste a Gemini API key
- The page generates search queries from your context
- It retrieves real candidates from arXiv and PubMed based on your chosen intent and time horizon
- It ranks and summarizes them with Gemini
- It opens the ranked result page in a new browser tab
Notes:
- Client-side only (runs in your browser)
- No actual email is sent from this page
- Best for first-impression validation before local install
Paper Morning takes your research context - a few sentences describing what you're working on - and does the rest:
- Generates source-specific search queries from your description
- Retrieves candidates from arXiv, PubMed, Semantic Scholar, and optionally Google Scholar
- Filters by your chosen time horizon (7 days to 5 years)
- Reranks the shortlist with an LLM for practical relevance
- Explains why each paper matters, with evidence grounded in title and abstract
Three search modes let you control the lens:
| Mode | What it finds |
|---|---|
| Best Match | Strongest-fit papers for your project |
| What's New | Recent, directly useful updates |
| Discovery | Adjacent work with transferable methods |
The same engine powers both human and agent interfaces - the only difference is the output format.
Run Paper Morning locally and search on demand through the browser UI.
pip install -r deps/requirements.txt
python app/local_ui_launcher.py
# -> http://127.0.0.1:5050Results are saved to a local inbox. You can also schedule a daily popup at a set time, or send results via email - but the primary path is just: open the UI, search, and read.
Paper Morning exposes a local JSON endpoint that any research agent can call.
POST /api/agent/search
Your agent provides a research context and gets back structured, machine-usable JSON - ranked papers with scores, reasons, and evidence spans. An OpenAPI spec is included.
Key design choices:
- Key brokering: the agent only needs an
AGENT_API_TOKEN. LLM provider keys stay in.envor OS keyring. - Multiple LLM backends: Gemini, any OpenAI-compatible local server (LM Studio, vLLM), or Cerebras.
- Versioned contract: the JSON response includes a
schema_versionfield. - CLI mode is also available:
python app/paper_digest_app.py --agent-search --agent-request-file request.json
| What you want | Where to go |
|---|---|
| Try it in the browser first | Live Web Preview |
| Install and run locally | MANUAL_FIRSTTIME_EN.md |
| Integrate with an agent | MANUAL_AGENT_EN.md |
| Korean documentation | README_KR.md |
| Setting | What it controls |
|---|---|
SEARCH_INTENT_DEFAULT |
Default search mode (best_match / whats_new / discovery) |
SEARCH_TIME_HORIZON_DEFAULT |
Default time window (7d to 5y) |
LLM_MAX_CANDIDATES |
How many papers enter the LLM reranking step |
OUTPUT_LANGUAGE |
Language for LLM-generated explanations |
AGENT_API_TOKEN |
Bearer token for the agent endpoint |
ENABLE_OPENAI_COMPAT_FALLBACK |
Use a local/self-hosted LLM backend |
Full settings reference: MANUAL_EN.md
These still work, but they're not the main path.
- Morning popup: set
AUTO_OPEN_DIGEST_WINDOW=trueand results open in your browser on schedule. - Email delivery: Gmail OAuth or app password. Priority order: Local Inbox -> OAuth -> SMTP.
- GitHub Actions: unattended automation via
.github/workflows/paper-morning-digest.yml. RequiresPM_ENV_FILEsecret. Note: frequent runs on private repos can exceed the free Actions tier.
# Windows
.\tools\build_windows.ps1
# Linux
chmod +x tools/build_linux.sh && ./tools/build_linux.sh| Problem | What to check |
|---|---|
Search query is empty |
Generate and save topics in the Topic Editor |
PubMed 429 |
Retries are automatic; add NCBI_API_KEY to reduce rate limits |
| Gemini model errors | The runtime tries multiple Gemini fallbacks before failing |
Agent 403 Forbidden |
Verify AGENT_API_TOKEN and that the request is from localhost |
| No email received | Check addresses, spam folder, and auth config |
English
한국어
