Skip to main content

erga

Keep a website's academic publications list current, automatically, without giving up control of the data.

Status: alpha (v0.1). The CLI pipeline works end-to-end and its output has converged with a production lab site's existing pipeline in a parallel run against live OpenAlex (187/187 records, zero field diffs). The JSON schema may still change before v1.0.

What it does

You list your authors (ORCID iDs) in one config file. erga fetches their works from OpenAlex, normalizes and deduplicates them across registrars (arXiv, Zenodo, publisher records), applies your curation files, and writes a canonical publications.json into your site repository. Your site (Jekyll, Astro, Hugo, anything) renders it however it likes.

  • Curation that survives refresh: manual additions, per-record overrides, and highlights live in their own files and are re-applied on every automated run.
  • Proper APIs, no scraping: OpenAlex (CC0 data) plus Crossref venue backfill, with API etiquette built in (keys, delays, retries).
  • Git-owned data: the output is a diffable, PR-reviewable file in your repo: no hosted embed, no runtime dependency, publications present in the initial HTML.
  • Delivery: a pip-installable CLI today; GitHub Action packaging is planned once the CLI is proven on consumer sites.

The name: έργα, "works" — the same term OpenAlex uses for publications.

Usage

Install with uv tool install erga or pip install erga (or run one-off with uvx erga). Write an erga.yml:

mailto: you@example.org          # identifies requests to Crossref/OpenAlex
authors:
  - name: Josiah Carberry
    orcid: 0000-0002-1825-0097
  - name: Another Person
    openalex_id: A5000000000     # alternative when ORCID is missing/wrong

openalex:
  api_key_env: OPENALEX_API_KEY  # optional; env var name, never the key itself

output:
  path: publications.json

Then:

  • erga build [--config PATH] [--dry-run] runs the pipeline and writes publications.json. With --dry-run it prints a summary (fetched, merged, deduplicated, excluded, backfilled) without writing.
  • erga verify [--config PATH] prints the author-disambiguation report: what each configured author resolves to on OpenAlex, with warnings for split profiles, zero-work authors, and implausible works counts. Run it once when setting up, and whenever a build looks off.

Three optional curation files next to the config survive every refresh: manual.yml (records the APIs miss), overrides.yml (per-record patches, exclusions, dedup exemptions), and tags.yml (tag name to DOI/id lists; tag semantics are entirely yours). The full schema and pipeline design live in docs/requirements-v1.md.

License

MIT

Release files for erga 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for erga 0.1.0
File Size Uploaded
erga-0.1.0.tar.gz 82.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for erga 0.1.0
File Interpreter ABI Platform
erga-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 108.1 kB

Release files / erga-0.1.0.tar.gz

Download URL erga-0.1.0.tar.gz
Size 82.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f15d3b2f856293d84d5b9e3ba38298fa68730ec7ac32d87328b749f596d01de9
BLAKE2b-256 checksum
How to use checksums
0f64a15d07ea91526dd22c80f84e96e8cf061220fb5bd00f45391ae40cfba5c3
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 Aug 5, 2026.

Transparency log

Release files / erga-0.1.0-py3-none-any.whl

Download URL erga-0.1.0-py3-none-any.whl
Size 25.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
21b1b0fb635e45ead93d6945b0a964ccc3404505e4015489400562d75010dbfb
BLAKE2b-256 checksum
How to use checksums
302c4b8326f3fd0e558883859c851e89353722bc61d115ed47fbfb577c8e3713
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 Aug 5, 2026.

Transparency log

Release history Release notifications | RSS feed

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page