gepa-viz
Live visualization for GEPA prompt-optimization runs.
pip install gepa-viz
Live run
Use GepaVizCallback as a context manager. Entering it spins up the dashboard
(a browser tab opens automatically) and streams the run to the page over SSE as
the optimizer works. Exiting dumps run.json and keeps the viewer alive until
you press Ctrl+C.
from gepa_viz import GepaVizCallback
# DSPy
with GepaVizCallback(valset, trainset=trainset) as cb:
dspy.GEPA(..., gepa_kwargs={"callbacks": [cb]}).compile(student, ...)
# Base gepa
with GepaVizCallback(valset, trainset=trainset) as cb:
gepa.optimize(..., callbacks=[cb])
No second terminal or CLI step is needed — the viewer is part of the callback.
For headless/CI runs, pass live=False to skip the server and just dump
run.json at the end:
with GepaVizCallback(valset, live=False, path="run.json") as cb:
...
__init__ options: path, trainset, live (default True), host
(127.0.0.1), port (5151), open_browser (True), keep_alive (True),
endpoint (None), endpoint_timeout (5.0).
Stream into a separate server
Instead of embedding a server, point the callback at a preexisting one with
endpoint=. Snapshots are POSTed to <endpoint>/ingest; the callback starts no
server of its own. Start the server with the CLI:
gepa-viz live # serves the SPA + /events + /ingest on :5151
with GepaVizCallback(valset, endpoint="http://127.0.0.1:5151") as cb:
dspy.GEPA(..., gepa_kwargs={"callbacks": [cb]}).compile(student, ...)
The server fans every pushed snapshot out to connected browsers over SSE. This
also works across machines — run gepa-viz live --host 0.0.0.0 and point the
producer's endpoint at it.
Re-open a finished run
run.json is a durable artifact. Re-open it any time in a static viewer (loads
once, no polling, no stream):
gepa-viz serve --file run.json
A browser tab opens to http://127.0.0.1:5151.
See the project README at the repo root for the full architecture and contributor docs.
Metadata
Release files for gepa-viz 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 | |
|---|---|---|---|
| gepa_viz-0.1.0.tar.gz | 119.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gepa_viz-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 242.6 kB
Release files / gepa_viz-0.1.0.tar.gz
| Download URL | gepa_viz-0.1.0.tar.gz |
|---|---|
| Size | 119.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
375b25b6c3e5f963cbfeb3f4b1bba06df005f73041b6920cff893c1aeda38b2e
|
|
BLAKE2b-256 checksum How to use checksums |
c72969277ce1f5a190aaf734870630734cd627ee3e5f631e37b1e56400009212
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 24, 2026.
Transparency logRelease files / gepa_viz-0.1.0-py3-none-any.whl
| Download URL | gepa_viz-0.1.0-py3-none-any.whl |
|---|---|
| Size | 122.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0d967f22cd4ebc6e79573a34b3764e5b1d69c4277018a46c86b5030b906f5a50
|
|
BLAKE2b-256 checksum How to use checksums |
92c87e71bd97946743d5f30e1f46a8d83031dbce44cb4ce35c3a22cf111048d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 24, 2026.
Transparency log