BibMedEd 0.4: install from PyPI, a redesigned interface, and a read-only demo mode
BibMedEd 0.4.0, released on 2026-09-30, is the first version published to PyPI. It also brings a redesigned frontend, a read-only mode for showing a seeded project safely, and two CLI commands from first-time contributors. One change is breaking: the Python import package was renamed from app to bibmeded.
Install the CLI from PyPI
pip install bibmeded now installs a lightweight command-line tool, with no Docker and no web UI (#84):
python -m venv .venv && source .venv/bin/activate # Python 3.12 or newer
pip install bibmeded
bibmeded --version
bibmeded sources
bibmeded search "medical education" --source openalex --dry-run
The base install covers --version, sources and search --dry-run. Fetching and storing records still runs through the Celery pipeline, so a full bibmeded search needs the server extra (pip install "bibmeded[server]") plus Redis and a database, or the Docker stack. See Scripting & API.
Two of these commands are community contributions:
bibmeded --versionprints the installed version (#72, by @Sandro850).bibmeded sourceslists the registered adapters and whether each one's API key is configured; add--jsonfor machine-readable output (#71, by @DYNOSuprovo). Key values are never printed.
Breaking: the import package is now bibmeded
The Python package was renamed from app to bibmeded, so the wheel no longer installs a generic top-level app package (#97). If you run BibMedEd outside the provided Docker Compose files, update your commands:
Celery task names are now bibmeded.workers.tasks.*. Drain queued tasks before you upgrade, because tasks queued under the old names will not be picked up.
A redesigned interface
The frontend has a new journal-editorial look, and the redesign includes WCAG 2.2 accessibility fixes (#75). The screenshots on the home page show the new interface with the bundled sample corpus.
Show a project without letting anyone change it
Setting BIBMEDED_READ_ONLY=true rejects every mutating request with 403 and shows a read-only banner in the UI (#81). Visitors can browse a seeded project, its analyses and its exports, but cannot create, delete, search or exclude.
You can try this mode locally with one command, with no Postgres, Redis or worker (#86):
Then open http://localhost:3100. The same release ships a free-plan Render Blueprint, deploy/render-demo.yaml, for hosting your own demo. The project does not run a hosted public demo yet; that is deliberately deferred. Read Public read-only demo before exposing an instance, since everything in a read-only instance's database is publicly readable.
Fresh installs work on SQLAlchemy 2.1
SQLAlchemy 2.1 changed the default driver for bare postgresql:// URLs to psycopg v3, so fresh installs failed with ModuleNotFoundError: No module named 'psycopg'. BIBMEDED_DATABASE_URL values of postgres:// or postgresql:// are now normalised to postgresql+psycopg2:// (#76). URLs that name a driver, and non-Postgres URLs, are left as they are.
Try it or help shape it
- Follow the quick start and choose Explore sample project.
- Read the end-to-end case study.
- Share a real workflow or question in GitHub Discussions.
- Claim a focused task from the good first contributions list.
The full list of changes in 0.4.0, and in every earlier release, is in the CHANGELOG.
BibMedEd remains a single-tenant, self-hosted tool without built-in authentication. Do not expose a writable deployment directly to the public internet; review the security model first.