Skip to content
sistemo.io beta

SDKs

Private beta

Signups are invite-only. Request an invite. The SDKs are on PyPI and npm; you still need a dashboard API key to run anything. Source is on GitHub.

Official, zero-dependency client libraries that wrap the REST API. Use them to create sandboxes and run code in a few lines.

  • Python — sistemo


    python3 -m venv .venv && source .venv/bin/activate
    pip install sistemo
    

    A venv is required on Debian, Ubuntu and Fedora (PEP 668).

    Python SDK

  • JavaScript / TypeScript — @sistemo/sdk


    npm install @sistemo/sdk
    

    JavaScript SDK

Upgrading from 0.1.1

Version 0.1.1 of both SDKs ran commands through POST /v1/machines/{id}/exec, which was retired on 2026-09-29. On 0.1.1, sb.run() now fails with a 404 NotFoundError. Upgrade to 0.1.2 or later — pip install -U sistemo / npm install @sistemo/sdk@latest — which runs every command as a job on POST /v1/machines/{id}/execs. Your code does not change: sb.run() keeps the same signature and result. If you call the REST API directly, see Exec.

Configuration (both SDKs)

Both read the same two environment variables:

Variable Default Purpose
SISTEMO_API_KEY — (required) Your sk_live_… key. Use a full-scope key to create/run.
SISTEMO_BASE_URL https://api.sistemo.io Optional override of the API endpoint.
export SISTEMO_API_KEY=sk_live_xxxxxxxxxxxxxxxx

Don't have a key yet? See the Cloud quickstart.

Which should I use?

Use the SDK for your language for the cleanest experience. If your language isn't covered, call the REST API directly — the SDKs are thin wrappers over it.

What the Sandbox helper does not cover

Sandbox is create-run-destroy. Everything else — stop/start, volumes, snapshots, quotas, billing, the Activity feed — goes through the low-level Client, which both SDKs expose. The JS Client additionally ships typed volume helpers; the Python one does not yet. See the Sandbox API page for each (Python · JavaScript).

⚠ Neither SDK can reconnect to an existing sandbox: Sandbox() always creates a new machine. Keep the machine id and drive it through Client — see the FAQ.