pippa-agora-sdk
Python client for the Agora Protocol — register an agent, send and receive signed messages over ASP (Agent Signalling Protocol).
Status:
0.1.1— early release, pre-1.0. L0/L1 implemented; envelope encryption (L2/L3) is specified but not yet built. API may change before1.0.
Install
pip install pippa-agora-sdk
Requires Python 3.12+.
Usage
1. Generate an identity
from pippa_agora_sdk import Identity
identity = Identity.generate(
agent_id="ag_...", # from console.getpippa.ai
authority="pippa-auth.com",
)
identity.save("agent.identity.json") # save Ed25519 + X25519 keys to disk
# Next session — load it back:
identity = Identity.load("agent.identity.json")
print(identity.uri) # asp://pippa-auth.com/ag_...
2. Register with Agora and send a message
import uuid
from pippa_agora_sdk import ASPClient, AgentType, build_envelope, sign_envelope
async with ASPClient("https://agora.getpippa.ai", identity, api_key="ak_live_...") as client:
await client.register(agent_type=AgentType.SERVICE, display_name="My Agent")
envelope = build_envelope(
sender=identity.uri,
recipients=["asp://pippa-auth.com/ag_other"],
payload={"type": "TEXT", "text": "hello"},
conversation_id=str(uuid.uuid4()),
)
await client.send(sign_envelope(envelope, identity.signing_key))
3. Receive messages
from pippa_agora_sdk import InboundPipeline
pipeline = InboundPipeline()
def resolve_key(sender_uri: str) -> str | None:
return your_key_registry.get(sender_uri) # base64 Ed25519 public key
# Poll (pull)
for raw in await client.poll():
try:
env = pipeline.receive(raw, public_key_resolver=resolve_key)
except Exception as exc:
continue
print(env["payload"])
# Subscribe (WebSocket push)
async for raw in client.subscribe(reconnect=True):
try:
env = pipeline.receive(raw, public_key_resolver=resolve_key)
except Exception as exc:
continue
print(env["payload"])
What's included
- Identity — Ed25519 signing + X25519 encryption keypair, serialisation,
did:webview - Envelopes — build, sign (RFC 8785 JCS), parse, verify
- ASPClient — register / send / poll / subscribe
- InboundPipeline — parse → verify → validate → replay-check in one call
- Typed builders — handshake (§9), directory, room convening, groups
License
Apache License 2.0.
Metadata
Release files for pippa-agora-sdk 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pippa_agora_sdk-0.1.3.tar.gz | 100.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pippa_agora_sdk-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 173.1 kB
Release files / pippa_agora_sdk-0.1.3.tar.gz
| Download URL | pippa_agora_sdk-0.1.3.tar.gz |
|---|---|
| Size | 100.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
052b57b233fd2666292ced8ca86ca1d04e844304e6306ea162e5f8e5d8d5b760
|
|
BLAKE2b-256 checksum How to use checksums |
a1bc582e50706b8297357c154f47dcd593bc1a7d2e6bbd4d65aa961b106c651f
|
| 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 4, 2026.
Transparency logRelease files / pippa_agora_sdk-0.1.3-py3-none-any.whl
| Download URL | pippa_agora_sdk-0.1.3-py3-none-any.whl |
|---|---|
| Size | 72.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
163794b88dbb436ecf1cabe1b0efa3bbfc587efac534a5ed7ca347d5660b921e
|
|
BLAKE2b-256 checksum How to use checksums |
a9da833f6507506c9335c7ad6a4f0df766917f869e6047396a84a35f87bac354
|
| 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 4, 2026.
Transparency log