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
A venv is required on Debian, Ubuntu and Fedora (PEP 668).
-
JavaScript / TypeScript —
@sistemo/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. |
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.