/sdk/quickstart for first-run setup. This page is the exact public surface for current ara_sdk.
Detailed pages
For grouped, method-focused troubleshooting pages:/sdk/reference/modal/sdk/reference/modal/app/sdk/reference/modal/ara-client/sdk/reference/modal/secret/sdk/reference/modal/helpers
Exported surface (ara_sdk)
App primitives
App(...)
- Defines app identity from a DNS-safe
project_name(name+slug) - Accepts project name as
App("my-app")orApp(project_name="my-app") - Carries defaults (
interfaces,runtime_profile) - Emits a manifest with
agent+ compatibilityworkflows
@app.agent(...)
Primary runnable primitive.
id(optional; defaults to function name)entrypointskills(tool allow-list)schedules(fromschedule.cron/every)- optional
handoff_to,runtime,sandbox,always_on - decorated function should accept a single
input: dictparameter and return prompt text (str)
@app.schedule(...)
Decorator-based scheduling for static jobs attached to @app.agent(...) or @app.tool(...).
- Trigger fields:
cron=andat=[...] atsupportsHH:MM, 5-field cron strings, or ISO timestamps (Z/UTC recommended for one-shot runs)- Multiple trigger styles can be combined in a single decorator
idis optional; when omitted, the SDK auto-generates a stable schedule id- Optional
run=overrides target; default target is the decorated agent/tool
@fastapi_endpoint(...)
Expose an agent as an HTTP endpoint in the app manifest.
- Supports one method per declaration (
GET,POST,PUT,PATCH,DELETE,OPTIONS,HEAD) - Supports auth modes:
none,header,bearer,hmac - Default label comes from function name (slugified)
- Request body is forwarded to runtime under
input["input"]to avoid key collisions with gateway metadata
@app.tool(...)
Single primitive for model schema + runtime execution.
- Exposes OpenAI-style function schema to the model
- Embeds deterministic Python source + callable metadata for runtime tool execution
Schedule builders
invoke.agent(...) / invoke.tool(...)
Target definitions used by schedules.
schedule.cron(...) / schedule.every(...)
Schedule spec builders used in @app.agent(..., schedules=[...]) and scheduler.create/upsert(...).
scheduler.create(spec) / scheduler.upsert(spec)
Builds automation_create payloads from the same schedule spec shape.
Runtime helpers
runtime(...)
Builds runtime profile fields:
- files/startup/image/resources
envsecrets(Secret.from_name,from_dict,from_dotenv)
sandbox(...)
Builds sandbox placement/spawn policy shape.
entrypoint(...), file(...), local_file(...)
Helpers for startup and runtime files.
AraClient
deploy(...)
- Creates/updates app from manifest
- Syncs local secret values to
/apps/{app_id}/secrets - Mints and returns a runtime key (
runtime_keyin command result) - Optional warmup invoke via
warm_agent_id
run(...) / run_async(...) / run_status(...) / events(...) / logs(...)
- Target an app agent via
agent_id - SDK sends both
agent_idand compatibilityworkflow_id logs()yields live runtime log rows for active runs (streaming, no history backfill)
CLI (ara app commands)
Runtime logs
ara logs app.py/AraClient.logs()are realtime streams only; they do not return historical logs.- Start the logs stream first, then trigger
run/run-asyncin another terminal. - Persist locally with shell piping:
ara logs app.py | tee app.logs - If the stream is connected but prints nothing, verify auth key selection and confirm the runtime path emits log events for your app/run.
AraRuntimeClient
Session-scoped client for interacting with a running Ara session. Uses ARA_API_KEY (user API key).
See /sdk/runtime-client for full guide.
chat(...)
execute_tool(...)
read_file, write_file, exec, automation_list, etc.)
capabilities(...) / skills(...) / tools(...)
Inspect the agent’s runtime state — available tools, loaded skills, session capabilities.
control_actions(...) / control_call(...)
List and trigger runtime control actions. control_call requires an active WebSocket connection (app UI open).
Auth/env notes
- Control plane credentials are resolved in this order:
ARA_API_KEYARA_ACCESS_TOKEN(legacy fallback)ara auth logincredentials from~/.ara/credentials.json
- Runtime calls (including
logs) use runtime key or app-header key (X-Ara-App-Key) - FastAPI endpoint calls (
/v1/apps/{app_id}/endpoints/{endpoint_label}) use endpoint-specific auth from manifest (none|header|bearer|hmac) ara auth loginstores Supabase JWT + refresh token locally andara auth logoutclears that fileAraRuntimeClientusesARA_API_KEYfor session-scoped accessinterfaces.inherit_owner_toolsdefaults tofalse
