Skip to content
szaghiPublic

About

Multi-source Scientific Article Index and Collector

Resources

Contributing

Stars

17 stars

Watchers

1 watching

Forks

Repository files navigation

MOSAIC logo

a vivid mosaic of open scientific literature, assembled in seconds

Multi-sOurce Scientific Article Indexer and Collector

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.

Version Tests Coverage Python License: GPL v3 License: BSD-2 License: BSD-3 License: MIT Telegram Channel Telegram Group

🔍 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 field
mosaic 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

Full documentation: tutorial · cookbook · reference


Quick start

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 run

With 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.

Web UI

Launch with mosaic ui (the ui extra), or download the standalone app from the releases. See the Web UI guide.

Community

📢 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.

Authors

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

Andrea Giulianini

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

License

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

© Stefano Zaghi

About

Multi-source Scientific Article Index and Collector

Resources

Contributing

Stars

17 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages