# Celesto (formerly SmolVM) vs Sprites

> Celesto scores 68 (B) to Sprites's 65.5 (B) for code sandboxes. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/celesto-vs-sprites
- Markdown: https://www.anchorterminal.com/compare/celesto-vs-sprites.md (~4,950 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-07

Celesto (formerly SmolVM) scores 68 (B) on agent readiness against Sprites's 65.5 (B), and leads in 5 of 7 scored categories. Sprites leads on reliability and security & auth. Both do code sandboxes.

- Celesto (formerly SmolVM): grade B, 68/100, rank #298 of 1486. Markdown https://www.anchorterminal.com/tools/celesto.md · JSON https://www.anchorterminal.com/api/v1/tools/celesto.json
- Sprites: grade B, 65.5/100, rank #419 of 1486. Markdown https://www.anchorterminal.com/tools/sprites.md · JSON https://www.anchorterminal.com/api/v1/tools/sprites.json
- Best code execution sandboxes for AI agents: https://www.anchorterminal.com/best/code-sandboxes/index.md
- All 231 sandboxes comparisons: https://www.anchorterminal.com/compare/code-sandboxes/index.md

## Which one, for what

### Celesto (formerly SmolVM) (B)

Good for: Local microVM sandboxes for agent code, browsers and desktops on Linux and macOS, with a path to a hosted cloud.

Ahead on:
- Schema & documentation, 85 against 74
- Payments & pricing, 60 against 40

Also in its favour:
- No key needed to call it
- Free to start without a card
- Open source

Watch for: Version 0.1.13 and declared pre-1.0 in SECURITY.md, with the TypeScript SDK an alpha installed from a GitHub tarball

### Sprites (B)

Good for: Agents that need a long-lived machine with installed tools and files kept between sessions, and rollback by checkpoint.

Ahead on:
- Reliability, 80 against 66
- Security & auth, 61 against 52

Watch for: Five partial Sprites incidents on the status page since 30 August 2026, including 7 hours 28 minutes of intermittent API failures on 23 September and 75 minutes of unreachable Sprite URLs on 11 October


## Why the edge

### Payments & pricing: Celesto (formerly SmolVM) +20

- Celesto (formerly SmolVM) (60): Read with the self-hosted rule, scoring the hosted option for the price lines. No x402, MPP or L402 (0 of 40). Celesto Cloud publishes hourly prices for six sizes without a login (20). A one-time $5 Micro credit needs no card, and the local SDK is free (20). The graded local SDK installs from PyPI and runs with no account, so an agent needs no signup (20). Cloud use needs a browser signup and a card top-up. Total 60.
- Sprites (40): No x402, MPP or L402 (0). Unit prices are public without a login, $0.0385 a CPU-hour, $0.021875 a GB-hour of memory, $0.000683 a GB-hour of hot storage and $0.000027 a GB-hour of cold storage (20). The product page and the pricing page now say every new user gets a $1 free trial with no credit card, invoices under $5 are waived, and new organisations get a $30 trial credit (20; was 10). A person signs up with a Fly.io account in a browser and creates the token (0). 0 + 20 + 20 + 0 = 40.

### Reliability: Sprites +14

