Skip to content

Developer platform

Build agents your way.

Use our runtime, tool registry and security layer — and keep complete control over your agent logic. No graph to conform to, no chain abstraction, no framework you have to adopt. An agent is your code with a manifest describing what it may do.

The Builder plan is free and includes the full sandbox. No card, and nothing it can reach.

An agent, complete

yaml
name: accounts-receivable
purpose: Follow up overdue customer balances
owner: role://finance-manager
trigger: { schedule: 'weekdays 08:00' }
tools:
  - { call: invoice.get, grant: allow }
  - { call: mail.send, grant: allow }
  - { call: invoice.credit, grant: deny }
approvals:
  - when: overdue_days > 30
    decider: role://finance-manager
limits: { emails_per_day: 100, model_cost_month: 120 }
network: tools-only

What the platform does so you do not have to.

Identity, permission checks, secret injection, rate limits, retries, network policy, durable state, audit records and cost accounting. None of it is interesting to reimplement and all of it is expensive to get wrong.

  • SDKs for Python and TypeScript, at feature parity
  • A full HTTP API — the console has no private endpoints
  • A CLI built for the loop you actually work in
  • Your own services exposed as permissioned capabilities
  • Declarative manifests, reviewable in a pull request
  • An isolated sandbox with synthetic data and mock tools
  • A secrets vault, scoped by agent, environment and tool
  • Structured logs, traces and run timelines
  • Evaluation suites that run in your pipeline
  • Versioning, promotion and one-command rollback

What the platform will not let you do.

You cannot widen an agent’s permissions from code at runtime. Granting a capability is a manifest change and a review, which is occasionally inconvenient and is the point — a platform where an agent can grant itself something has no permission model.

You cannot grant a refused capability. Refunds, deletions, permission changes and contract issuance are not manifest keys, and writing one produces a validation error naming it at deploy time rather than a surprise at runtime.

You cannot approve your own agent’s requests with an API key. An approval names a person or a role, always, because the point of an approval is that a person decided.

There is no offline mode that skips permission checks. An agent running on your laptop against production capabilities is checked exactly as it would be in production — an agent that behaves differently in the two places is one you cannot trust in either.

Give AI a job.

Build an agent, choose what it can access, define what it may do, and deploy it to work safely across your business.

No code required · Full SDKs and API · Stop any agent instantly · [email protected]