exec_stream, following a long-running command’s live output) and interactive pty sessions. Remote storage mounts are wrapped here (sandbox.mount()/.list_mounts()/.unmount()) — see Drives for the full mechanics.
Every class below also ships as an
asyncio-native mirror — AsyncSandbox, AsyncDrive, AsyncImage, AsyncPool — with identical method names and arguments, just async def and awaited. They’re deliberately separate classes rather than sync+async methods on one class, since a sync call in an async context blocks the event loop silently. AsyncSandbox additionally exposes tunnel() (see below) as an awaitable.Configuration
- Daemon URL: pass
base_url=to any method, or setSANDKILN_DAEMON_URL. Defaults tohttp://127.0.0.1:7777. - Auth: pass
auth_token=, or setSANDKILN_AUTH_TOKEN. Omit entirely for an unauthenticated local daemon.