Skip to main content

Async Python client for Litterbox.

Project description

litterbox-python-sdk

Async Python client for the Litterbox host API.

The SDK provisions sandbox VMs, reads host state, deletes hosts, and returns the SSH connection details a caller needs. It speaks HTTP only: SSH sessions, file transfer, command execution, and retry orchestration belong in the caller.

Install

pip install litterbox-python-sdk
uv add litterbox-python-sdk

Usage

from litterbox_sdk import SandboxAPI

sandbox = SandboxAPI(
    base_url="https://sandbox.internal.ts.net",
    token="...",
)

try:
    host = await sandbox.create_host(
        image="ghcr.io/litterbox/sandbox:abc123",
        env={"FOO": "bar"},
        idempotency_key="agent-run-42",
    )
    # Use host.ssh_host, host.ssh_port, and host.known_hosts with
    # asyncssh or another SSH client.
finally:
    await sandbox.delete_host(host.id)
    await sandbox.aclose()

create_host blocks until the host is active — typically ~10–30s, up to a few minutes worst case. The SDK's default timeout (300s) covers this. Pass an idempotency_key for retry safety: a retry with the same key after a successful provision returns the original host instead of creating a duplicate.

SandboxAPI.from_env(prefix="SANDBOX_") reads SANDBOX_SERVICE_URL, SANDBOX_SERVICE_TOKEN, and optional SANDBOX_SERVICE_TIMEOUT.

Contract

Public exports live in litterbox_sdk:

  • SandboxAPI
  • SandboxHost
  • SandboxAPIError and typed subclasses for auth, not found, conflict, unavailable, and unclassified response errors

Supported host operations:

  • create_host
  • get_host
  • attach
  • list_hosts
  • delete_host
  • aclose

create_host supports the service's optional image, env, expires_at, and Idempotency-Key inputs.

The SDK does not mint Tailscale auth keys, manage ACLs, establish SSH, provision Linux users, transfer files, or run remote commands.

Development

uv sync
uv run ruff check
uv run ruff format --check
uv run pyright
uv run pytest

Tests use respx to fake the Litterbox HTTP API. They do not need a real network, VM provider, or Litterbox service.

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

litterbox_python_sdk-0.0.3.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

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

litterbox_python_sdk-0.0.3-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file litterbox_python_sdk-0.0.3.tar.gz.

File metadata

  • Download URL: litterbox_python_sdk-0.0.3.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for litterbox_python_sdk-0.0.3.tar.gz
Algorithm Hash digest
SHA256 04dadc6b42e7aa2d8b7175b8fc1f8e83568f276a065e2cc43f08c9a2d79cffdf
MD5 b22f0299da28cbcf5df2b67dd4e2ea03
BLAKE2b-256 37fefb3ee2714d7f33b4b9245ad58949a62d6d119e4a24c566b2e64fe008c973

See more details on using hashes here.

Provenance

The following attestation bundles were made for litterbox_python_sdk-0.0.3.tar.gz:

Publisher: release.yml on clawhaven/litterbox-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file litterbox_python_sdk-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for litterbox_python_sdk-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e8a854599229e8de786128cd01c09f886abbd3ec2e4d8322e852609dda173fc7
MD5 eda95b706666d2cd5a004892e1ba23b5
BLAKE2b-256 61f0042e332aa4c6390509f34167fa46a6774b091fb5250c4240d4173a0f6746

See more details on using hashes here.

Provenance

The following attestation bundles were made for litterbox_python_sdk-0.0.3-py3-none-any.whl:

Publisher: release.yml on clawhaven/litterbox-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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