Echohub
Echohub is a local-first telemetry deck built around Echopoint data. One Python engine owns fetching, caching, normalization and analytics; two renderers consume the same DashboardState:
- Desktop app - native Qt (PySide6) app: compact, with its own chrome. The default
echohubcommand. - TUI - keyboard-first true-color terminal interface.
Network contract
GET /v1/health
│
├── last_updated unchanged ──> use local store.json
│
└── last_updated changed ────> GET /v1/store once
With a token configured, the snapshot comes from GET /v1/private instead, which includes private repositories. A cached snapshot of the other kind is re-downloaded even if last_updated is unchanged.
Manual refresh is explicit:
REFRESH
└─ POST /v1/refresh, repeated until Echopoint's due queue is empty
└─ each call is one Worker run with a fixed fetch budget
└─ verify last_updated
└─ download the snapshot once only if changed
Desktop app
echohub opens the window straight away and checks Echopoint in the background, so a slow or unreachable server never blocks startup. The first run shows a welcome screen until the first snapshot arrives; after that the saved snapshot loads instantly. Failures are explained in plain words (unreachable, rejected token, and so on) while the last snapshot stays on screen.
Configuration
| Variable | Default | Purpose |
|---|---|---|
ECHOHUB_SOURCE_URL / ECHOPOINT_URL |
production Echopoint | Upstream base URL |
ECHOHUB_REFRESH_TOKEN / ECHOPOINT_REFRESH_TOKEN |
unset | Enables refresh and the private snapshot |
ECHOHUB_CACHE_DIR / ECHOPOINT_CACHE_DIR |
%LOCALAPPDATA%\echohub or ~/.cache/echohub |
Snapshot location |
ECHOHUB_TIMEOUT |
20 |
Seconds for health and snapshot requests |
ECHOHUB_REFRESH_TIMEOUT |
120 |
Seconds for each upstream refresh call |
Quick start
# Requires Python 3.11+
# Sync with the server
python run.py sync
# Run tests
python -m pytest
# Run the desktop app and the TUI
python run.py gui
python run.py tui
# Install the package locally
python -m pip install -e .
echohub
# Offline mode (no network access)
python run.py --offline gui
python run.py --offline tui
# Demo mode (no network access, no data)
python run.py --demo gui
python run.py --demo tui
Controls
| Context | Controls |
|---|---|
| Global | R refresh, C check changes, 1–8 switch workspace |
| TUI Projects | J/K rows, H/L column window |
| TUI Constellation | J/K focused project |
| TUI Activity | J/K commits |
| TUI Contributions | H/L weeks |
| TUI Sources | T tab, J/K rows |
| TUI Inspector | J/K keys |
| Desktop tables | click a header to sort, double-click a row to open it |
| Desktop Constellation | wheel zoom, drag a node or the canvas, double-click opens GitHub |
License
MIT licensed.
Metadata
Release files for echohub 2.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| echohub-2.2.1.tar.gz | 121.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| echohub-2.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 242.4 kB
Release files / echohub-2.2.1.tar.gz
| Download URL | echohub-2.2.1.tar.gz |
|---|---|
| Size | 121.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
563ea1c8e0ae288a22b51b72cd6cdeedb91a83b5398e52d89d00a57bbc85a0f1
|
|
BLAKE2b-256 checksum How to use checksums |
12a766c00706bba1f51732b8d964ff9b71ff1876c10a4f60bd8a021d08b52463
|
| 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 Oct 15, 2026.
Transparency logRelease files / echohub-2.2.1-py3-none-any.whl
| Download URL | echohub-2.2.1-py3-none-any.whl |
|---|---|
| Size | 120.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b76307043eb2453099d4fc1f4c56143699f8d8cc3b8c94d1cb295eb21d77d6d8
|
|
BLAKE2b-256 checksum How to use checksums |
1ab6d0b2a71fa59c2d9ec3b9fdd868c399ca5f4a37160977762fcecf0a570026
|
| 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 Oct 15, 2026.
Transparency log