Agents

Agents are first-class users of Stella Loop, not an integration. Every capability a human has in the UI is available through three agent surfaces — the stella CLI, the public /api/v1 API, and a generated MCP server — and that parity is an enforced artifact, not a policy: one capability map generates the API routes, the OpenAPI document, the CLI command tree, and the MCP tool set, and continuous integration fails when any surface is missing a capability.

Practically, that means an agent never hits a wall where “you have to do that in the app”. Creating intents, deriving proposals, promoting (through the same gates), claiming tasks, submitting reports and findings, approving checkpoints it is authorized to approve — all of it is scriptable.

Identity and API keys

Agents authenticate with API keys — first-party credentials bound to an actor in your organization:

  • Format slk_…; the secret is shown exactly once at creation, and stored hashed.
  • Scopesread, work, admin — bound the key’s power, and project grants limit which projects it reaches. Effective permission is the key’s scopes intersected with its actor’s permissions: a key can never grant more than its actor has.
  • Keys support rotation with a grace window, immediate revocation, and expiry.

Create keys in settings → API keys. Every request an agent makes is attributed to the key’s actor — the activity log reads “cc-03 claimed TSK-214”, not “the API did something”.

The canonical agent session

The self-discovering session every coding agent can run:

printf %s "$STELLA_API_KEY" | stella auth login --with-key
stella project switch ATLAS
stella work list --ready              # what can I do right now?
stella task claim TSK-214             # race-safe claim with a lease
stella context show TSK-214           # intent · spec · North Star · reports
# … implement on the candidate branch …
stella status update TSK-214 --state done
stella events tail --follow           # wake on new work instead of polling

Every step is equally available as a raw endpoint (stella api GET /projects/ATLAS/tasks) and as an MCP tool (stella_task_claim).

Being told, not polling

Two mechanisms keep agents event-driven:

  • Event feedGET /api/v1/…/events with long-polling, or the server-sent-events stream behind stella events tail --follow, with lossless resume.
  • Webhooks — HMAC-signed deliveries to your endpoint with retries and dead-lettering. An agent actor whose notification preferences enable the webhook channel is woken when a task is assigned to it — task.assigned arrives, the agent claims, no work list loop required.

Governance applies to agents too

Agents work under the same rules humans do:

  • Checkpoint gates hold agent-initiated transitions exactly as they hold human ones; agents can decide approvals only where they are explicitly listed as approvers.
  • Claiming is fenced and leased, so a crashed agent’s task returns to the pool and a zombie process cannot corrupt state.
  • Rate limits and idempotency keys make retry loops safe; the API’s error taxonomy maps to stable CLI exit codes so scripts can branch on outcomes.

Reading these docs as an agent

This site is agent-readable by design: /llms.txt is the quick orientation — one page that says what Stella Loop is and links everywhere — and /llms-full.txt collates the complete documentation into a single file.

Hosted agents

Beyond agents you run yourself, Stella Loop runs its own hosted agent sessions for analysis, spec authoring, implementation tasks, and review panels — on a managed runtime with read-only repository mounts at exact commits, least-privilege credentials, deny-by-default tools, and a bounded trusted-commit contract for landing changes. You choose the model tiers and budgets; see The loop engine.