Skip to main content

sistemo (Python)

Run AI agents and untrusted code in real isolated Firecracker microVMs — self-host for free or use the cloud.

pip install sistemo

On Debian, Ubuntu and Fedora the system Python is marked externally managed (PEP 668), so that call is refused with error: externally-managed-environment. Install into a virtual environment instead — this is about your OS, not this package:

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

Quickstart (< 10 lines)

First, get an API key from the dashboard (Dashboard → API Keys) and export it:

export SISTEMO_API_KEY=sk_live_xxxxxxxx

Then save this as hello.py — it is a Python file, not something to paste at a shell prompt:

# hello.py
from sistemo import Sandbox

with Sandbox() as sb:                       # reads SISTEMO_API_KEY
    result = sb.run("python3 -c 'print(2 + 2)'")
    print(result.stdout, result.exit_code)  # "4\n" 0

Then run it:

python hello.py

Configuration

SISTEMO_API_KEY your key (sk_live_…). Required.
SISTEMO_BASE_URL override the API URL (default https://api.sistemo.io; e.g. your self-hosted control plane).

Or pass them explicitly: Sandbox(api_key="sk_live_…", base_url="https://…").

API

sb = Sandbox(vcpus=1, memory_mb=1024, stack="base")  # provisions a microVM
res = sb.run("echo hi && uname -a", timeout=30)            # -> ExecResult
res.stdout, res.stderr, res.exit_code, res.ok
sb.close()                                                 # destroy (or use `with`)

A read API key can list resources but cannot create sandboxes or run code — use a full key with the SDK.

Errors

from sistemo import APIError, AuthError, QuotaExceededError

try:
    with Sandbox() as sb:
        sb.run("...")
except QuotaExceededError as e:
    # An account limit was reached. `detail` names which one and how much is in
    # use. Retrying SUCCEEDS once you free that resource — stop or destroy a
    # machine, delete a volume — or once the limit is raised.
    print(e.detail)
except AuthError:
    ...          # 401/403 — key missing/invalid/revoked, or read-only key
except APIError as e:
    print(e.status, e.detail, e.code)

Both QuotaExceededError and AuthError arrive as HTTP 403, so catch QuotaExceededError first — it is a subclass of APIError, not of AuthError, precisely because the two need opposite handling: an auth failure never succeeds on retry, a quota refusal does once you free something. GET /v1/quotas reports every limit alongside current usage.

Zero runtime dependencies (Python stdlib only). Apache-2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sistemo-0.1.1.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

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

sistemo-0.1.1-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sistemo-0.1.1.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sistemo-0.1.1.tar.gz
Algorithm Hash digest
SHA256 38081c355cb34e382282e417e62da01eaab978a66709cb97facca15c677612c0
MD5 8630b411820ee873b113ca2da74df163
BLAKE2b-256 852a612efe9a81f24413ad64df472d6a54cea978aa322360823b54dc3be07a05

See more details on using hashes here.

Provenance

The following attestation bundles were made for sistemo-0.1.1.tar.gz:

Publisher: release.yml on sistemo0/sistemo-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 sistemo-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: sistemo-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sistemo-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9e5864d035b7135050ce68e2bdb0193b9128db251277574049c293e0c65d6250
MD5 333660f07902542013500772d2e68c14
BLAKE2b-256 ca7e6c5a16d9c29d1a4638792f32c62c6187fbeb44b0c9fe0cd0ff221649ce58

See more details on using hashes here.

Provenance

The following attestation bundles were made for sistemo-0.1.1-py3-none-any.whl:

Publisher: release.yml on sistemo0/sistemo-sdk

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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page