Official Python SDK for Chaser
Project description
chaser-sdk
Official Python SDK for Chaser.
This package is the Python SDK for the core public Chaser surface:
- sessions
- workspaces
- exec
- command lifecycle
- files
- runtime self-tests and preview URLs
- browser CDP helpers
- accounts and organizations
- service accounts and keys
- billing
- lifecycle webhooks
- audit
- jobs
Installation
pip install chaser-sdk
Optional CDP websocket support:
pip install 'chaser-sdk[cdp]'
Quickstart
from chaser_sdk import ChaserClient
client = ChaserClient(api_key="sk_...", account="personal")
workspace = client.workspaces.create(
{
"name": "frontend-app",
"session_type": "sandbox",
"image": "ghcr.io/example/dev:latest",
}
)
session = client.sessions.create(
{
"workspace": workspace["name"],
"session_type": "sandbox",
}
)
client.sessions.wait_until_ready(session["id"])
result = client.exec.in_session(
session["id"],
{
"command": "node -v && pwd",
"cwd": "/workspace",
},
)
print(result.get("output"))
Stateless exec
result = client.exec.run(
{
"ephemeral": True,
"image": "node:20-bookworm",
"command": "python3 -c 'print(42)'",
}
)
Files and previews
client.files.upload_text(session["id"], "/workspace/hello.txt", "hello from sdk")
text = client.files.download_text(session["id"], "/workspace/hello.txt")
preview = client.sessions.forward_url(session["id"], 3000)
Runtime self-test
diagnostics = client.sessions.self_test(session["id"])
print(diagnostics["runtime"]["tools"].get("node"))
Network controls
session = client.sessions.create(
{
"ephemeral": True,
"session_type": "sandbox",
"network": {
"mode": "proxy",
"proxy": {
"url": "socks5h://proxy.example.com:1080",
"username": "svc-user",
"password": "svc-pass",
},
},
}
)
Browser CDP helper
browser = client.sessions.create({"session_type": "browser", "ephemeral": True})
ws_url = client.browser.cdp_websocket_url(browser["id"])
print(ws_url)
If you install the optional cdp extra, you can also open a lightweight websocket client:
cdp = client.browser.connect(browser["id"])
print(cdp.send("Browser.getVersion"))
cdp.close()
Organization automation
org_client = client.with_account("Acme Engineering")
service_account = org_client.accounts.service_accounts.create("ci-bot")
key = org_client.accounts.service_accounts.keys.create(
service_account["id"],
name="ci-key",
scopes=["sessions.read", "workspaces.write", "exec.write", "files.read", "webhooks.write"],
)
print(key["key"])
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
chaser_sdk-0.1.2.tar.gz
(15.9 kB
view details)
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 chaser_sdk-0.1.2.tar.gz.
File metadata
- Download URL: chaser_sdk-0.1.2.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbbe9e37539f4adae538e77e45f00efccffc3747237272ff5ae0c81b3f0c62da
|
|
| MD5 |
d0091d25ae46b5e11e34e6f0e4bc0ec0
|
|
| BLAKE2b-256 |
0bf8bd1688942e4cf70ae116853e161a5caa788616a9952d436ecb217d97be15
|
File details
Details for the file chaser_sdk-0.1.2-py3-none-any.whl.
File metadata
- Download URL: chaser_sdk-0.1.2-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee92e0d188ca787666f2132489d53a6b9af0167970ddc298698a66d7eb98cdf3
|
|
| MD5 |
28b208d495a9e666fb9f0797fe24bc9b
|
|
| BLAKE2b-256 |
322567086d44e10b6e78539693bc9fe751005b120977e11f2d487e78def1f8fb
|