Sandbox Size Tiers, Webhooks UI, and Two-Factor Auth
Templates now support three sandbox sizes, webhooks have a management UI with delivery health, and accounts can be secured with TOTP two-factor authentication.
What's new
Sandbox size tiers
Templates now have a size field that controls CPU, memory, and disk. The default is Medium, the same resources previously available to all runs. Larger sizes let agents take on more demanding work: bigger repos, heavier builds, and test suites that need space to run.
| Size | CPU | RAM | Disk |
|---|---|---|---|
Small (s) | 1 vCPU | 2 GB | 5 GB |
Medium (m) | 2 vCPU | 4 GB | 10 GB |
Large (l) | 4 vCPU | 8 GB | 20 GB |
Set size when creating or updating a template via the API or dashboard. The run response now includes a sandbox object with the resolved size and resource limits.
Migration: All existing templates default to Medium (m). No action required.
Webhooks UI and delivery health tracking
Webhooks can now be created and deleted directly from the dashboard, no API calls needed.
Each webhook shows a delivery health summary: success rate, total deliveries, last delivery timestamp, and failure reason if the most recent delivery failed. Health is tracked over a rolling 7-day window (or 24 hours via ?window=24h).
The GET /v1/webhooks response now includes a health object per webhook with the full delivery metrics.
Multi-factor authentication
Account security is now stronger with TOTP-based MFA. Enable it from Account Settings. Once set up, a 6-digit authenticator code is required at every sign-in.
- Works with any TOTP app (Google Authenticator, Authy, 1Password, etc.)
- 10 single-use backup codes provided at setup, regenerable at any time
- "Trust this browser for 30 days" option to skip 2FA on trusted devices
- Organization owners can see MFA status for each member
Available for email/password accounts. OAuth sign-ins (Google, GitHub) are protected by the provider's own security.
API changes
POST /v1/templates,PATCH /v1/templates/:id: newsizefield ("s" | "m" | "l", default"m")GET /v1/templates,GET /v1/templates/:id: response includessizeandresources(cpuMillis, memoryMi, diskMi)GET /v1/runs/:id: response includessandbox.sizeandsandbox.resourcesGET /v1/webhooks: each item now includes ahealthobject; optional?window=24h|7dquery param (default7d)
Ready to get started?