allybuild-sdk
Python SDK for AllyBuild — the sandbox-isolated task scheduling and execution platform.
It is the interaction surface available inside AllyBuild task scripts: a pure-stdlib HTTP facade (zero third-party dependencies) covering tasks, agents, memories, OKF, MCP, project status, plus a Vue-Reactive-style state store.
- Homepage: https://allybuild.ai/
Installation
pip install allybuild-sdk
Requires Python >= 3.10. No third-party dependencies.
Usage
Inside an AllyBuild task, your script runs with workflow.py (injected with params / reporter / TASK_JWT / ALLYBUILD_API_URL):
def run(params: dict, reporter) -> None:
reporter.set_phase("fetch") # update current phase
reporter.set_progress(50) # update progress 0-100
data = list_tasks(status="success")
okf_search("runbook", query="deploy")
return {"count": len(data)}
Import side effects run too (Convention 2) — top-level create_task(...) calls are flushed automatically.
Direct client
from allybuild_sdk import AllyBuildClient, create_client
api = create_client(
base_url="https://your-host/api", # ALLYBUILD_API_URL
token="<TASK_JWT>",
project_id="<PROJECT_ID>",
)
tasks = api.tasks.list(status="running")
api.reporter.set_progress(20)
Reactive store
A Pinia/Vue-Reactive-style store, in-memory by default, optionally persisted to the AllyBuild backend for cross-task/cross-process sharing:
from allybuild_sdk.reactive import defineStore, getter, action, create_reactive
create_reactive()
@defineStore("counter")
class CounterStore:
count: int = 0
@getter
def display(self) -> str:
return f"count: {self.count}"
@action
def increment(self, by: int = 1) -> None:
self.count += by
store = CounterStore()
store.increment()
print(store.display) # "count: 1"
Modules
| Import | Purpose |
|---|---|
allybuild_sdk |
HTTP client, Reporter, Tasks / Agents / Memories / OKF / MCP APIs, project status proxy |
allybuild_sdk.reactive |
Reactive stores: defineStore, getter, action, field, create_reactive, HttpBackend |
License
MIT
Release files for allybuild-sdk 1.0.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 | |
|---|---|---|---|
| allybuild_sdk-1.0.1.tar.gz | 28.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| allybuild_sdk-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 64.1 kB
Release files / allybuild_sdk-1.0.1.tar.gz
| Download URL | allybuild_sdk-1.0.1.tar.gz |
|---|---|
| Size | 28.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
031ac25169dee2bbf3f5e10f04d6dfbe3eb5f1525145046da1ccd11a6fe1bbbd
|
|
BLAKE2b-256 checksum How to use checksums |
425a0b46f92fda8f911f191987bb44987d2fc531f62cb869bf6612211d7ea4fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.4 {"installer":{"name":"uv","version":"0.11.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / allybuild_sdk-1.0.1-py3-none-any.whl
| Download URL | allybuild_sdk-1.0.1-py3-none-any.whl |
|---|---|
| Size | 35.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4b69db46a18e909e1dad0c4699fd2b0bd1c81321d4a8faabbbe273ae4c2b0ac9
|
|
BLAKE2b-256 checksum How to use checksums |
944540fcfe5450da379fb26b8845be5ff392c20e7c591d17f0c847e9a0705bc2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.4 {"installer":{"name":"uv","version":"0.11.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|