Skip to main content

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


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.6.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chaser_sdk-0.1.6-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file chaser_sdk-0.1.6.tar.gz.

File metadata

  • Download URL: chaser_sdk-0.1.6.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

Hashes for chaser_sdk-0.1.6.tar.gz
Algorithm Hash digest
SHA256 2caf75626b9372c91e7eb93a7c036670ab01fb45b23bd2aee2914881492d4b33
MD5 a54238d68a19e735951f58ca5321b59e
BLAKE2b-256 43969d820df4a2674907a5e99a77d136097f55df084e01df3d45f037c0336440

See more details on using hashes here.

File details

Details for the file chaser_sdk-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: chaser_sdk-0.1.6-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

Hashes for chaser_sdk-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 ad3ddeefde9a2a7e7c4cd9651b1c8de02295501b57d0fbbc26bd5d7e3b7a9e41
MD5 3afd032988b3f28caac6b8f5c2604f8c
BLAKE2b-256 b62902790438ace1f606cf9b47473af19589a9a03fc4c030ab344da99a205892

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page