> ## Documentation Index
> Fetch the complete documentation index at: https://sandkiln.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Python SDK overview

> Install, configuration, auth, and the Async* mirror classes.

```bash theme={null}
pip install sandkiln
```

Everything this SDK wraps is listed under [Sandbox](/api-reference/python-sdk/sandbox), [Image](/api-reference/python-sdk/image), [Drive](/api-reference/python-sdk/drive), and [Pool](/api-reference/python-sdk/pool). Two daemon features have no wrapper yet, both available only via the [JS/TS SDK](/api-reference/js-sdk/overview), the [CLI](/api-reference/cli/overview), or the daemon HTTP API directly: streamed background exec (`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](/api-reference/http-api/drives#remote-storage-mounts) for the full mechanics.

<Note>
  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.
</Note>

## Configuration

* **Daemon URL**: pass `base_url=` to any method, or set `SANDKILN_DAEMON_URL`. Defaults to `http://127.0.0.1:7777`.
* **Auth**: pass `auth_token=`, or set `SANDKILN_AUTH_TOKEN`. Omit entirely for an unauthenticated local daemon.

```python theme={null}
import os
from sandkiln import Sandbox

# Explicit per-call config...
sandbox = Sandbox.create(base_url="https://daemon.internal:7777", auth_token=os.environ["SANDKILN_TOKEN"])

# ...or set both as environment variables once and omit them everywhere:
# SANDKILN_DAEMON_URL=https://daemon.internal:7777
# SANDKILN_AUTH_TOKEN=...
same_sandbox = Sandbox.create()
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.