Quickstart
This walks you through the hosted path — fastest way from zero to a running agent. If you want to self-host instead, jump to Self-host → Overview.
Prerequisites
Section titled “Prerequisites”- A web browser
curl(or Postman, or any HTTP client)- About 5 minutes
-
Create an account.
Go to app.openma.dev and sign up with email, email-OTP, or Google. Your tenant is created automatically on first sign-in — no manual setup.
-
Create an API key.
In the Console, open API Keys → New key. Copy it now; you won’t see it again.
Terminal window export OMA_BASE_URL="https://app.openma.dev"export OMA_API_KEY="oma_..." # the key you just copied -
Create your first agent.
Terminal window curl -X POST "$OMA_BASE_URL/v1/agents" \-H "x-api-key: $OMA_API_KEY" \-H "Content-Type: application/json" \-d '{"name": "hello-agent","model": "claude-sonnet-4-6","system": "You are a friendly assistant. Keep replies under 3 sentences.","tools": []}'Save the returned
id— you’ll need it next. -
Start a session and stream a turn.
Terminal window AGENT_ID="agent_..." # from previous stepENV_ID="env_..." # any environment in your tenant; create one in the Console if you don't have one yetcurl -X POST "$OMA_BASE_URL/v1/sessions" \-H "x-api-key: $OMA_API_KEY" \-H "Content-Type: application/json" \-d "{ \"agent\": \"$AGENT_ID\", \"environment_id\": \"$ENV_ID\", \"title\": \"hello\" }"The response includes a session
id. Post a user turn AND stream the reply token-by-token in one shot:Terminal window SESSION_ID="sess_..."curl -N -X POST "$OMA_BASE_URL/v1/sessions/$SESSION_ID/messages" \-H "x-api-key: $OMA_API_KEY" \-H "Content-Type: application/json" \-d '{ "content": "What is 2+2?" }'You’ll see Server-Sent Events for the user echo, every model token, every tool call, and every tool result. The connection auto-closes when the turn finishes (
session.status_idle). For long-lived sessions useGET /v1/sessions/$SESSION_ID/events/streaminstead — never closes, replays history on connect. -
Check it in the Console.
Back in app.openma.dev, open Sessions → click your new session. You’ll see the full event stream, including the model’s reply.