One panel for every EvolutionDB sync connector and AI memory client. Web UI and terminal share the same controls.
Project description
evolutiondb-hub
One panel for every EvolutionDB sync connector and AI memory client. The web UI and the terminal share the same controls; whatever you click in the browser you can also do from a shell script.
What the hub does
- Shows every sync connector (teams, gmail, slack, github, calendar) on one page with current state, last run, the binary's install status, and a free-form "agent owner" label so you can record which AI assistant you mentally assigned to that source.
- Starts and stops connectors as detached background processes. Existing launchd / systemd runs are detected and marked as "externally managed" — the hub will not double-spawn or interfere.
- Wires the same
evolutiondb-memoryblock into Claude Desktop, ChatGPT Desktop, and Gemini CLI config files, or removes it. All three AI hosts read from the same memory store, so anything one connector writes is searchable from any of them. - Same operations are available from the terminal for headless setups and shell automation.
Install
pip install evolutiondb-hub mcp-server-evolutiondb
You also need the connector packages you actually plan to use — each is its own PyPI release:
pip install evolutiondb-teams-sync evolutiondb-gmail-sync \
evolutiondb-slack-sync evolutiondb-github-sync \
evolutiondb-calendar-sync
Web UI
evolutiondb-hub web
# → http://127.0.0.1:8771
Five source cards on top (one per connector), three client cards below (Claude / ChatGPT / Gemini). Buttons drive the same operations as the CLI. Auto-refreshes every 10 seconds so a connector that crashes is visible quickly.
The UI binds to 127.0.0.1 only and has no auth — it is a personal local panel, not a shared dashboard.
Terminal
# Table of every source.
evolutiondb-hub status
# Spawn / kill one source.
evolutiondb-hub start gmail
evolutiondb-hub stop gmail
# Tag a source with the AI agent you assigned to it.
evolutiondb-hub set-agent gmail gemini
evolutiondb-hub set-agent teams claude
evolutiondb-hub set-agent slack chatgpt
evolutiondb-hub set-agent github claude
evolutiondb-hub set-agent calendar gemini
# Wire / unwire one AI host's MCP config.
evolutiondb-hub client claude-desktop enable
evolutiondb-hub client gemini-cli enable
evolutiondb-hub client chatgpt-desktop disable
# Same status JSON the web UI uses.
evolutiondb-hub status --json
Subcommand reference:
| Command | What it does |
|---|---|
status [--json] |
Per-connector state table |
start <name> [--interval N] |
Spawn the connector in the background |
stop <name> |
SIGTERM the hub-managed pid (then SIGKILL after 5s) |
set-agent <name> <agent> |
Label the source with an owner agent (or none) |
client <name> enable|disable|status |
Manage AI host config |
web [--port 8771] [--host …] |
Launch the web UI |
Source names: teams, gmail, slack, github, calendar.
Client names: claude-desktop, chatgpt-desktop, gemini-cli.
How the agent-owner label works
The label is a local annotation, not data. Connectors do not know or care which agent owns them; every record they write still lands in the same memory store and is searchable from every AI host. The label is there so you can answer "which agent is supposed to keep an eye on my Gmail this week?" by reading the panel.
State on disk
~/.evosql/orchestrator.json hub state (pids, labels, intervals)
~/.evosql/logs/<source>.log stdout + stderr of each hub-spawned connector
The state file is mode 0600 and contains no secrets — auth tokens
remain in their own per-connector caches under ~/.evosql/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file evolutiondb_hub-0.5.0.tar.gz.
File metadata
- Download URL: evolutiondb_hub-0.5.0.tar.gz
- Upload date:
- Size: 26.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ef976804a49d1bcea6c97dcfcaac7cd74425161b2fb9337d93184970b946557
|
|
| MD5 |
467fe67ca83030b878e252d6b825e995
|
|
| BLAKE2b-256 |
e53dbbc7e7fcb5409cb416cce30727779bf60cee476548b214342f51d9660b25
|
Provenance
The following attestation bundles were made for evolutiondb_hub-0.5.0.tar.gz:
Publisher:
hub-release.yml on alptekin/evolutiondb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
evolutiondb_hub-0.5.0.tar.gz -
Subject digest:
1ef976804a49d1bcea6c97dcfcaac7cd74425161b2fb9337d93184970b946557 - Sigstore transparency entry: 1568847342
- Sigstore integration time:
-
Permalink:
alptekin/evolutiondb@11b29a8641cc8393e81ecb49b20017360ae1ad53 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/alptekin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
hub-release.yml@11b29a8641cc8393e81ecb49b20017360ae1ad53 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file evolutiondb_hub-0.5.0-py3-none-any.whl.
File metadata
- Download URL: evolutiondb_hub-0.5.0-py3-none-any.whl
- Upload date:
- Size: 28.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
105a603a851f741ed787b8243c6f6d495c6981b03d9ecbc52be501fcc59da255
|
|
| MD5 |
d5b482976047dec8d331a1533e8a145b
|
|
| BLAKE2b-256 |
03344e6aa6394e63a891fa2c65f66dbb3b1fda840a57abdc896861c536e2c47c
|
Provenance
The following attestation bundles were made for evolutiondb_hub-0.5.0-py3-none-any.whl:
Publisher:
hub-release.yml on alptekin/evolutiondb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
evolutiondb_hub-0.5.0-py3-none-any.whl -
Subject digest:
105a603a851f741ed787b8243c6f6d495c6981b03d9ecbc52be501fcc59da255 - Sigstore transparency entry: 1568847375
- Sigstore integration time:
-
Permalink:
alptekin/evolutiondb@11b29a8641cc8393e81ecb49b20017360ae1ad53 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/alptekin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
hub-release.yml@11b29a8641cc8393e81ecb49b20017360ae1ad53 -
Trigger Event:
workflow_dispatch
-
Statement type: