Skip to main content

Official Python SDK for Chaser

Project description

chaser-sdk

Official Python SDK for Chaser.

This package is the Python beta 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.1.tar.gz (13.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.1-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: chaser_sdk-0.1.1.tar.gz
  • Upload date:
  • Size: 13.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.1.tar.gz
Algorithm Hash digest
SHA256 7f38fb82b2accc2c2bc8c2ed564c2dd3be2ceaabcac96beb303c14bc97855269
MD5 a45c95ca20966a7361b89d9ef3ec92f1
BLAKE2b-256 c70ca76ed498e2c5a00b72d50d21186e7932bcae79315344df499b2bf395573c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: chaser_sdk-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.2 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 245976ce56641abda5f7341deafddd1e03adafd735431df3133592a4023618b5
MD5 0e7be5ed6d280fbd98b3d60102bd8a47
BLAKE2b-256 91a4b4359f65f1b823698b149a1103918850f24d7044dedb44f97fc5de49683e

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