Python DSL and runtime for structured multi-agent coordination
Project description
ZipperGen
Zip (our mascot) keeps your agents in line — literally. ZipperGen is a Python DSL and runtime for structured multi-agent LLM coordination, grounded in the theory of Message Sequence Charts. You write a single global protocol; ZipperGen projects it onto each agent and runs them concurrently, with deadlock-freedom guaranteed by construction.
No orchestrator polling. No spaghetti callbacks. Just Zip, zipping things together.
Quick start
git clone https://github.com/zippergen-io/zippergen.git
cd zippergen
pip install -e .
Python 3.11 or later required.
See it in action
The diagnosis example runs two LLMs through a medical consensus protocol until they agree. It opens a live diagram in your browser:
python examples/diagnosis.py
Then visit http://localhost:8765 — ZipperChat will show the agents exchanging messages in real time as a message sequence chart. The example uses a mock LLM backend by default (no API key needed), with simulated latency so you can watch Zip do its thing.
Wiring a real LLM
Pass any callable as llm_backend to run():
from zippergen.runtime import run
def my_backend(action, inputs):
# call OpenAI / Anthropic / etc.
return {"verdict": True, "reason": "..."}
run(proc, lifelines, initial_envs, llm_backend=my_backend)
How it works
ZipperGen programs are global coordination protocols — you describe what messages flow between which agents and who owns each decision. ZipperGen automatically projects the global protocol onto per-agent local programs and executes them in parallel threads with FIFO message queues.
The formal foundation is in the paper "Provable Coordination for LLM Agents via Message Sequence Charts".
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 zippergen-0.1.0a1.tar.gz.
File metadata
- Download URL: zippergen-0.1.0a1.tar.gz
- Upload date:
- Size: 33.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0614e129bfa7ac847b7e48924eb735f032431108df1a4f96e3915e028eae5bd6
|
|
| MD5 |
4b04043392b25eb7566558e5158d555c
|
|
| BLAKE2b-256 |
ced9de7a1cbaa143d866c4c20879fe6f290887966ffc6f4c33558094c6a7955c
|
Provenance
The following attestation bundles were made for zippergen-0.1.0a1.tar.gz:
Publisher:
publish.yml on zippergen-io/zippergen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zippergen-0.1.0a1.tar.gz -
Subject digest:
0614e129bfa7ac847b7e48924eb735f032431108df1a4f96e3915e028eae5bd6 - Sigstore transparency entry: 1102178185
- Sigstore integration time:
-
Permalink:
zippergen-io/zippergen@5f9fbd5cd0f491ac8fb223fcab673bfda68f76e4 -
Branch / Tag:
refs/tags/v0.1.0a1 - Owner: https://github.com/zippergen-io
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5f9fbd5cd0f491ac8fb223fcab673bfda68f76e4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file zippergen-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: zippergen-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 35.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e108bd0321804238e836005f64eb6c157be8727be9750542dae3f572c00858b0
|
|
| MD5 |
77f5eab947f4d2c565d9b4d01a0f59c8
|
|
| BLAKE2b-256 |
33abdc3c3958c60686f690b4fb9a909dd48b05bc341e9ef165adf6eb5ea6e083
|
Provenance
The following attestation bundles were made for zippergen-0.1.0a1-py3-none-any.whl:
Publisher:
publish.yml on zippergen-io/zippergen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zippergen-0.1.0a1-py3-none-any.whl -
Subject digest:
e108bd0321804238e836005f64eb6c157be8727be9750542dae3f572c00858b0 - Sigstore transparency entry: 1102178189
- Sigstore integration time:
-
Permalink:
zippergen-io/zippergen@5f9fbd5cd0f491ac8fb223fcab673bfda68f76e4 -
Branch / Tag:
refs/tags/v0.1.0a1 - Owner: https://github.com/zippergen-io
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5f9fbd5cd0f491ac8fb223fcab673bfda68f76e4 -
Trigger Event:
release
-
Statement type: