async and exported from aether_sdk.
Authentication is done via the API key, that can be created and managed from Aether Dashboard.
Operations
emit_delta(delta)
emit_delta(delta)
Endpoint:
Auth: API key
Returns:
On failure: Returns
POST /v1/connected/deltasAuth: API key
Returns:
DeltaAck | NoneOn failure: Returns
None, never raises.emit_delta_strict(delta)
emit_delta_strict(delta)
Endpoint:
Auth: API key
Returns:
On failure: Raises an
POST /v1/connected/deltasAuth: API key
Returns:
DeltaAckOn failure: Raises an
AetherError subclass.request_trigger_plan(plan)
request_trigger_plan(plan)
Endpoint:
Auth: API key of the top-level orchestrator only
Returns:
On failure: Raises (403 if the key isn’t the orchestrator’s).
POST /v1/connected/trigger-plansAuth: API key of the top-level orchestrator only
Returns:
TriggerPlanOutOn failure: Raises (403 if the key isn’t the orchestrator’s).
get_health()
get_health()
Endpoint:
Auth: None
Returns:
On failure: Raises.
GET /healthAuth: None
Returns:
dictOn failure: Raises.
wrap_node(fn, *, extract, workspace_revision, api_key)
wrap_node(fn, *, extract, workspace_revision, api_key)
Endpoint: Calls
Auth: API key
Returns: The wrapped LangGraph node
On failure: Same as
emit_delta for each extracted eventAuth: API key
Returns: The wrapped LangGraph node
On failure: Same as
emit_delta.Not in the SDK
- The SDK can’t create, list or revoke API keys.
- Environments, systems, contracts, and saved deltas and plans are not available in the SDK or a Connected System.
- LLM usage is sent internally by the usage recorder.
Usage recorder
The SDK records the token usage of LLM calls to OpenAI, Anthropic and Google (Gemini) in the background. You don’t need to change your code. It works for any client that uses httpx under the hood, including the official provider SDKs. It turns on when the app starts, as long asAETHER_API_KEY is set. Set AETHER_LLM_USAGE=off to turn it off.
For each call it reads the token counts from a copy of the response. Your app gets the response unchanged, and streaming
responses are covered too. A background thread sends the records to Aether in batches and retries if a send fails. If Aether can’t be reached, usage records may be dropped, but your app is never blocked and never sees an error.
This is internal to the SDK. It has no public API, so you can’t call, configure or extend it beyond the on/off switch.
Installation
Install the SDK and set up credentials.
Quick start
Your first working script.

