Skip to main content

Plutus

CRDT-based state management for agentic swarms.

Plutus provides:

  • PlutusAgent for local/networked swarm participation
  • CRDT-backed shared namespaces and descriptors
  • A sync daemon + WebSocket transport
  • Blueprint workflow execution for multi-step agent flows

Quick Start (uv)

1. Install as a dependency

uv add plutus-sync

2. Run locally from source

git clone https://github.com/RB9823/plutus.git
cd plutus
uv sync --group dev
uv run pytest tests/ -v

3. Try examples

uv run python examples/basic_swarm.py
uv run python examples/networked_swarm.py
uv run python examples/blueprint_example.py

Minimal Usage

Install name is plutus-sync; import package remains plutus.

import anyio
from plutus import PlutusAgent


async def main():
    agent = PlutusAgent(name="worker", peer_id=1)
    await agent.join()
    agent.state("tasks").set("task_1", {"status": "pending"})
    agent.commit()
    await agent.leave()


anyio.run(main)

Development

  • Setup: uv sync --group dev
  • Tests: uv run pytest tests/ -v
  • Optional linting: uv run ruff check src tests
  • Optional type checking: uv run mypy src

See CONTRIBUTING.md for full contributor workflow.

Releasing

See docs/RELEASING.md for the uv-based release process and PyPI publishing setup. Use workflow-dispatch to publish to testpypi first, then publish to pypi from a GitHub Release.

Project Health

Metadata

Release files for plutus-sync 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for plutus-sync 0.1.0
File Size Uploaded
plutus_sync-0.1.0.tar.gz 79.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for plutus-sync 0.1.0
File Interpreter ABI Platform
plutus_sync-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 104.6 kB

Release files / plutus_sync-0.1.0.tar.gz

Download URL plutus_sync-0.1.0.tar.gz
Size 79.7 kB
Tags Source
SHA-256 checksum
How to use checksums
152690b74caf7d03f1660a418170829c127393d7174ec41c795cd68ee8fbd855
BLAKE2b-256 checksum
How to use checksums
c4ca3bf44c3d5b41808ae1429758b8978cc9532e42ccfe031b8e079af3b88404
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Feb 26, 2026.

Transparency log

Release files / plutus_sync-0.1.0-py3-none-any.whl

Download URL plutus_sync-0.1.0-py3-none-any.whl
Size 24.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0cb50b2c24f4ce4840eb805f2fc72df75aebd2ca50b6a0c3cd23ee12c9cd8ebe
BLAKE2b-256 checksum
How to use checksums
bfedac00666ecd423b4b4f1e46867e38acf85f31379e716c6d4e04ca595341e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Feb 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page