Multi-party peer-to-peer rooms for terminals, agents, and scripts
Project description
Skyffla Python Wrapper
Multi-party peer-to-peer rooms for terminals, agents, and scripts.
Use this package to join and automate installed skyffla rooms from Python.
pip install skyffla installs the Python wrapper only. Install the skyffla
binary separately first.
1. Install the skyffla binary
Add the Homebrew tap once:
brew tap skyffla/skyffla
Install the CLI:
brew install skyffla
Check that the binary is available:
skyffla --version
If you want source code, release notes, or other install paths, see the Skyffla repository on GitHub.
2. Install the Python wrapper
python -m pip install skyffla
The wrapper expects a skyffla binary in PATH. Override it with SKYFFLA_BIN
or the binary= argument when starting a room.
3. Small example
Save this as example.py. Start host in one terminal, then start join in
another.
import asyncio
import sys
from skyffla import Room
async def main(role: str) -> None:
opener = Room.host if role == "host" else Room.join
async with await opener("warehouse", name=role) as room:
await room.wait_for_welcome()
if role == "host":
await room.wait_for_member_joined(name="join")
await room.send_chat("all", "hello from python")
print(await room.wait_for_chat(from_name="join"))
else:
await room.wait_for_member_snapshot(min_members=2)
print(await room.wait_for_chat(from_name="host"))
await room.send_chat("all", "hello from join")
asyncio.run(main(sys.argv[1]))
python example.py host
python example.py join
Version checks
Versioning is split across two layers:
- machine protocol compatibility follows the versioning policy and machine protocol reference: the wrapper requires the same machine protocol major version and tolerates additive minor changes
- release pairing is stricter for published packages: by default, the wrapper
also checks that the spawned
skyfflabinary has the exact same release version as the Python package
Set SKYFFLA_SKIP_VERSION_CHECK=1 only if you intentionally want to run the
wrapper against a different skyffla release. This skips the package-to-binary
release match, but machine protocol compatibility is still enforced.
More examples
Runnable example apps live under examples/python in the GitHub repository:
- examples/python: shared Python example project
- examples/python/room-agents-studio: multi-agent OpenAI poster studio with a live browser gallery and image transfer
Tests
From a repository checkout:
cd wrappers/python
uv run pytest
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 skyffla-2.1.0.tar.gz.
File metadata
- Download URL: skyffla-2.1.0.tar.gz
- Upload date:
- Size: 32.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 |
a87b8f44ab6f0644c9cd3d84a6ffe380463cc513f7f43d9fc029346d8d21b760
|
|
| MD5 |
1a8880cf6cf0845dbf2ce84627ee4234
|
|
| BLAKE2b-256 |
49c1c4d278a9e9f9b8a7b88654a6a4369ee71bde4963c4164e9ffaa4bfce5435
|
Provenance
The following attestation bundles were made for skyffla-2.1.0.tar.gz:
Publisher:
python-package.yml on skyffla/skyffla
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skyffla-2.1.0.tar.gz -
Subject digest:
a87b8f44ab6f0644c9cd3d84a6ffe380463cc513f7f43d9fc029346d8d21b760 - Sigstore transparency entry: 1207561744
- Sigstore integration time:
-
Permalink:
skyffla/skyffla@77d6d80d7248f03836b9ea0f52e31890017f387b -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/skyffla
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-package.yml@77d6d80d7248f03836b9ea0f52e31890017f387b -
Trigger Event:
push
-
Statement type:
File details
Details for the file skyffla-2.1.0-py3-none-any.whl.
File metadata
- Download URL: skyffla-2.1.0-py3-none-any.whl
- Upload date:
- Size: 11.4 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 |
8e524ed47582cd0e820ded3550f09d23691da95bff6f72f2256dc888ec7250e8
|
|
| MD5 |
a629b9568b6f5407800e473ea43b5875
|
|
| BLAKE2b-256 |
68699a0805ac837f3e559648773e121c66c1a879d16bd6c953b854a6839c5e44
|
Provenance
The following attestation bundles were made for skyffla-2.1.0-py3-none-any.whl:
Publisher:
python-package.yml on skyffla/skyffla
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skyffla-2.1.0-py3-none-any.whl -
Subject digest:
8e524ed47582cd0e820ded3550f09d23691da95bff6f72f2256dc888ec7250e8 - Sigstore transparency entry: 1207561795
- Sigstore integration time:
-
Permalink:
skyffla/skyffla@77d6d80d7248f03836b9ea0f52e31890017f387b -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/skyffla
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-package.yml@77d6d80d7248f03836b9ea0f52e31890017f387b -
Trigger Event:
push
-
Statement type: