Search 22 scientific databases with one command, keep every result in a local library, and download the PDFs you are entitled to read. Rank, summarise, compare and question your papers with a language model on your own machine, or send them to Zotero, Obsidian and NotebookLM.
| 🔍 Every database in one query arXiv · OpenAlex · Crossref · Semantic Scholar · PubMed · PubMed Central · Europe PMC · Cochrane · DOAJ · HAL · BASE · CORE · Zenodo · DBLP · bioRxiv/medRxiv · NASA ADS · IEEE Xplore · Springer Nature · ScienceDirect · Scopus · PEDro, searched in parallel and merged by DOI. Filters by year, author, journal, title or abstract. A first search · Sources |
📄 The PDFs you can read The source's link, every open copy Unpaywall knows (publisher, arXiv, PMC, HAL, repositories), then your saved publisher logins. Each file is checked to be a real PDF and named after the paper; a .bib or .csv of DOIs downloads in one command. Getting the PDFs |
| 🔐 Paywalls, legally Where a publisher blocks automation (Elsevier), mosaic get --auto
drives your Chrome through the same moves you would make and files each download unattended; without
Chrome, mosaic get --handoff opens the article in your own browser and files the PDF you download;
mosaic import files PDFs you already have, by their DOI. No paywall or bot-check evasion.
Paywalled papers |
🗄️ A library that grows Every result goes into a local SQLite cache that fills in what one source leaves out. Search it offline with --cached; export to BibTeX, RIS, CSV, JSON, Markdown, Zotero or Obsidian. The cache · Exporting |
📡 Following a fieldmosaic watch saves searches that report only papers they have not shown you before; one cron line makes a morning digest. mosaic similar finds related papers from any seed. Following a field |
🧠 A model that reads with you Relevance ranking, one-paragraph summaries that cite the rows, comparison tables, and answers from your papers with citations ( index · ask · chat). Ollama on your machine, or OpenAI and Anthropic. A local model · Asking your library |
| 🕸️ The citation map Citation links between the papers of your library, hub papers, Louvain clusters, and graph files for Gephi, Graphviz or Mermaid. The citation network |
🤖 Scripts, agents and a web UI--json for jq and pipelines, exit codes that report failures, a bundled Claude Code skill, NotebookLM notebooks, and a browser interface (mosaic ui, or a standalone app). Scripts and agents · Web UI |
pipx install 'mosaic-search[all]' # or: pipx install mosaic-search (core only)
mosaic config --unpaywall-email you@example.org # lets mosaic ask Unpaywall for open copies
mosaic search "hall thruster particle-in-cell" # every source, one table
mosaic search "hall thruster" --year 2020-2025 --oa-only -d # filter, then download the PDFs
mosaic get --from refs.bib # every DOI of a BibTeX file
mosaic get 10.1016/j.paerosci.2006.01.001 --auto # a paywalled paper, via your Chrome
mosaic get 10.1016/j.paerosci.2006.01.001 --handoff # a paywalled paper, via your click
mosaic search "hall thruster" --cached --output refs.bib # the cache, as BibTeX
mosaic watch add "hall thruster anomalous transport" --name hall && mosaic watch runWith a language model (Ollama or a cloud API):
mosaic config --llm-provider openai --llm-base-url http://localhost:11434/v1 --llm-api-key ollama --llm-model qwen3:8b
mosaic search "hall thruster anomalous electron transport" --summarise
mosaic index && mosaic ask "What causes anomalous electron transport in Hall thrusters?"The tutorial follows one literature search through ten chapters,
with the real output of every command. Installation lists
the extras (rag, analysis, browser, ui, notebooklm, all) and the standalone app for Windows, macOS
and Linux.
Launch with mosaic ui (the ui extra), or download the standalone app from the
releases. See the
Web UI guide.
| 📢 Announcements | t.me/mosaic_search: releases, CI events, weekly digest |
| 💬 Support group | t.me/mosaic_search_support: questions, bug reports, discussion |
The support group has a bot that answers /help, /install, /version, /docs, /sources, /changelog,
/bug and /roadmap.
Contributions are welcome: see Contributing.
Stefano Zaghi · stefano.zaghi@gmail.com
Chief Yak Shaver & Accidental Package Maintainer — Fortran programmer who needed one paper, opened 21 browser tabs, and six months later found himself maintaining a Python library
Grand Pixel Overlord & Architect of the Sacred Button — world-class web UI designer, responsible for making MOSAIC actually look good
Claude (Anthropic)
Omniscient Code Oracle & Tireless Rubber Duck — AI pair programmer, responsible for writing the boring parts so humans don't have to
MOSAIC is available under your choice of license:
| License | SPDX | File |
|---|---|---|
| GNU General Public License v3 | GPL-3.0-or-later |
LICENSE.gpl3.md |
| BSD 2-Clause | BSD-2-Clause |
LICENSE.bsd-2.md |
| BSD 3-Clause | BSD-3-Clause |
LICENSE.bsd-3.md |
| MIT | MIT |
LICENSE.mit.md |