Cowboy SDK
The official Python SDK for developing autonomous actors on the Cowboy PVM (Python Virtual Machine).
With this SDK, you can write fully deterministic on-chain Python code that interacts natively with LLMs, APIs, and the broader Cowboy ecosystem.
Features
- Decentralized AI Agents: Write prompt chains, FSM-based LLM logic, and MCP integrations directly in Python.
@runner.continuation: Turn Pythonasyncfunctions into verified Finite State Machines (FSMs) capable of pausing execution, offloading heavy compute (LLM inference, HTTP requests) to Runners, and seamlessly resuming on the next block.- Robust Determinism: The SDK strips away standard Python non-determinism (
time,random,set) and replaces it with consensus-safe primitives. - CBOR-backed State: The
CowboyModelandself.storagedict provide automatic schema validation and canonical CBOR serialization for zero-boilerplate state management. - Built-in Async Primitives: Leverage
TaskGroupfor concurrent Runner tasks,Retryfor robust backoff logic, andbounded_loopto ensure safety limits.
Quick Start
pip install cowboy-sdk
from cowboy_sdk import actor, runner, capture
@actor
class MyAgent:
def init(self, payload):
self.storage["calls"] = 0
return b"ok"
@runner.continuation
async def chat(self, msg):
ctx = capture()
ctx.prompt = msg.get("message", "Hello")
# Off-chain heavy compute (LLM) securely verified via consensus
result = await runner.llm(ctx.prompt, system_prompt="You are a helpful assistant")
# Execution resumes here on the next block
chat_id = self.storage.get("calls", 0)
self.storage[f"reply:{chat_id}"] = result
self.storage["calls"] = chat_id + 1
return b"ok"
def _a(): return MyAgent()
def init(p): return _a().init(p)
def chat(p): return _a().chat(p)
def chat__resume(p): return _a().chat__resume(p)
def on_runner_result(p): return _a().on_runner_result(p)
Documentation & Tools
- Developer Manual: View on GitHub
- Vibe Coding Blueprint (Claude Code): Learn how to set up autonomous development without local chain dependencies. View Guide.
- Cowboy CLI: Pre-compiled binary required to deploy and send transactions. Download from the GitHub Releases.
License
MIT License. See the repository for details.
Metadata
Release files for cowboy-sdk 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cowboy_sdk-0.1.1.tar.gz | 51.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cowboy_sdk-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 113.4 kB
Release files / cowboy_sdk-0.1.1.tar.gz
| Download URL | cowboy_sdk-0.1.1.tar.gz |
|---|---|
| Size | 51.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c7184d7e6074b1409430509b494558c33b6bbc8a4925ea818751359a2906284e
|
|
BLAKE2b-256 checksum How to use checksums |
94032254799b436f8ace75844b399497c972c0e61d1729ebc867ad0910367ebc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / cowboy_sdk-0.1.1-py3-none-any.whl
| Download URL | cowboy_sdk-0.1.1-py3-none-any.whl |
|---|---|
| Size | 61.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4cf8045d39bc26f9a78c7db57a46a7d399fcaf8c5f54adac1095abfc2bf9258e
|
|
BLAKE2b-256 checksum How to use checksums |
e04b8b09e9cb3143cbe304add126ddb31d3aa18c90c3897ec4096816f8798f05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|