viva-catalog
The ecosystem ledger for the vivarium / process-bigraph workbench.
It answers two questions for the vivarium-workbench Registry, so a workbench can browse the whole ecosystem — not just what's installed locally — and offer Install to use:
| File | What it is |
|---|---|
viva_catalog/modules.json |
The registry of ecosystem repos — name, source, description, tags. Generated by discovering every public vivarium-collective repo with the viva-marketplace GitHub topic. |
viva_catalog/ecosystem-index.json |
The aggregated artifact index — every repo's processes / steps / composites / studies / investigations (name + description + counts). Regenerated by CI. |
Previously the registry lived in viva_superpowers/catalog/modules.json (the
Claude-Code plugin). It moved here so the ledger is owned by a dedicated repo.
Adding a repo? Just add the viva-marketplace GitHub topic to your
public repo (gh repo edit vivarium-collective/<repo> --add-topic viva-marketplace) — the nightly builder discovers it, refreshes modules.json,
and scans its source into the index. No PR needed. See
CONTRIBUTING.md.
How the index is built
scripts/build_ecosystem_index.py reads modules.json and, for each repo,
shallow-clones it and scans the source — no published dashboard required:
- composites —
@composite_generator(name=…, description=…)decorators (AST)- any
*.composite.yamlfiles
- any
- processes / steps — top-level classes whose base ends in
Process/Step(AST), described by adescriptionclass attribute or the class docstring - studies —
**/studies/*/study.yaml(name + objective/title) - investigations —
**/investigations/*/investigation.yaml(name + title)
This gives complete coverage across the ecosystem whether or not a repo publishes
a workbench dashboard. Repos that can't be cloned are still listed (empty
artifacts, cloned: false).
python scripts/build_ecosystem_index.py # rebuild the index locally
python scripts/build_ecosystem_index.py --only Viva-munk,pbg-copasi # subset
Needs git + PyYAML.
Consuming the ledger
Python (viva-superpowers, vivarium-workbench):
import viva_catalog
repos = viva_catalog.load_modules() # the repo registry
index = viva_catalog.load_ecosystem_index() # aggregated artifacts
Over HTTP (published to gh-pages, same-origin for any published workbench):
https://vivarium-collective.github.io/viva-catalog/modules.json
https://vivarium-collective.github.io/viva-catalog/ecosystem-index.json
CI
.github/workflows/build-index.yml rebuilds
ecosystem-index.json daily (and on modules.json changes), commits it to main,
and publishes modules.json + the index to gh-pages.
Release files for viva-catalog 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| viva_catalog-0.1.0.tar.gz | 67.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| viva_catalog-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 128.9 kB
Release files / viva_catalog-0.1.0.tar.gz
| Download URL | viva_catalog-0.1.0.tar.gz |
|---|---|
| Size | 67.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2c45b0fcb413fa06a217fa73e6bab9866eafb73f1198847ab61decd029f5d61c
|
|
BLAKE2b-256 checksum How to use checksums |
d4e0389e9e8e6e329a6f978dc23914237b37fe3a41cfc9a5669786a9855b5613
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / viva_catalog-0.1.0-py3-none-any.whl
| Download URL | viva_catalog-0.1.0-py3-none-any.whl |
|---|---|
| Size | 61.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bc1fc04fd384fcb1c5f0abcd0c6a10995e0945c83fa0f12f5a6e1283fe238280
|
|
BLAKE2b-256 checksum How to use checksums |
26a3ceb7ad0290f1db8a7f708d07964a8720e7dd2d1810bfcd6097034879b8e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency log