Query arXiv, Semantic Scholar, ScienceDirect, Springer Nature (browser + API), DOAJ, Europe PMC, OpenAlex, BASE, CORE, NASA ADS, IEEE Xplore, Zenodo, Crossref, DBLP, HAL, PubMed, PubMed Central, and bioRxiv/medRxiv simultaneously. Results are deduplicated by DOI so you never see the same paper twice.
๐
PDF Download
Download open-access PDFs directly. When no PDF link is known, MOSAIC queries Unpaywall to find a legal open-access copy automatically.
๐๏ธ
Local Cache
All search results and download history are stored in a local SQLite database. Re-run queries instantly without hitting the network.
โ๏ธ
Source-aware
Enable or disable individual sources, set per-source API keys, and control rate limits โ all from a single TOML config file.
๐ฅ๏ธ
Rich Terminal UI
Results are displayed as a formatted table with open-access and PDF indicators. Progress spinners keep you informed during long searches.
๐
Web Interface
Launch a browser-based UI with `mosaic ui`. Search, filter, download, and export from a responsive dashboard with dark mode, per-source progress, and keyboard shortcuts.
๐ง
Local RAG
Index your paper library and ask questions in natural language โ synthesis, gap analysis, method comparison, structured extraction. Runs fully locally via Ollama or any OpenAI-compatible server. No data leaves your machine.
๐
Relevance Ranking
Re-rank any result set by semantic similarity to your query with --sort relevance. BM25 by default (instant, no model). Optionally delegate to your configured LLM for higher-quality scores.
๐ค
NotebookLM Integration
Turn any search into a Google NotebookLM notebook โ podcast, video overview, slides, quiz, flashcards, mind map, and briefing doc queued in one command with mosaic notebook create.
๐ฆพ
Claude Code Skill & AI Agent Mode
Install the bundled Claude Code skill with `mosaic skill install` โ gives Claude Code full knowledge of every command, source, and option. The `--json` flag on search and similar emits a structured JSON envelope to stdout for piping, scripting, and CI pipelines.
๐
Open & Extensible
Each source is a small self-contained class. Adding a new database takes fewer than 50 lines of Python.
๐
Custom Sources
Wire any number of JSON REST APIs as new search sources directly in config.toml โ one block per source, no Python required. Supports GET and POST, nested field paths, API keys, and author objects.
๐
Zotero Integration
Push results directly into your Zotero library with --zotero. Works with Zotero desktop (local API) and Zotero web (api.zotero.org). Organise into named collections and link downloaded PDFs as attachments.
pipx inject mosaic-search sqlite-vec # install vector extension oncemosaic index # embed all cached papersmosaic ask "What are the main approaches to graph neural networks?" --show-sourcesmosaic ask "What open problems remain in protein structure prediction?" --mode gapsmosaic chat # interactive multi-turn session
Runs entirely on your machine via Ollama or any OpenAI-compatible server. โ RAG guide
Re-rank any result set by semantic similarity to the query. BM25 by default (no model, no network, instant). Configure your LLM for higher-quality scores.
bash
mosaic search "diffusion models" --sort relevance # live, rankedmosaic search "diffusion models" --cached --sort relevance # offline, from local cache
Turn any search into a Google NotebookLM notebook in one command. Podcast, video overview, slides, quiz, flashcards, mind map, briefing doc โ all queued automatically.
Claude Code Skill & AI agent mode โ mosaic skill installโ
MOSAIC ships a bundled Claude Code skill. Install it once and the /mosaic slash command gives Claude Code expert knowledge of every command, source shorthand, filter, export format, and scripting pattern โ so you can describe your bibliography goal in plain English and let Claude Code build and run the right commands for you.
bash
# Install into the current project's .claude/skills/ directorymosaic skill install# Or globally, for all your projectsmosaic skill install --global
All search and similar commands support --json for structured stdout โ a clean {status, query, count, papers[], errors[]} envelope designed for piping, agent scripts, and CI:
bash
# Pipe directly to jqmosaic search "attention mechanism" --max 30 --oa-only --json \ | jq -r '.papers[] | "\(.year) \(.doi) \(.title)"'# Combine file export and stdout JSON in one runmosaic search "FDTD methods" --json --output refs.bib
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