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.2.0.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.2.0.tar.gz.
File metadata
- Download URL: chaser_sdk-0.2.0.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 |
a3bb495b1b2d356158041effe3c626260f9b2664f685b68ea62571648b82eb5f
|
|
| MD5 |
7cfbf99e50e4c80407a6e716cc7449ff
|
|
| BLAKE2b-256 |
c769aa124d9602461d4cda7b9d0d36433404ed21eafb2aff0c2564044bfcbc34
|
File details
Details for the file chaser_sdk-0.2.0-py3-none-any.whl.
File metadata
- Download URL: chaser_sdk-0.2.0-py3-none-any.whl
- Upload date:
- Size: 13.3 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 |
54f9d6bdd02eb22e7d23ce5289aa8ef28cccac1936109a192f0aacbb7901f2e4
|
|
| MD5 |
28962ae5c51c473c6e8825319a540e32
|
|
| BLAKE2b-256 |
6846972dc8ad2518cf859b1a2f79ec942bc0e0ff20aa9b4931c370bb01aab4aa
|