Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Use Undercurrent from Python

The aixand-undercurrent-sdk package provides an async Python 3.11+ client for starting local terminal sessions, delivering input, reading output, observing state, and stopping processes. Import it as undercurrent. These pages describe release 0.1.0-beta in this checkout. Python packaging normalizes that same release to 0.1.0b0. Use the daemon and uc-python-bridge built from the same revision.

Python owns the connection and observation helpers. The external daemon owns sessions, durable state, and process supervision. Closing a client detaches; stopping a session is an explicit operation. Application success, agent identity, credentials, and workflow budgets remain the caller's responsibility.

await client.stop(session_id, graceful_only=True) requests a graceful stop without automatic forced escalation. It requires a daemon supporting the graceful_only stop field and cannot be combined with force=True. Inspect or wait for terminal lifecycle before treating a process as stopped; a timeout does not establish termination.

Choose a reading path

Reader Start here Continue with
User running local tasks Install and run a complete example Recover and clean up
SDK integrator Control sessions and deliver input Wait for observed state, consume output and streams
Maintainer Trace the implementation and extend it Source owners and SDK comparison

Setup and examples

Follow the Linux quickstart to install the package, select matching native executables, and start an isolated daemon. Installing the Python package alone does not install Rust binaries.

The maintained input round trip demonstrates async with Client(), starting a child, an application acknowledgment, output pagination, and cleanup. Wait for state, observe a session, and copy retained output without changing its process.

The API does not start a daemon, compile a bridge, or replay a failed mutation automatically. Preserve session IDs and delivery IDs and follow the operation-specific recovery rules. The repository overview and Rust SDK orientation provide wider context.

Connection ownership

This diagram shows the runtime boundaries relevant to a Python caller.

%%{init: {"flowchart": {"useMaxWidth": false}}}%%
flowchart TD
    accTitle: Python client context
    accDescr: An asyncio application communicates with its child bridge over standard IO. The bridge uses the public Rust SDK to reach the external daemon over authenticated local IPC. The daemon supervises sessions independently of the Python connection.
    P[Python application and<br/>async Client] -->|private JSON lines over<br/>stdio| B[uc-python-bridge child]
    B -->|public Rust SDK and<br/>authenticated local IPC| D[uc-daemon]
    D -->|supervises through<br/>runtime| S[Managed terminal<br/>sessions]
    D -->|owns durable records| R[(Runtime home)]

The bridge is a client adapter; neither the Python package nor its bridge embeds the daemon or reads its database. See the maintainer source map.

Metadata

Release files for aixand-undercurrent-sdk 0.1.0b0

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

Built distribution (wheel)

Table of built distributions (wheels) for aixand-undercurrent-sdk 0.1.0b0
File Interpreter ABI Platform Actions
aixand_undercurrent_sdk-0.1.0b0-py3-none-any.whl Python 3 none any Details for aixand_undercurrent_sdk-0.1.0b0-py3-none-any.whl

Release files / aixand_undercurrent_sdk-0.1.0b0-py3-none-any.whl

Download URL aixand_undercurrent_sdk-0.1.0b0-py3-none-any.whl
Size 18.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c452a067f41e0c6878f9b03ae8035a06ae484c0c16ec6b1fb372d2a76a88990
BLAKE2b-256 checksum
How to use checksums
89c3e73a306db423f150adbd4e2bbe1c3a14c016ddf128603a88af9dfe495c01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for aixand-undercurrent-sdk 0.1.0b0

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.

Release history Release notifications | RSS feed

This release
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