Python SDK for Sleigh runtime server.
Project description
Sleigh Python SDK
Python SDK for the Sleigh runtime server.
Two client variants are included:
- LangChain Tool variant: one-call
as_langchain_tool()(returnsStructuredTool) - MCP variant: expose runtime APIs as MCP tools over stdio
1. Install
pip install .
Optional extras:
pip install ".[langchain]"
pip install ".[mcp]"
2. Base Python Client
from sdk import SleighClient
client = SleighClient(base_url="http://127.0.0.1:8080")
session_token = "sess_demo"
created = client.create_sandbox(session_token=session_token, image="alpine:3.20")
sandbox_id = created["sandbox_id"]
3. Ordered Workflow (AI Coding)
Run multiple steps in one request and stop early on failure/timeout:
result = client.run_workflow(
session_token=session_token,
steps=[
{"action": "create_sandbox", "image": "alpine:3.20", "memory_limit_mb": 512},
{"action": "exec_command", "command": "echo hello", "wait": True, "wait_timeout_seconds": 10},
{"action": "create_snapshot"},
{"action": "exec_command", "command": "uname -a", "wait": True},
],
)
print(result["stopped_early"], result["steps"])
4. Sandbox Read API (AI Coding)
read_result = client.read_sandbox(
session_token=session_token,
sandbox_id=sandbox_id,
command="rg",
args=["TODO", "/workspace"],
timeout_seconds=10,
max_output_bytes=65536,
max_lines=200,
)
print(read_result)
5. Patch API (Sandbox Semantic)
patch_workspace targets:
POST /sandboxes/{id}/ops/patch- validates sandbox auth and targets directory inside sandbox filesystem
sandbox_pathis required and must be an absolute directory path in sandbox- service exports sandbox dir to host temp workspace, applies patch, and syncs back
- quality checks: run
pre-commitwhen config exists; otherwise auto-detect language for fallback checks patchmust be unified diff text (not raw file content), e.g. with*** Begin Patchordiff --githeaders
result = client.patch_workspace(
session_token=session_token,
sandbox_id=sandbox_id,
sandbox_path="/app",
patch="*** Begin Patch\n*** End Patch\n",
)
6. Low-Memory Create Guard
When host available memory ratio:
< 5%: create is blocked>= 5%and< 8%: create requiresconfirm_low_memory=True
created = client.create_sandbox(
session_token=session_token,
image="alpine:3.20",
confirm_low_memory=True,
request_timeout_seconds=180,
)
7. More Examples
- LangChain integration:
../README_langchain.md - MCP integration:
../README_mcp.md
8. Session Exec History
list_session_exec_tasks accepts optional session_id.
If omitted, SDK uses session_token as session_id automatically:
history = client.list_session_exec_tasks(
session_token=session_token,
limit=20,
)
print(history)
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 sleigh_sdk-0.1.6.tar.gz.
File metadata
- Download URL: sleigh_sdk-0.1.6.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93af44b39142f304ae82127fb7fc2e2cb4c76184cf0842de552e7bd915d65f70
|
|
| MD5 |
8e2fb59a2e259483c71bd82b33be2d22
|
|
| BLAKE2b-256 |
713823e2cb09ae3d185312f382d0d80b55a1b7d6292547ccc8a017ea53498586
|
File details
Details for the file sleigh_sdk-0.1.6-py3-none-any.whl.
File metadata
- Download URL: sleigh_sdk-0.1.6-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62cb84e3d9ea1245ae6e48b0f76f1206800f3306c5908997a5beb6041e25bbfa
|
|
| MD5 |
5bd9963e1264dd7d9eca21894dc53d39
|
|
| BLAKE2b-256 |
0073d9b5a58accc02178bf576b79a38660f23633048284962e7fdc52042432f8
|