SciAgent turns a research question into a reviewed Zotero collection with a deterministic search plan, explainable results, and approval-gated writes.
- Review the search plan before retrieval so year limits, exclusion terms, and source choices stay explicit.
- Audit every result with stable rankings, source provenance, and an approval checkpoint before anything touches your library.
- Build clean Zotero collections without duplicate sprawl, silent writes, or "trust me" agent behavior.
- Open the SciAgent add-on from Zotero's main window.
- Enter a question, choose a target collection, and review deterministic filters before search.
- Inspect the returned papers, summaries, and source states.
- Approve the subset you want, then let SciAgent write those items into Zotero with audit-friendly status.
SciAgent is not a floating AI sidebar, PDF chat tool, or generic browser plug-in. The primary product path is the Zotero add-on for researchers. The Streamlit app remains a prototype and support surface. The CLI and REST API remain developer and support interfaces.
- Configuration & Usage Manual — Primary Zotero workflow, installation, and local run guide
- Zotero Add-on Plan — Main-window product direction, scope, and compatibility stance
- REST API Reference — Backend contract for the add-on and developer/support tooling
- Deployment Guide — Local, Docker, and future SaaS architecture
- Core Roadmap — Feature backlog and milestone details
- Action Plan — Execution tracker and live status
- Settings — Runtime stack, bootstrap flow, and quality tooling
uv sync
cp .env.example .env
uv run uvicorn agt.api.app:app --host 127.0.0.1 --port 8000
cd zotero-addon
npm ci
npm run buildInstall zotero-addon/build/sciagent-zotero-addon.xpi from Zotero's add-ons manager on Zotero 9.x, then launch Tools -> SciAgent.
uv run streamlit run src/agt/ui/app.py— Streamlit prototype and support UIuv run python -m agt.graph.cli— developer/support terminal runneruv run uvicorn agt.api.app:app --host 127.0.0.1 --port 8000— backend for the add-on and custom clients
- Python 3.14 recommended (3.13 and 3.14 supported)
uvpackage manager- Node.js 20+ for the Zotero add-on quality gate
- Zotero 9.x for the supported add-on path
This workspace ships a Markdown-first docs workflow with MkDocs Material, markdownlint, recommended VS Code extensions, and local preview support.
uv run mkdocs serve -a 127.0.0.1:8001
uv run mkdocs build --strict# Python backend
uv run ruff check .
uv run ruff format --check .
uv run pyright
uv run pytest -q --vcr-record=none
# Zotero add-on
cd zotero-addon
npm ci
npm run lint
npm run build
npm run typecheck
npm run test
cd ..
# Docs and agent instructions
npx --yes markdownlint-cli2 "README.md" "docs/**/*.md" "examples/**/*.md" ".github/**/*.md" "zotero-addon/README.md"
uv run mkdocs build --strictGitHub Actions runs repo-wide quality jobs for Python, the Zotero add-on, and docs. Local pre-commit remains intentionally lightweight and Python-only.
src/agt/config.py # Typed settings and secret redaction helpers
src/agt/models.py # Core normalized data models and workflow state
src/agt/graph/ # Workflow graph and CLI entrypoint
src/agt/api/ # FastAPI backend (health/run/resume/status)
src/agt/providers/ # Provider routing and LLM adapters
src/agt/tools/ # Retrieval, ranking, and Zotero write adapters
src/agt/ui/app.py # Streamlit prototype UI
zotero-addon/ # Primary Zotero add-on surface for researchers