Skip to main content

kosa8 for Python

Python client for kosa8: microVM sandboxes for AI agents, with checkpoint, rewind, fork and explore. The counterpart of @kosa8/sdk, method for method.

No dependencies. It talks to the local kosa8 daemon over its unix socket, or to a remote kosa8 worker.

pip install kosa8

Quickstart

from kosa8 import Kosa8Client

k = Kosa8Client()
k.create_sandbox(name="demo", egress="deny")   # a microVM with its own kernel, no network
sb = k.sandbox("demo")

sb.pull("alpine:latest")
print(sb.run("alpine:latest", ["sh", "-c", "echo hello"]).stdout)

sb.checkpoint(label="before the risky bit")    # memory, processes and disk
sb.run("alpine:latest", ["sh", "-c", "rm -rf /data"])
sb.rewind()                                    # back, processes resumed

forks = sb.fork(4)                             # four live copies
sb.delete()

What's in it

Area Methods
Status health, version
Sandboxes create_sandbox, list_sandboxes, get_sandbox, start_sandbox, stop_sandbox, delete_sandbox
Images pull, pull_into_sandbox, sandbox_images
Running code run, exec, exec_frames, start_container, start_interactive, write_stdin, attach
Network sandbox_egress; egress="deny" | "any" | "fakenet" or egress_allow=[...] on create
Snapshots snapshot, list_snapshots, restore_snapshot, delete_snapshot
Fork fork(sandbox, n), explore(sandbox, variants) (best-of-N)
Checkpoints checkpoint, list_checkpoints, rewind

k.sandbox(id) returns a handle with the same methods bound to one sandbox.

Checkpoints share the CLI's store (~/.kosa8/checkpoints.json, under the same flock), so kosa8 rewind sees checkpoints taken here and the other way round.

Connecting

Setting Default
socket_path= ~/.kosa8/run/kosa8.sock
host= / KOSA8_HOST a remote worker: https://…, tcp://host:port, unix:///path
token= / KOSA8_TOKEN the worker's bearer token
insecure= / KOSA8_INSECURE=1 allow plain http to a non-loopback host (off)
actor= tool; recorded in the audit log as human, agent or tool
agent_token= / KOSA8_AGENT_TOKEN agent identity for the audit log
timeout= seconds per connect and read; None waits

Errors

Every daemon error is raised as a typed exception carrying the daemon's own message and remediation: Kosa8BadRequestError (400), Kosa8AuthError (401), Kosa8PolicyError (403), Kosa8ApprovalRequiredError (403 needing a signed approval: repeat the call with approval=<id>), Kosa8NotFoundError (404), Kosa8ConflictError (409), Kosa8UnsupportedError (501), Kosa8ConnectionError, Kosa8StreamError (output kept), Kosa8TimeoutError.

Tests

PYTHONPATH=src:tests python3 -m unittest discover -s tests

License

MIT

Metadata

Release files for kosa8 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kosa8 0.1.0
File Size Uploaded Provenance Actions
kosa8-0.1.0.tar.gz 22.0 kB Without provenance Details for kosa8-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for kosa8 0.1.0
File Interpreter ABI Platform Actions
kosa8-0.1.0-py3-none-any.whl Python 3 none any Details for kosa8-0.1.0-py3-none-any.whl

Total release size: 41.5 kB

Release files / kosa8-0.1.0.tar.gz

Download URL kosa8-0.1.0.tar.gz
Size 22.0 kB
Tags Source
SHA-256 checksum
How to use checksums
67d25174ddec05b9eb1d3e8031e1e9fba890df01050be54d7925d54915f01325
BLAKE2b-256 checksum
How to use checksums
5a0ff1f55a88a8a951b0034f79a9a7898a811289403727232ba91fc5f333286f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.13

Release files / kosa8-0.1.0-py3-none-any.whl

Download URL kosa8-0.1.0-py3-none-any.whl
Size 19.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0dee388e6b76bbc8f4fdc3362dbf68e24c3bc30fc78cc0720749c5562e62a4b7
BLAKE2b-256 checksum
How to use checksums
7b4d533eae0454bf022e7b0a19a2d5666caea68660d3bc75d479c436757b80b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.13

Security for kosa8 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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