SDKs
All three SDKs expose the same programmable sandbox boundary: source, lifecycle, execution, attached processes, files, archive transfer, tunnels, metadata, and typed errors. Mutating RPCs are never retried implicitly.
| SDK | Best fit | Start |
|---|---|---|
| Python | Agent tooling, notebooks, orchestration | Python SDK |
| Go | Infrastructure controllers and Go agents | Go SDK |
| TypeScript | Node.js applications and tools | TypeScript SDK |
Capability matrix
Section titled “Capability matrix”The sandbox boundary is shared; language depth differs by design.
| Capability | Python | Go | TypeScript |
|---|---|---|---|
| Sandbox lifecycle, exec, processes | ✓ | ✓ | ✓ |
| Files and archive transfer | ✓ | ✓ | ✓ |
| Reverse tunnels | ✓ | ✓ | ✓ |
| Computer Use | ✓ | ✓ | ✓ |
| Environments and Runs | ✓ | ✓ | ✓ |
| Concurrency model | sync + AsyncSandbox |
context.Context |
Promise-native |
Secrets, quota, namespaces, SSH, and admin authorization are CLI surfaces today; the SDKs expose them only at the generated protobuf level.
Install the official packages from their public registries:
- Python:
uv add axern-sdk==<version>from PyPI - Go:
go get github.com/cofy-x/axern/sdk/go@<version>from the Go module index - TypeScript:
pnpm add @cofy-x/axern-sdk@<version>from npm
Each sandbox selects exactly one source: an OCI image for a new Environment, or an environment ID to continue from an existing immutable Environment. Lifecycle and data-plane operations flow through Axern public APIs; SDKs do not add SSH or shell fallbacks for platform behavior.
Axern publishes the CLI, Helm chart, runtime images, and all three SDKs under one repository version. Python and TypeScript use public package registries; Go uses the versioned sdk/go module. Treat a pre-1.0 Axern release as one coherent unit, and commit your package-manager lockfile or resolved go.mod version for repeatable builds.