OnCell vs Fly Machines
Fly Machines are lightweight VMs you can start and stop via API. OnCell is sandboxed environments with storage, database, and search already inside.
The core difference
Fly Machines give you fast-starting containers with persistent volumes. You bring your own application, your own database, your own everything. They're flexible — you can run anything — but you're building the agent infrastructure yourself.
OnCell gives you an opinionated environment purpose-built for AI agents. You get storage, a database, search, streaming, crash recovery, and per-user isolation out of the box. You write the agent logic — one file — and everything else is handled.
Feature comparison
| Feature | OnCell | Fly Machines |
|---|---|---|
| What you get | Environment with storage, DB, search | Bare container + optional volume |
| Setup | One API call | Dockerfile + fly.toml + volumes config |
| Per-user isolation | Built-in — one env per user | One Machine per user (you manage) |
| Storage | Built-in NVMe (0ms) | Persistent volumes (network-attached) |
| Database | Built-in SQLite per user | Not included |
| Search | Built-in full-text + vector | Not included |
| Streaming | Built-in SSE | Custom implementation |
| Pause / resume | Auto-pause, 200ms resume | Stop/start via API, ~1-3s |
| Crash recovery | Journal-based, auto-resume | Restart from scratch |
| Custom domains | Built-in with auto SSL | Fly proxy + certs |
| Docker required | No | Yes |
| Pricing | $0.10/hr, $0.003/hr paused | Per-second, shared-1x ~$0.005/hr |
When to use Fly Machines
Fly Machines are the right choice when you need full control over the container, want to run any Docker image, or need global edge deployment. If you're building something that doesn't fit the AI agent pattern, Fly gives you maximum flexibility.
When to use OnCell
OnCell is the right choice when you want to ship an AI agent without building infrastructure. You skip the Dockerfile, the volume configuration, the database setup, and the search index. Your agent code calls ctx.store, ctx.db, ctx.search and it works.
Try OnCell
One API call creates a sandboxed environment with storage, database, and search.