Skip to main content

Python SDK for PandaStack — open-source Firecracker microVM sandboxes

Project description

PandaStack Python SDK

Python SDK for PandaStack, open-source Firecracker microVM sandboxes for AI agents and code execution.

Install

pip install pandastack

Auth

Create a token in the PandaStack dashboard, then export it:

export PANDASTACK_TOKEN=psk_...
# Optional for self-hosted/dev:
export PANDASTACK_API=http://localhost:8080

Client() also reads ~/.config/pandastack/config.json when environment variables are unset.

Quickstart

from pandastack import Sandbox

with Sandbox.create(template="code-interpreter") as sb:
    result = sb.run_code("print(2 + 2)")
    print(result.stdout.strip())

Explicit client

from pandastack import Client

client = Client(api_key="psk_xxx", api_url="https://api.pandastack.ai")
sb = client.sandboxes.create(template="code-interpreter")
try:
    print(sb.exec("ls -la").stdout)
finally:
    sb.kill()

Filesystem

sb.filesystem.write("/home/panda/hello.txt", "hello")
print(sb.filesystem.read("/home/panda/hello.txt"))
sb.filesystem.upload("local.csv", "/home/panda/local.csv")
sb.filesystem.download("/home/panda/out.png", "out.png")

Commands and logs

result = sb.commands.run("python3 --version", timeout=10)
for line in sb.logs(stream="both", follow=False):
    print(line)

Lifecycle

sb.set_ttl(600)
sb.set_persistent(True)
print(sb.lifecycle())
sb.pause()
sb.resume()
snapshot_id = sb.snapshot()

Templates

from pandastack import templates

print(templates.list())
build = templates.build("my-template", rootfs_tar="rootfs.tar", size_mb=2048)
print(build.status)
templates.delete("my-template")

Tokens

from pandastack import tokens

new_token = tokens.create("ci")
print(new_token.token)
for token in tokens.list():
    print(token.prefix, token.name)
tokens.revoke(new_token.prefix)

The old pandastack import remains as a deprecated compatibility alias. Use pandastack for new code.

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

pandastack-0.1.0.tar.gz (24.5 kB view details)

Uploaded Source

Built Distribution

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

pandastack-0.1.0-py3-none-any.whl (22.4 kB view details)

Uploaded Python 3

File details

Details for the file pandastack-0.1.0.tar.gz.

File metadata

  • Download URL: pandastack-0.1.0.tar.gz
  • Upload date:
  • Size: 24.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for pandastack-0.1.0.tar.gz
Algorithm Hash digest
SHA256 272eee3160c8d2b566d9e10421813f8feb49d59fcd30e2d11880847d6a59f5fb
MD5 972ff57a2ee251951a50d3363bc45949
BLAKE2b-256 274fb28a02499eb139c68bba2db5a8a6d52e0ada3c1a8c5ca3962e232810e079

See more details on using hashes here.

File details

Details for the file pandastack-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pandastack-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for pandastack-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 59856256a637316437942b3c7ed6bb33f2408ee344cae4c737f78b4fc5feefb0
MD5 b54df28f9efcfa771c856178f87caa54
BLAKE2b-256 20a2f2205c5b1ffe4df462e3e5e27710d0153d839c31a1f6149000d4f0986b81

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