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})
print(outcome.result)
print(outcome.payment.transaction)  # settlement proof

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}'
# 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

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.0.4

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.0.4
File Size Uploaded
ausca-0.0.4.tar.gz 15.5 kB Details

Built distribution (wheel)

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

Total release size: 27.9 kB

Release files / ausca-0.0.4.tar.gz

Download URL ausca-0.0.4.tar.gz
Size 15.5 kB
Tags Source
SHA-256 checksum
How to use checksums
97310c39911e78c832d11553872ca84b9e917db8c679d7488dd2df6fd83d3ecd
BLAKE2b-256 checksum
How to use checksums
c99413c977f334c3225c6863aa2b36e6cbbea4e1cf6ba1e2bdedc80ae68a314d
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.0.4-py3-none-any.whl

Download URL ausca-0.0.4-py3-none-any.whl
Size 12.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
58bb71d2af773732429ddccfb04855bcc1811a0364740f1a0a3fa6befda93e81
BLAKE2b-256 checksum
How to use checksums
186a3fa6cf3618a5e161ebc417528f20cee88cd10918e4a3a60e28c78910453b
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

0.1.1

2 release files

0.1.0

2 release files

This release

0.0.4 This release

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