Skip to content

Repository files navigation

Scholadar

Your field. On radar.

A configurable, local-first research radar for researchers who want to know:

  1. What relevant work is new or materially changed?
  2. What do its authors actually propose?
  3. Why could it matter to my research line?
  4. Which findings are worth remembering?
  5. What sourced idea seeds appear when findings from different papers are combined?

It is not a peer reviewer, a paper-quality scorer, or an autonomous researcher. Full text is optional enrichment and never blocks the normal radar.

Why this instead of another hosted literature tool?

  • Local-first: profiles, reports, documents, feedback, and credentials remain in your workspace and PostgreSQL database.
  • Open and inspectable: code, prompts, cache behavior, model provenance, and budget rules are visible under AGPLv3.
  • BYOK: you choose the model account and pay the provider directly; there is no required software subscription.
  • Your research line is explicit: relevance is assessed against a versioned profile, not a generic recommendation feed.
  • It remembers decisions: useful/irrelevant feedback changes future discovery deterministically without silently rewriting your profile.
  • Ideas stay sourced: every stored idea seed must cite findings from at least two papers.

Hosted products may provide larger collaboration networks, polished citation graphs, or managed infrastructure. This project focuses on a transparent personal radar you control. Provider and database charges may still apply.

Quick start

Requirements: Python 3.11 or 3.12 and PostgreSQL with pgvector. Docker Desktop is the easiest way to run PostgreSQL locally; an existing hosted PostgreSQL database also works.

git clone https://github.com/marcbara/scholadar.git
cd scholadar
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -e .
scholadar serve

The browser opens a first-run assistant. It lets you choose a local Docker or existing PostgreSQL database, save an Anthropic key and OpenAlex email, set a daily budget, validate and migrate without a paid call, and create the first research line from guided examples.

No terminal setup or YAML editing is required. On first launch Scholadar creates a private workspace at ~/.scholadar, deliberately outside the source checkout:

Scholadar/
├── .env
├── .scholadar-workspace
├── compose.yaml
├── config/config.yaml
├── profiles/
├── manifests/
├── output/radar/
└── data/fulltext/

Later launches go straight to the radar and show Settings, not the first-run assistant. Secret fields remain write-only. Windows users can also double-click start-scholadar.cmd in the workspace. Advanced users may still run scholadar init, init-db, and doctor, or edit .env and config/config.yaml directly.

It opens at http://127.0.0.1:8765. The server is intentionally local-only and has no authentication. Do not expose it through a public proxy or port forward.

Want to look around first?

scholadar serve --demo

Demo mode is read-only and requires no database, network, API key, or paid model call.

Normal workflow

The browser is the normal interface:

  1. Create or edit a research line with the guided form.
  2. Press Run radar.
  3. Read the delta: only new or materially changed relevant papers appear.
  4. Mark papers useful, worth reading, seen, or irrelevant.
  5. Revisit later and run the same profile again.

The equivalent terminal commands remain available:

scholadar --workspace "C:\path\to\workspace" run --profile my-line
scholadar --workspace "C:\path\to\workspace" review --profile my-line

To avoid repeating --workspace, set SCHOLADAR_WORKSPACE once. When a command runs from inside a workspace, its marker is detected automatically. The former research-intel command and RESEARCH_INTEL_WORKSPACE variable remain supported for existing installations.

The profile YAML is only changed when you explicitly save profile edits. Review feedback is stored separately in PostgreSQL. A later run uses that feedback to add bounded author/topic searches and rank candidates; it never trains a model or mutates the research definition behind your back.

See the user guide for profiles, reference papers, reruns, costs, failures, and advanced commands.

Data and model boundaries

  • OpenAlex is the primary discovery source; arXiv is optional secondary coverage.
  • Raw provider payloads are stored before normalization.
  • DOI and arXiv ID are the only automatic merge keys.
  • Digests describe attributed author claims at the scope actually available.
  • Relevance and recommended action are profile-specific.
  • Every model call records prompt, model, run, tokens, estimated cost, status, and cache identity.
  • Daily/monthly spend and strong-model call caps are enforced before calls.
  • No model call is made by doctor, review, report rendering, or demo mode.

Development

pip install -e ".[dev]"
powershell -File scripts\check.ps1
pytest -m integration
pytest -m external   # opt-in live source contracts

Integration tests require a dedicated TEST_DATABASE_URL whose database name contains test. They never fall back to DATABASE_URL.

Current product documents:

License and citation

Copyright © 2026 Marc Bara.

The software is licensed under the GNU Affero General Public License v3 or later. Commercial use is allowed; modified versions offered to users over a network must offer their corresponding source as required by the AGPL. The official project identity is covered separately by the trademark policy.

If you use the radar in research, cite it using CITATION.cff.

About

An open, local-first radar for the research that matters to you

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages