Sessions & profiles
Session-bound agent profiles with static skills. Create, message, compress context, end — all over REST.
Agent-native · API-first
Orbita is not a chat app for humans. It is a session-based HTTP API for AI orchestrators — structured turns, scoped memory, tools, trajectory, and scheduling without WhatsApp bridges or desktop GUIs.
# Create session → send structured turn
curl -X POST $API/v1/sessions \
-H "Authorization: Bearer $KEY" \
-H "x-orbita-client-id: my-project" \
-d '{"agent_profile":"default"}'
curl -X POST $API/v1/sessions/$ID/messages \
-H "Authorization: Bearer $KEY" \
-H "x-orbita-client-id: my-project" \
-d '{"input":{"type":"text","text":"..."}}'
Mature agent frameworks optimize for humans in chat channels. Orbita optimizes for machines as clients — the same way you would design an internal platform API, not a product landing page with a text box.
TypeScript monorepo — lane packages composed into a single API host.
MiniMax-M3 primary, Anthropic failover, Zeabur deploy from
main.
Session-bound agent profiles with static skills. Create, message, compress context, end — all over REST.
pgvector semantic memory per client_id. Tool registry (HTTP, JSON helpers) with credential references, not inline secrets.
Structured execution log per session, replay API, cron/webhook scheduler, per-key rate limits.
API key + allowed client_id allow-list. Memory and
sessions scoped to the declared client, enforced server-side.
Clone the repo, run Postgres locally, set env vars, and hit
/v1/health. Production API:
api.get-orbita.com.
pnpm install · docker compose up -d postgres
.env.example — DATABASE_URL, ORBITA_ADMIN_TOKEN, ORBITA_SECRETS_KEY, LLM keys.
pnpm dev → http://127.0.0.1:3000/v1/health
/admin — create API keys, credentials, HTTP domain policy. See docs/self-host.md.
/v1/admin/api-keys; bind allowed_client_ids.
./scripts/agent-verify.sh · ./scripts/smoke-prod.sh for production.
Typical flows after self-hosting or using the production API. Replace
API_KEY and CLIENT_ID with your values.
Create a session, send a message that uses the echo tool, then read trajectory.
POST /v1/sessions {"agent_profile":"default"}
POST /v1/sessions/{id}/messages
"Use echo with text HELLO"
GET /v1/sessions/{id}/trajectory
Use research profile with http_get on allowed domains. Store API keys in the credential vault via /admin.
PUT /v1/memories/{key} then query in later sessions under the same client_id.
OpenAPI at /v1/openapi.json. Auth:
Authorization: Bearer <api_key> and
x-orbita-client-id on every request.
GET /v1/health · POST/GET /v1/sessions · POST /v1/sessions/{id}/messages
PUT/GET /v1/memories · POST /v1/admin/api-keys · credentials vault
GET /v1/sessions/{id}/trajectory · GET /v1/sessions/{id}/trajectory/replay
Full design spec: ORBITA_DESIGN.md · Architecture: product-architecture.md