Scitadel
Programmable, reproducible scientific literature retrieval.
Scitadel is a CLI and TUI tool that runs federated searches across multiple academic databases, deduplicates results, scores relevance with LLMs, chains citations via snowballing, and exports in structured formats. Every search is persisted and reproducible.
Why
Scientific literature retrieval is fragmented, manual, and non-reproducible. Researchers must search PubMed, arXiv, INSPIRE-HEP, and OpenAlex independently — each with different query syntax, metadata schemas, and export formats. There is no unified, scriptable interface.
Scitadel fixes this: one query, all sources, deterministic results, full audit trail.
Recommended workflow: TUI + agent in adjacent pane
Scitadel's primary workflow is scitadel tui in one terminal pane, an MCP-aware agent (Claude Code, Cursor, Cline, …) in an adjacent pane. The agent talks to scitadel through the MCP server (40+ tools); the TUI redraws live as the agent writes.
┌─────────────────────────────┬──────────────────────────────┐
│ $ scitadel tui │ $ claude │
│ ┌── Papers ───────────────┐ │ │
│ │ ✓ Attention Is All You │ │ > score the open paper │
│ │ ⊘ Recurrent Neural... │ │ against my CRISPR question │
│ │ ★ ✓ Transformer Survey │ │ │
│ └─────────────────────────┘ │ [agent calls │
│ Annotations (3) │ get_current_selection, │
│ • "self-attention..." ─ok │ prepare_assessment, │
│ • "the Transformer" ─ ok │ save_assessment] │
│ │ │
│ Esc: back · n: new · … │ Done. Score: 0.87, reasoning │
└─────────────────────────────┴──────────────────────────────┘
The agent owns conversational reasoning (drafting questions, summarizing papers, suggesting related terms). The TUI owns reading and quick navigation (browse, star, annotate, scroll). They share the SQLite database via WAL mode — every MCP write surfaces in the open TUI within ~100 ms.
You don't need any LLM CLI installed to use scitadel — every TUI/CLI feature works standalone. But once you set up the MCP server (one line, see below), the agent + TUI combo is what scitadel was designed for.
Install
Scitadel is a Rust workspace. You need a Rust toolchain (rustup, stable channel).
From source (recommended today)
git clone https://github.com/vig-os/scitadel.git
cd scitadel
cargo install --path crates/scitadel-cli --locked
This drops a single scitadel binary into ~/.cargo/bin (make sure that's on your PATH). CLI, TUI, and MCP server are all subcommands of the same binary.
As a Claude MCP server
User scope (available in every session, everywhere):
claude mcp add --scope user scitadel -- scitadel mcp
Project scope (committed to the repo, available when cwd is this project):
The repo ships a .mcp.json that registers the scitadel binary from PATH. Just run cargo install --path crates/scitadel-cli once and Claude Code will pick it up automatically.
Local/session scope (no commit, just this machine):
claude mcp add --scope local scitadel -- scitadel mcp
Verify with claude mcp list.
Quick start
# Initialize the database (creates ./.scitadel/scitadel.db)
scitadel init
# Store credentials in your OS keychain (one-time, per source)
scitadel auth login pubmed
scitadel auth login openalex
scitadel auth status
# Run a federated search
scitadel search "PET tracer development" -s pubmed,arxiv,openalex,inspire -n 20
# View past searches / show a paper / export
scitadel history
scitadel show <paper-or-search-id>
scitadel export <search-id> --format bibtex --output results.bib
# Download a paper by DOI (OA PDF via Unpaywall, else publisher HTML)
scitadel download 10.1038/s41586-020-2649-2
# Launch the interactive TUI
scitadel tui
Usage patterns
1. Search, review, export
The core loop: one query hits all sources, results are deduplicated and persisted.
# Search across all four sources
scitadel search "CRISPR Cas9 gene therapy" -n 30
# Check what came back
scitadel history
# Export to BibTeX for your paper
scitadel export a3f --format bibtex -o references.bib
# Or get structured JSON for downstream processing
scitadel export a3f --format json -o results.json
Search IDs support prefix matching — a3f will match if unambiguous.
Re-running the same query creates a new search record. Both runs are persisted and can be compared to see what changed as the underlying corpus evolves.
2. Question-driven search and scoring
Link search terms to a research question, then let scitadel build the query automatically:
# 1. Define what you're looking for
scitadel question create "What PET tracers are used in oncology?" \
-d "Focus on clinical applications post-2020"