Skip to main content

ausca

Client for Ausca metered agent infrastructure services: document OCR, document analysis, media transcription, browser sessions, and agent inboxes. Paid per call under a hard USD cap you set, with no account or provider API keys, and a settlement receipt on every completed invocation.

Install

pip install ausca

Use

import os
from ausca import AuscaClient

client = AuscaClient.with_local_key(
    private_key=os.environ["AUSCA_PRIVATE_KEY"],  # pays USDC on Base
    max_payment_usd=0.50,                         # hard per-call cap
)

outcome = client.invoke("browser.session", {"duration_seconds": 600}, idempotency_key=saved_purchase_key)
# Keep outcome.result["resource_access"] private: it contains a bearer capability.

invoke resolves the offer's immutable revision, schema digests, and payable route from the live catalog, reads the exact payment requirement, pays it if it fits the cap, and retries the same bytes with the same idempotency key. Each call starts with a fresh key. For recovery after an uncertain response, pass the same caller-owned idempotency_key; use a new key for another intentional purchase, even when its input is identical.

A CLI ships with the package:

ausca catalog
ausca price document.ocr
AUSCA_PRIVATE_KEY=0x... AUSCA_MAX_PAYMENT_USD=0.50 \
  ausca invoke browser.session '{"duration_seconds":600}' \
  --idempotency-key browser-attempt-20260903-0001
# Reuse this key only to recover that same intended purchase:
ausca invoke browser.session '{"duration_seconds":600}' \
  --idempotency-key browser-attempt-20260903-0001

Payment rails

CLI purchases require --idempotency-key. A bare file path, @file, inline JSON, or stdin supplies business input. price --json includes binding digests. InvocationUncertainError.identity retains recovery identity on transport failure. client.probe(offer_id, input) returns the unsigned httpx.Response without consulting the payment authority, even when a funded key is configured.

Payment is a pluggable authority, never a client concern. The built-in LocalKeyAuthority pays x402 v2 with a local signing key through the official x402 library, which enforces the cap through its spend controls before anything is signed; other rails implement the same small PaymentAuthority protocol. client.pay_request(url, ...) runs one paid call against any resource the configured authority can pay; nothing in it is vendor-specific.

Artifact-backed offers

Document and media offers take an immutable artifact commitment instead of raw bytes. ausca commit file.pdf sends the bytes to Ausca's keyless temporary ingress and returns the commitment the offer input carries; the library equivalent is client.commit(data, media_type). Each call creates a fresh temporary commitment, including when the bytes match an older upload. Pass idempotency_key=... only to recover the same uncertain commit. The active offer catalog sets the usable input limit.

Successful paid state includes receipt_ref.public_url, an immutable hash-only proof of the Ausca service, public price, completion time, and receipt digest. It contains no request or result bytes, content digests, or access capabilities. Anyone holding the unguessable URL can read it.

A result larger than the offer's inline bound arrives as output_artifact instead of output. client.artifact_access(artifact_ref) mints a 60-second download URL for it; verify the bytes against content_digest. A failed invocation carries failure.code and failure.message.

The full agent contract lives at https://ausca.com/SKILL.md; discover the active offers at https://ausca.com/catalog.json. The npm equivalent is ausca, which adds a local MCP server (npx ausca mcp).

License

MIT

Metadata

Release files for ausca 0.1.1

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

Source distribution (sdist)

Source distribution for ausca 0.1.1
File Size Uploaded
ausca-0.1.1.tar.gz 17.0 kB Details

Built distribution (wheel)

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

Total release size: 30.5 kB

Release files / ausca-0.1.1.tar.gz

Download URL ausca-0.1.1.tar.gz
Size 17.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4ee124ae20aeabfd54a19da8e62d3e4af6d4e7454a2b8385eefffb1c67272df6
BLAKE2b-256 checksum
How to use checksums
45741965a246f592a8065735c4de2e4c254067e0b6c2703b122579128e98f704
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / ausca-0.1.1-py3-none-any.whl

Download URL ausca-0.1.1-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5089b0e32490ceaecd0645bf2101774cc2a0b5629448db2aa04da2a58f44740d
BLAKE2b-256 checksum
How to use checksums
210197ac9760397da96d271e5688e397036307414bbe7998696c4bccfafa7b29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release history Release notifications | RSS feed

0.1.2

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

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