- Celesto (formerly SmolVM) (66): Read with the local-software lines, because the graded surface runs on the owner's machine. Installs from PyPI as `celesto` with Python 3.11 or newer on Linux and macOS stated, plus an install script (20). The repository has pytest, e2e, lint, TypeScript and smoke-test workflows and 38 test packages, but GitHub's API answered with a rate limit, so no run result was read (15 of 25, unchecked). 22 open issues and pull requests against about 188 commits in 90 days. The open bugs include a snapshot restore that can lose a VM's disk if interrupted and a thread-safety issue with five replies (18 of 25). A dated changelog with Security, Fixed, Added and Removed sections, and the rename to Celesto marked as a breaking release, though versions stay below 1.0 (13 of 15). Pre-1.0 per SECURITY.md (0). Total 66.
- Sprites (80): Hosted lines. status.flyio.net runs on incident.io with history and a Sprites component (20). Five Sprites incidents since 6 August, each partial in its own text, so minor under this run's reading. Deletion jobs failed for 47 minutes on 30 August, "a subset of Sprites users" had API errors for 1 hour 38 minutes on 2 September, intermittent API failures starting near SJC ran 7 hours 28 minutes on 23 September, creates failed in regions outside Europe for 28 minutes on 8 October, and "some or all" Sprite URLs on sprites.app were unavailable for about 75 minutes on 11 October after a certificate error (20; was 5, which isn't a checklist value). The product page gives creation limits of 10 a minute on pay-as-you-go and 60 to 240 on plans, and 100 running Sprites on the Hero plan. No general request limits were found in the docs (10). The docs and the OpenAPI document list no 429 response and no idempotency keys; the Go SDK reads `Retry-After` and `X-RateLimit` headers on a 429 and names a `sprite_creation_rate_limited` code, so Retry-After handling alone (10; was 7). Fly.io's published Service Level Agreement applies to the Services for customers on an Enterprise plan, with 99.9 per cent monthly availability and service credits of 10 to 30 per cent, and excludes no product, so it is read as covering Sprites (10; was 5, which isn't a checklist value). No beta or preview label was found on Sprites, so the surface is read as generally available, though the API document is version 0.1.12 and the SDKs are 0.x (10; was 8, which isn't a checklist value). 20 + 20 + 10 + 10 + 10 + 10 = 80.

### Schema & documentation: Celesto (formerly SmolVM) +11

- Celesto (formerly SmolVM) (85): Read as an SDK and CLI. The repository ships an OpenAPI document for the local server (24 operations) and the cloud API (171 operations), from which the TypeScript client is generated (25). llms.txt at celesto.ai, plus Markdown docs in the repository (10). The README's runtime table says when to use each runtime, and the automation section says to prefer `exec` and keep `shell`, `ssh` and `desktop` for interactive work (14 of 20). Network modes are closed values (`open`, `off`, `public`, `restricted`) and the SDK takes typed keyword arguments, though `internet_settings` is a plain dict (11 of 15). Examples directory, a JSON envelope for every command and documented cloud error fields such as `required_scope`, without a full error catalogue (12 of 15). Dated changelog and tags, pre-1.0 (13 of 15). Total 85.
- Sprites (74): A public OpenAPI 3.1 document with 44 operations and 59 schemas, plus an AsyncAPI file for the WebSocket calls (25). llms.txt and a Markdown copy of every docs page (10). Concept pages say when to use Services, Tasks and checkpoints and when not to, while operation descriptions are one line each (15). Request bodies have required fields and examples, but the document has 6 enums and no schema for error bodies (10). 116 examples in the OpenAPI document. Error responses are a status code and a short phrase, and the product page's create and exec examples disagree with the OpenAPI document (8). Paths are versioned under `/v1`. No API changelog was found, and only the Python SDK keeps a changelog file (6).

### Security & auth: Sprites +9

- Celesto (formerly SmolVM) (52): Framework reading for local software. No credential is needed for local use, and the local API server and dashboard each require a bearer token, and cloud keys carry named permissions (22 of 30). Each computer has its own guest kernel, browser and display access uses capability URLs with a read-only option, and raw VNC is off. Against that, outbound networking is open by default and the restricting modes are opt-in (12 of 20). The security doc warns against giving connection URLs to a model as page content, but there is no guidance on treating command or page output as untrusted (5 of 15). `computer logs` shows startup output, with no audit log of commands (5 of 15). SECURITY.md with GitHub private vulnerability reporting and a supported-versions table, Security sections in the changelog, no security.txt, bug bounty or certification (8 of 20). Total 52.
- Sprites (61): Bearer tokens are created and removed at sprites.dev/account per organisation, with no scopes found. The MCP connector uses OAuth, and its default token can only create a capped number of Sprites under a name prefix (22). Sprite URLs are private by default, Connectors deny by default and can limit provider paths, and a privileges policy can drop capabilities. The network allowlist is opt-in, so egress is open by default (15). Connectors keep provider credentials out of the Sprite and the MCP page describes what its tools can destroy. No prompt-injection guidance was found (9). No audit log of API calls was found in the reviewed documentation (0). fly.io now publishes a security.txt (Contact security@fly.io, Expires 2027-10-22, Policy docs.fly.io/security), and the policy says reports are acknowledged within 3 business days. SOC 2 Type 2 and named third-party penetration testers. No bug bounty, which the policy confirms, and no advisories for the Sprites SDKs in OSV (15; was 13). 22 + 15 + 9 + 0 + 15 = 61.

## Score by category

| Category | Weight | Celesto (formerly SmolVM) | Sprites | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 66 | 80 | Sprites +14 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 85 | 74 | Celesto (formerly SmolVM) +11 |
| Agent ergonomics | 13% (16.2 this run) | 69 | 68 | Celesto (formerly SmolVM) +1 |
| Security & auth | 14% (17.5 this run) | 52 | 61 | Sprites +9 |
| Payments & pricing | 10% (12.5 this run) | 60 | 40 | Celesto (formerly SmolVM) +20 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 81 | 80 | Celesto (formerly SmolVM) +1 |
| Transparency & trust | 7% (8.8 this run) | 70 | 66 | Celesto (formerly SmolVM) +4 |
| Negative events | ≤15 | 0 | -2 | |
| **Total** | | **68 · B** | **65.5 · B** | |

## Facts side by side

| Fact | Celesto (formerly SmolVM) | Sprites |
| --- | --- | --- |
| Kind | SDK + MCP | HTTP API |
| Vendor | Celesto AI, Inc. | Fly.io |
| Hosted endpoint | no (local only) | no (local only) |
| Transports |  | HTTP |
| Auth | None | API key |
| Pricing | Freemium | Pay per use |
| x402 | no | no |
| Licence | Apache-2.0 | Proprietary service under the Fly.io Terms of Service. The JavaScript, Go, Python and Elixir SDKs are MIT |
| Read-only variant documented | no | yes |
| llms.txt | yes | yes |
| Last release | 2026-11-05 | 2026-10-20 |
| Terms last updated | 2026-10-30 | 2026-04-29 |
| Privacy policy last updated | 2026-10-30 | 2026-09-24 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | not found in the text | not found in the text |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | not found in the text | not found in the text |
| Popularity | 1.1k stars, 699 PyPI/wk | 158k npm/wk, 59k PyPI/wk |

## How the scores have moved

### Celesto (formerly SmolVM)

No score change since it was listed.

### Sprites

- +6.9 on 4 November 2026 (C to B): security, new evidence, correction
- +0.3 on 27 October 2026: checklist

## Verdicts

**Celesto (formerly SmolVM).** Celesto runs each agent task in a local Firecracker or QEMU microVM with its own kernel, driven by a CLI with a stable JSON envelope and a Python SDK, free under Apache-2.0. It is pre-1.0, renamed from SmolVM on 19 September 2026, sends usage telemetry after a first-use notice, and leaves outbound networking open unless a mode is set.

**Sprites.** A Sprite keeps a 100 GB ext4 disk between runs, bills compute only while active and can be checkpointed and restored through a published OpenAPI contract. The status page records five partial Sprites incidents since August, one lasting over seven hours, and outbound network access is unrestricted until a policy is set.

## Before you call either

### Celesto (formerly SmolVM)

1. Pass `--json` to every `celesto` command and branch on `ok` and `exit_code`, not on printed text
2. Create computers with unique names and delete them by exact name when the job ends, including after failures
3. Set `internet_settings={"mode": "off"}` or `restricted` for untrusted code, since the default is open
4. Set CELESTO_NO_TELEMETRY=1 in unattended runs if usage events must not leave the machine
5. Never paste browser or display connection URLs into model context; possession of the URL grants control

### Sprites

1. Create a token at sprites.dev/account after a browser signup, and send it as `Authorization: Bearer <token>` to `https://api.sprites.dev`
2. Follow the OpenAPI document, not the product page example. Create with `POST /v1/sprites` and a JSON `name`, and run commands with `POST /v1/sprites/{name}/exec` using `cmd` query parameters
3. Set a network policy with `POST /v1/sprites/{name}/policy/network` before running untrusted code. Egress is open until one is set
4. Processes started by exec stop on a cold wake. Define a Service for anything that must answer the request that wakes the Sprite
5. Create a checkpoint before a restore. Restoring replaces the filesystem, ends active sessions and keeps no copy of the replaced state
6. Sprite creation is limited to 10 a minute on pay-as-you-go. The Go SDK reads `Retry-After` and the error code `sprite_creation_rate_limited` on a 429
7. Delete Sprites you no longer need. An idle Sprite still bills cold storage for the bytes it holds
8. Set `SPRITES_CLIENT_SIGNALS=0` before the first SDK call if your operator doesn't want client-signal headers sent

## Questions

### Which is better for AI agents, Celesto (formerly SmolVM) or Sprites?

Celesto (formerly SmolVM) scores 68 (B) on agent readiness against Sprites's 65.5 (B), and leads in 5 of 7 scored categories. Sprites leads on reliability and security & auth.

### Can an agent call Celesto (formerly SmolVM) and Sprites without installing anything?

No hosted endpoint is listed for Celesto (formerly SmolVM). No hosted endpoint is listed for Sprites.

### Are Celesto (formerly SmolVM) and Sprites open source?

Celesto (formerly SmolVM) is open source (Apache-2.0). No open-source release is listed for Sprites.


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/celesto-vs-sprites.json, and with the fewest tokens: https://www.anchorterminal.com/compare/celesto-vs-sprites.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "celesto", "b": "sprites"}`. From a terminal: `anchor compare celesto sprites`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/celesto.json and https://www.anchorterminal.com/api/v1/tools/sprites.json

## Other comparisons with Celesto (formerly SmolVM) or Sprites

- [Amazon Bedrock AgentCore Code Interpreter vs Celesto (formerly SmolVM)](https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-celesto.md)
- [Amazon Bedrock AgentCore Code Interpreter vs Sprites](https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-sprites.md)
- [Blaxel Sandboxes vs Celesto (formerly SmolVM)](https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-celesto.md)
- [Blaxel Sandboxes vs Sprites](https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-sprites.md)
- [Celesto (formerly SmolVM) vs Cloudflare Sandbox SDK](https://www.anchorterminal.com/compare/celesto-vs-cloudflare-sandbox-sdk.md)
- [Celesto (formerly SmolVM) vs Daytona](https://www.anchorterminal.com/compare/celesto-vs-daytona.md)
- [Celesto (formerly SmolVM) vs DeltaBox Lite](https://www.anchorterminal.com/compare/celesto-vs-deltabox-lite.md)
- [Celesto (formerly SmolVM) vs Deno Sandbox](https://www.anchorterminal.com/compare/celesto-vs-deno-sandbox.md)
- [Celesto (formerly SmolVM) vs E2B](https://www.anchorterminal.com/compare/celesto-vs-e2b.md)
- [Celesto (formerly SmolVM) vs Freestyle](https://www.anchorterminal.com/compare/celesto-vs-freestyle.md)
- [Celesto (formerly SmolVM) vs InstaVM](https://www.anchorterminal.com/compare/celesto-vs-instavm.md)
- [Celesto (formerly SmolVM) vs Maritime](https://www.anchorterminal.com/compare/celesto-vs-maritime.md)
- [Celesto (formerly SmolVM) vs Microsoft Execution Containers](https://www.anchorterminal.com/compare/celesto-vs-microsoft-execution-containers.md)
- [Celesto (formerly SmolVM) vs Modal Sandboxes](https://www.anchorterminal.com/compare/celesto-vs-modal-sandboxes.md)
- [Celesto (formerly SmolVM) vs Morph Cloud](https://www.anchorterminal.com/compare/celesto-vs-morph-cloud.md)
- [Celesto (formerly SmolVM) vs Offscreen](https://www.anchorterminal.com/compare/celesto-vs-offscreen.md)
- [Celesto (formerly SmolVM) vs SPACE](https://www.anchorterminal.com/compare/celesto-vs-perplexity-space.md)
- [Celesto (formerly SmolVM) vs Runloop Devboxes](https://www.anchorterminal.com/compare/celesto-vs-runloop.md)
- [Celesto (formerly SmolVM) vs Sandbox0](https://www.anchorterminal.com/compare/celesto-vs-sandbox0.md)
- [Celesto (formerly SmolVM) vs Together Code Sandbox](https://www.anchorterminal.com/compare/celesto-vs-together-code-sandbox.md)
- [Celesto (formerly SmolVM) vs Vercel Sandbox](https://www.anchorterminal.com/compare/celesto-vs-vercel-sandbox.md)
- [Cloudflare Sandbox SDK vs Sprites](https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-sprites.md)
- [Daytona vs Sprites](https://www.anchorterminal.com/compare/daytona-vs-sprites.md)
- [Deno Sandbox vs Sprites](https://www.anchorterminal.com/compare/deno-sandbox-vs-sprites.md)
- [E2B vs Sprites](https://www.anchorterminal.com/compare/e2b-vs-sprites.md)
- [Freestyle vs Sprites](https://www.anchorterminal.com/compare/freestyle-vs-sprites.md)
- [InstaVM vs Sprites](https://www.anchorterminal.com/compare/instavm-vs-sprites.md)
- [Maritime vs Sprites](https://www.anchorterminal.com/compare/maritime-vs-sprites.md)
- [Microsoft Execution Containers vs Sprites](https://www.anchorterminal.com/compare/microsoft-execution-containers-vs-sprites.md)
- [Modal Sandboxes vs Sprites](https://www.anchorterminal.com/compare/modal-sandboxes-vs-sprites.md)
- [Morph Cloud vs Sprites](https://www.anchorterminal.com/compare/morph-cloud-vs-sprites.md)
- [Offscreen vs Sprites](https://www.anchorterminal.com/compare/offscreen-vs-sprites.md)
- [SPACE vs Sprites](https://www.anchorterminal.com/compare/perplexity-space-vs-sprites.md)
- [Runloop Devboxes vs Sprites](https://www.anchorterminal.com/compare/runloop-vs-sprites.md)
- [Sandbox0 vs Sprites](https://www.anchorterminal.com/compare/sandbox0-vs-sprites.md)
- [Sprites vs Together Code Sandbox](https://www.anchorterminal.com/compare/sprites-vs-together-code-sandbox.md)
- [Sprites vs Vercel Sandbox](https://www.anchorterminal.com/compare/sprites-vs-vercel-sandbox.md)
- [Agent 37 Cloud vs Celesto (formerly SmolVM)](https://www.anchorterminal.com/compare/agent37-vs-celesto.md)
- [Agent 37 Cloud vs Sprites](https://www.anchorterminal.com/compare/agent37-vs-sprites.md)
- [DeltaBox Lite vs Sprites](https://www.anchorterminal.com/compare/deltabox-lite-vs-sprites.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
