Sandbox cluster
Kubernetes managers create one temporary Pod per sandbox and expose MCP through the manager or scheduler API.
The Kubernetes deployment has two manager replicas and two scheduler replicas by default. Each sandbox has its own Pod with a control container, a processd-mcp workload container, and an emptyDir workspace. The workspace disappears when the Pod is deleted. Managers share lifecycle records through Kubernetes Secrets.
The scheduler and manager expose the sandbox lifecycle API. They do not expose a top-level /mcp. Create a sandbox through the SDK or POST /sandboxes, then connect the MCP client to the returned mcp_url with the sandbox token. Scheduler IDs are signed opaque values; store them unchanged.
Deploy
Install a Kubernetes CNI that enforces NetworkPolicy, then create a namespace and a processd-manager-credentials Secret containing auth-token and a stable signing-key (each at least 32 random bytes). Install the Helm chart with helm upgrade --install processd core/deploy/chart/processd --namespace processd --set-string scheduler.publicBaseUrl=https://processd.example.com. The chart defaults to the core-v1.0.0 manager and sandbox images; publish them first or override the image values. Configure external access to the scheduler separately. Its publicBaseUrl must be the URL clients can reach.
For deployment settings, limits, and network policy behavior, see the Kubernetes deployment guide. For a local end-to-end run against an existing kind cluster with a NetworkPolicy-capable CNI, use cd core && make e2e-k8s.
Use from Python
import asyncio
from daimon_sdk import DaimonManagerClient
async def main() -> None:
async with DaimonManagerClient("https://scheduler.example.com", access_token="<manager token>") as manager:
async with manager.sandbox() as sandbox:
result = await sandbox.exec.bash("python3 --version")
print(result.stdout)
asyncio.run(main())The SDK connects to the returned sandbox MCP URL and deletes the sandbox when the context manager exits. You can also pass that URL and its sandbox token to another MCP client.