Skip to main content
This page is intentionally minimal: learn the core primitives, then build the smallest bot that runs on a schedule.

Core primitives

Think in three layers:
  1. App definition
    • App(...) creates your app manifest (name, slug, workflows, runtime settings).
  2. Workflow declaration
    • @app.subagent(...) for the main “agent-style” workflows.
    • @app.hook(...) for explicit event/scheduler workflows.
  3. Execution
    • run_cli(app) gives you deploy, run, events, setup, and invite.

Smallest hello-world cron bot

Create hello_cron.py:
from ara_sdk import App, cron, run_cli

app = App("Hello Cron Bot")

@app.hook(
    id="hello-cron",
    event="scheduler.hello",
    task="Log hello from the cron bot.",
    schedule=cron("0 * * * *"),
)
def hello_cron():
    """Runs every hour."""

if __name__ == "__main__":
    run_cli(app)
Run it:
python3 hello_cron.py deploy
python3 hello_cron.py run --workflow hello-cron
python3 hello_cron.py setup

What this creates behind the scenes

  • One app manifest with one workflow (id: hello-cron)
  • Trigger type normalized to cron
  • A runtime key file (.runtime-key.local) after deploy
  • A callable workflow you can invoke manually with run

Next pages

Quickstart

End-to-end local setup + deploy/run/events flow.

SDK Reference

Full implementation-level Python SDK reference.

Investor Bot Example

Meeting-booking subagent app used in current setup.

All SDK Examples

Full set of starter projects.