{
  "data": {
    "a": {
      "slug": "freestyle",
      "name": "Freestyle",
      "vendor": "Freestyle Cloud Inc.",
      "vendorUrl": "https://www.freestyle.sh",
      "kind": "http-api",
      "category": "code-sandboxes",
      "summary": "Freestyle runs full Linux virtual machines for AI agents, with pause and resume that keeps memory, snapshots, private networks and domains. Agents drive it through a REST API, a TypeScript SDK and a CLI from one npm package.",
      "url": "https://www.anchorterminal.com/tools/freestyle",
      "markdownUrl": "https://www.anchorterminal.com/tools/freestyle.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/freestyle.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/freestyle.json",
      "license": "Proprietary service with no published terms of service found. The `freestyle` SDK and CLI package on npm is MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.freestyle.sh/v5",
      "packages": [
        {
          "registry": "npm",
          "name": "freestyle"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer API key in the `Authorization` header, read by the SDK and CLI from `FREESTYLE_API_KEY`. Keys are created after a browser login with `freestyle tokens create`, shown once, and listed and revoked from the CLI. No scopes or expiry on account keys were found. For end users, an identity access token in the `x-freestyle-identity-access-token` header reaches only the VMs and Linux users granted to it, on the exec and terminal routes.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at $0 with 200 vCPU-hours, 400 GiB-hours of memory, 60,000 GiB-hours of storage and 50 GB of transfer a month, up to 10 concurrent VMs, no card needed. Usage beyond that needs Hobby ($50 a month minimum, counted as usage) or Pro ($500). $0.04032 a vCPU-hour, $0.0129 a GiB-hour of memory, $0.000086 a GiB-hour of storage and $0.02 a GB of transfer, metered per second on allocated resources. Enterprise is priced by sales (https://www.freestyle.sh/pricing.md, checked 2026-10-08).",
      "priceSummary": "$0.0403 / vCPU-hr",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the OpenAPI file or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 71758,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.freestyle.sh/docs",
      "llmsTxt": "https://www.freestyle.sh/llms.txt",
      "openapi": "https://www.freestyle.sh/openapi.json",
      "capabilities": [
        "sandbox.code",
        "sandbox.fs",
        "sandbox.persist",
        "sandbox.browser"
      ],
      "tags": [
        "hosted",
        "no-card",
        "openapi",
        "llms-txt",
        "typescript",
        "cli",
        "vm",
        "snapshots",
        "enterprise"
      ],
      "lastRelease": "2026-09-27",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.5,
        "grade": "C",
        "agentReady": false,
        "rank": 520,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 71,
          "payments": 45,
          "reliability": 43,
          "schema": 86,
          "security": 53,
          "transparency": 41
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A public OpenAPI 3.1 file describes 88 operations with a stable error code on every failure, and per-VM identity tokens keep the team API key away from end users. No terms of service, product privacy policy, request rate limit or incident history was found, and the only SDK is TypeScript.",
        "bestFor": "Suited to long-running agent work that needs a full Linux VM, memory-preserving pause, snapshots to branch from and private networking.",
        "strengths": [
          "Public OpenAPI 3.1 file with 88 `/v5` operations, each with a description and named error codes per status",
          "A new VM has no inbound or outbound network access until firewall rules allow it",
          "Identity access tokens limited to granted VMs and Linux users, revocable without rotating the team API key",
          "Pausing keeps memory and disk, and a paused VM bills for storage only",
          "Free plan at $0 with 200 vCPU-hours a month, and per-unit prices published without a login"
        ],
        "weaknesses": [
          "No terms of service or service agreement found on the site, and the privacy policy covers the website only",
          "The status page shows three components with no incident history",
          "No request rate limit, Retry-After guidance or idempotency keys found in the docs or the OpenAPI file",
          "No security.txt, disclosure policy, bug bounty or SOC 2 statement found. Audit logs are Enterprise only",
          "TypeScript is the only SDK, and the CLI repository linked from the site last changed on 22 May 2025"
        ],
        "agentNotes": [
          "Send a `firewall` object on every `POST /v5/vms`. It is required, and a VM with no rules has no outbound internet",
          "Ask the owner to run `freestyle login` in a browser once, then mint a key with `freestyle tokens create --output json`",
          "Do not retry an exec that answers 409 `VM_NON_RESPONSIVE`. The command may already have run",
          "Keep `exec-await` under its 300,000 ms cap and use a PTY session or `x-freestyle-background-after-secs` for longer work",
          "Call the `/v5` paths. The unversioned duplicates in the OpenAPI file are marked deprecated"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.5
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 71,
          "payments": 45,
          "reliability": 43,
          "schema": 86,
          "security": 53,
          "transparency": 20
        },
        "provenanceScore": 62
      },
      "connect": {
        "install": "npm install freestyle@latest  # CLI without installing: npx freestyle@latest --help"
      },
      "letme": {
        "capability": "https://letme.dev/sandbox.code",
        "tool": "https://letme.dev/freestyle"
      },
      "area": "agent-runtime",
      "unitPrices": [
        {
          "item": "vCPU",
          "unit": "vcpu-hour",
          "usd": 0.04032,
          "note": "Memory extra at $0.0129 a GiB-hour. 200 vCPU-hours a month included"
        },
        {
          "item": "Data transfer",
          "unit": "gb",
          "usd": 0.02,
          "note": "50 GB a month included on Free, 500 GB on Hobby and Pro"
        },
        {
          "item": "Hobby plan",
          "unit": "month",
          "usd": 50,
          "note": "Monthly minimum, counted as usage"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 500,
          "note": "Monthly minimum, counted as usage"
        }
      ],
      "provenance": {
        "legalEntity": "Freestyle Cloud Inc.",
        "domain": "freestyle.sh",
        "domainRegistered": "2024-04-11",
        "endpointOnVendorDomain": true,
        "terms": "",
        "privacy": "",
        "statusPage": "https://www.freestyle.sh/status",
        "changelog": "https://www.freestyle.sh/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The privacy policy (last updated 15 June 2025) names Freestyle Cloud Inc. and says it covers the website at freestyle.sh. It is not linked here because it does not govern the product.",
          "No terms of service or service agreement was found. `/terms`, `/tos` and `/legal` answer 404 and the sitemap lists no legal page other than the privacy policy.",
          "The API answers at https://api.freestyle.sh/v5, a freestyle.sh subdomain. One unauthenticated request returned 401 with a `code` and `message`.",
          "www.freestyle.sh/.well-known/security.txt returns 404.",
          "RDAP for freestyle.sh gives a registration date of 2024-04-11 and a transfer on 11 March 2026.",
          "The status page is the vendor's own, with three components and no incident history."
        ],
        "score": 62
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/freestyle.json",
      "live": {
        "slug": "freestyle",
        "probe": {
          "target": "https://api.freestyle.sh/v5",
          "method": "get",
          "lastAt": "2026-10-09T09:26:50.724049791Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 646,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 574,
          "p95ms24h": 596,
          "samples24h": 20,
          "samples30d": 20,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 20,
              "ok": 20
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.freestyle.sh/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:57:56.720133529Z"
        },
        "updatedAt": "2026-10-09T09:26:50.724049791Z"
      }
    },
    "answer": "Freestyle and Sprites score within a point of each other on agent readiness, 58.5 (C) and 58.3 (C). Sprites leads on reliability, security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust.",
    "b": {
      "slug": "sprites",
      "name": "Sprites",
      "vendor": "Fly.io",
      "vendorUrl": "https://fly.io",
      "kind": "http-api",
      "category": "code-sandboxes",
      "summary": "Sprites are hosted Linux microVMs from Fly.io that keep their disk between runs, pause when idle and wake on request. They are driven through a REST API, a CLI, four SDKs or a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/sprites",
      "markdownUrl": "https://www.anchorterminal.com/tools/sprites.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sprites.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sprites.json",
      "repo": "https://github.com/superfly/sprites-js",
      "license": "Proprietary service under the Fly.io Terms of Service. The JavaScript, Go, Python and Elixir SDKs are MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@fly/sprites"
        },
        {
          "registry": "pypi",
          "name": "sprites-py"
        }
      ],
      "auth": "api-key",
      "authNotes": "A bearer token created at sprites.dev/account after signing in with a Fly.io account, sent as `Authorization: Bearer \u003ctoken\u003e` to `https://api.sprites.dev`. Tokens belong to an organisation, and no scopes or expiry were found in the reviewed docs. The CLI signs in through a browser with `sprite org auth` or takes a token with `sprite auth setup --token`. The hosted MCP server uses OAuth with a token restricted by default to a name prefix and a capped number of Sprites.",
      "pricing": "usage",
      "pricingNotes": "$0.0385 a CPU-hour and $0.021875 a GB-hour of memory while a Sprite is active, hot storage at $0.000683 a GB-hour while awake and cold storage at $0.000027 a GB-hour while data is kept. Nothing is charged per Sprite or for bandwidth. New organisations get a $30 trial credit, and whether it needs a card was not established. The product page also describes monthly plans with allowances, of which Hero ($100) and Mythic ($2,000) are priced (https://fly.io/sprites/, https://fly.io/pricing/, checked 2026-10-08).",
      "priceSummary": "$0.0385 / vCPU-hr",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Sprites docs, the OpenAPI document or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 157565,
        "pypiWeekly": 58695,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.fly.io/sprites",
      "llmsTxt": "https://docs.fly.io/llms.txt",
      "openapi": "https://docs.fly.io/sprites/api/openapi.json",
      "capabilities": [
        "sandbox.code",
        "sandbox.fs",
        "sandbox.persist"
      ],
      "tags": [
        "hosted",
        "usage-priced",
        "microvm",
        "persistent",
        "checkpoints",
        "openapi",
        "cli",
        "typescript",
        "python",
        "go",
        "elixir",
        "mcp",
        "llms-txt",
        "status-page"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.3,
        "grade": "C",
        "agentReady": false,
        "rank": 528,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 11,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 80,
          "payments": 30,
          "reliability": 55,
          "schema": 74,
          "security": 59,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-10-08: the Fly.io pricing page says of Sprites \"No plans and no tiers\", while the Sprites product page read the same day describes paid plans (Hero at $100 a month, Mythic at $2,000) that carry usage allowances and set concurrency and creation-rate limits. Prices for the other named plans were not found. 2 points. https://fly.io/pricing/ and https://fly.io/sprites/"
        ],
        "verdict": "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 four Sprites incidents in the last 90 days, one lasting over seven hours, and outbound network access is unrestricted until a policy is set.",
        "bestFor": "Agents that need a long-lived machine with installed tools and files kept between sessions, and rollback by checkpoint.",
        "strengths": [
          "The filesystem persists across pauses, and compute billing stops about 30 seconds after activity ends, per the lifecycle docs",
          "A public OpenAPI 3.1 document covers 44 operations on sprites, exec, files, checkpoints, services and policies, with an AsyncAPI file for the WebSocket calls",
          "Connectors hold third-party credentials outside the Sprite, deny access by default and can limit which provider paths a Sprite may call",
          "Checkpoints are copy-on-write snapshots of the writable filesystem, and the last five are mounted read-only inside the Sprite",
          "Unit prices are public, $0.0385 a CPU-hour, $0.021875 a GB-hour of memory and about $0.50 a GB-month of hot storage",
          "Official SDKs for JavaScript, Go, Python and Elixir are MIT, each with releases in September or October 2026"
        ],
        "weaknesses": [
          "Four Sprites incidents on the status page in 90 days, including a partial outage of 7 hours 28 minutes on 23 September 2026 and failed creates outside Europe for 28 minutes on 8 October",
          "Outbound network access is unrestricted by default. The DNS allowlist is opt-in and set from outside the Sprite",
          "The product page creates a Sprite with `PUT /v1/sprites/my-sprite` and a JSON `command` body, while the OpenAPI document creates with `POST /v1/sprites` and passes `cmd` as a query parameter",
          "No API changelog, deprecation policy or error-code reference was found in the reviewed documentation",
          "The pricing page says Sprites have no plans and no tiers, while the product page describes paid plans that set concurrency and creation-rate limits",
          "No scopes were found for API tokens created at sprites.dev/account. Only the MCP connector's OAuth token is restricted by default"
        ],
        "agentNotes": [
          "Create a token at sprites.dev/account after a browser signup, and send it as `Authorization: Bearer \u003ctoken\u003e` to `https://api.sprites.dev`",
          "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",
          "Set a network policy with `POST /v1/sprites/{name}/policy/network` before running untrusted code. Egress is open until one is set",
          "Processes started by exec stop on a cold wake. Define a Service for anything that must answer the request that wakes the Sprite",
          "Create a checkpoint before a restore. Restoring replaces the filesystem, ends active sessions and keeps no copy of the replaced state",
          "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",
          "Delete Sprites you no longer need. An idle Sprite still bills cold storage for the bytes it holds"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.3
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 80,
          "payments": 30,
          "reliability": 55,
          "schema": 74,
          "security": 59,
          "transparency": 54
        },
        "provenanceScore": 64
      },
      "connect": {
        "install": "curl -fsSL https://sprites.dev/install.sh | sh  # CLI. SDKs: npm install @fly/sprites, pip install sprites-py",
        "http": "curl -X POST https://api.sprites.dev/v1/sprites -H \"Authorization: Bearer $SPRITES_TOKEN\" -H \"Content-Type: application/json\" -d '{\"name\": \"my-sprite\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/sandbox.code",
        "tool": "https://letme.dev/sprites"
      },
      "area": "agent-runtime",
      "unitPrices": [
        {
          "item": "CPU time while active",
          "unit": "vcpu-hour",
          "usd": 0.0385,
          "note": "Memory extra at $0.021875 a GB-hour"
        },
        {
          "item": "Hot storage while the Sprite is awake",
          "unit": "gb-month",
          "usd": 0.5,
          "note": "Billed at $0.000683 a GB-hour, on bytes written"
        },
        {
          "item": "Cold storage while data is kept",
          "unit": "gb-month",
          "usd": 0.02,
          "note": "Billed at $0.000027 a GB-hour"
        }
      ],
      "provenance": {
        "legalEntity": "Fly.io, Inc.",
        "domain": "fly.io",
        "domainRegistered": "2004-07-15",
        "endpointOnVendorDomain": false,
        "terms": "https://fly.io/legal/terms-of-service/",
        "privacy": "https://fly.io/legal/privacy-policy/",
        "statusPage": "https://status.flyio.net",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Terms of Service (effective 29 April 2026) name Fly.io, Inc. and cover the website and all products and services reached through it. No separate Sprites terms were found.",
          "The Privacy Statement is effective 24 September 2026. The sub-processor list was last updated the same day.",
          "The API is at api.sprites.dev and Sprite URLs are on sprites.app, second domains of the vendor's. sprites.dev redirects to fly.io/sprites, and RDAP gives its registration date as 2025-06-03.",
          "RDAP for fly.io gives a registration date of 2004-07-15.",
          "fly.io/.well-known/security.txt returned 404. The security docs give security@fly.io for reports.",
          "No changelog for the Sprites API or environment was found. The Python SDK repository keeps a CHANGELOG.md."
        ],
        "score": 64
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/sprites.json",
      "live": {
        "slug": "sprites",
        "vendorStatus": {
          "page": "https://status.flyio.net",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T09:25:33.929738149Z"
        },
        "updatedAt": "2026-10-09T09:25:33.929738149Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Freestyle Cloud Inc.",
        "b": "Fly.io",
        "name": "Vendor"
      },
      {
        "a": "https://api.freestyle.sh/v5",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service with no published terms of service found. The `freestyle` SDK and CLI package on npm is MIT",
        "b": "Proprietary service under the Fly.io Terms of Service. The JavaScript, Go, Python and Elixir SDKs are MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-27",
        "b": "2026-10-06",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2026-04-29",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-09-24",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "72k npm/wk",
        "b": "158k npm/wk, 59k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Freestyle and Sprites score within a point of each other on agent readiness, 58.5 (C) and 58.3 (C). Sprites leads on reliability, security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Freestyle or Sprites?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Freestyle and Sprites need an API key?"
      },
      {
        "answer": "Freestyle has a hosted endpoint at https://api.freestyle.sh/v5. No hosted endpoint is listed for Sprites.",
        "question": "Can an agent call Freestyle and Sprites without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 86 against 74",
          "Payments \u0026 pricing, 45 against 30"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Free to start without a card"
        ],
        "goodFor": "Suited to long-running agent work that needs a full Linux VM, memory-preserving pause, snapshots to branch from and private networking.",
        "slug": "freestyle",
        "watchFor": "No terms of service or service agreement found on the site, and the privacy policy covers the website only"
      },
      {
        "aheadOn": [
          "Reliability, 55 against 43",
          "Security \u0026 auth, 59 against 53",
          "Maintenance \u0026 community, 80 against 71",
          "Transparency \u0026 trust, 59 against 41"
        ],
        "also": null,
        "goodFor": "Agents that need a long-lived machine with installed tools and files kept between sessions, and rollback by checkpoint.",
        "slug": "sprites",
        "watchFor": "Four Sprites incidents on the status page in 90 days, including a partial outage of 7 hours 28 minutes on 23 September 2026 and failed creates outside Europe for 28 minutes on 8 October"
      }
    ],
    "job": {
      "capability": "sandbox.code",
      "name": "Sandbox code"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-freestyle.json",
        "title": "Amazon Bedrock AgentCore Code Interpreter vs Freestyle",
        "url": "https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-freestyle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-sprites.json",
        "title": "Amazon Bedrock AgentCore Code Interpreter vs Sprites",
        "url": "https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-sprites"
      },
      {
        "json": "https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-freestyle.json",
        "title": "Blaxel Sandboxes vs Freestyle",
        "url": "https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-freestyle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-sprites.json",
        "title": "Blaxel Sandboxes vs Sprites",
        "url": "https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-sprites"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-freestyle.json",
        "title": "Cloudflare Sandbox SDK vs Freestyle",
        "url": "https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-freestyle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-sprites.json",
        "title": "Cloudflare Sandbox SDK vs Sprites",
        "url": "https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-sprites"
      },
      {
        "json": "https://www.anchorterminal.com/compare/daytona-vs-freestyle.json",
        "title": "Daytona vs Freestyle",
        "url": "https://www.anchorterminal.com/compare/daytona-vs-freestyle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/daytona-vs-sprites.json",
        "title": "Daytona vs Sprites",
        "url": "https://www.anchorterminal.com/compare/daytona-vs-sprites"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deno-sandbox-vs-freestyle.json",
        "title": "Deno Sandbox vs Freestyle",
        "url": "https://www.anchorterminal.com/compare/deno-sandbox-vs-freestyle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deno-sandbox-vs-sprites.json",
        "title": "Deno Sandbox vs Sprites",
        "url": "https://www.anchorterminal.com/compare/deno-sandbox-vs-sprites"
      },
      {
        "json": "https://www.anchorterminal.com/compare/e2b-vs-freestyle.json",
        "title": "E2B vs Freestyle",
        "url": "https://www.anchorterminal.com/compare/e2b-vs-freestyle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/e2b-vs-sprites.json",
        "title": "E2B vs Sprites",
        "url": "https://www.anchorterminal.com/compare/e2b-vs-sprites"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freestyle-vs-microsoft-execution-containers.json",
        "title": "Freestyle vs Microsoft Execution Containers",
        "url": "https://www.anchorterminal.com/compare/freestyle-vs-microsoft-execution-containers"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freestyle-vs-modal-sandboxes.json",
        "title": "Freestyle vs Modal Sandboxes",
        "url": "https://www.anchorterminal.com/compare/freestyle-vs-modal-sandboxes"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freestyle-vs-morph-cloud.json",
        "title": "Freestyle vs Morph Cloud",
        "url": "https://www.anchorterminal.com/compare/freestyle-vs-morph-cloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freestyle-vs-runloop.json",
        "title": "Freestyle vs Runloop Devboxes",
        "url": "https://www.anchorterminal.com/compare/freestyle-vs-runloop"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freestyle-vs-together-code-sandbox.json",
        "title": "Freestyle vs Together Code Sandbox",
        "url": "https://www.anchorterminal.com/compare/freestyle-vs-together-code-sandbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freestyle-vs-vercel-sandbox.json",
        "title": "Freestyle vs Vercel Sandbox",
        "url": "https://www.anchorterminal.com/compare/freestyle-vs-vercel-sandbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-execution-containers-vs-sprites.json",
        "title": "Microsoft Execution Containers vs Sprites",
        "url": "https://www.anchorterminal.com/compare/microsoft-execution-containers-vs-sprites"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-sprites.json",
        "title": "Modal Sandboxes vs Sprites",
        "url": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-sprites"
      },
      {
        "json": "https://www.anchorterminal.com/compare/morph-cloud-vs-sprites.json",
        "title": "Morph Cloud vs Sprites",
        "url": "https://www.anchorterminal.com/compare/morph-cloud-vs-sprites"
      },
      {
        "json": "https://www.anchorterminal.com/compare/runloop-vs-sprites.json",
        "title": "Runloop Devboxes vs Sprites",
        "url": "https://www.anchorterminal.com/compare/runloop-vs-sprites"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sprites-vs-together-code-sandbox.json",
        "title": "Sprites vs Together Code Sandbox",
        "url": "https://www.anchorterminal.com/compare/sprites-vs-together-code-sandbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sprites-vs-vercel-sandbox.json",
        "title": "Sprites vs Vercel Sandbox",
        "url": "https://www.anchorterminal.com/compare/sprites-vs-vercel-sandbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent37-vs-freestyle.json",
        "title": "Agent 37 Cloud vs Freestyle",
        "url": "https://www.anchorterminal.com/compare/agent37-vs-freestyle"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent37-vs-sprites.json",
        "title": "Agent 37 Cloud vs Sprites",
        "url": "https://www.anchorterminal.com/compare/agent37-vs-sprites"
      }
    ],
    "scores": [
      {
        "by": 12,
        "edge": "sprites",
        "freestyle": 43,
        "key": "reliability",
        "name": "Reliability",
        "sprites": 55,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 12,
        "edge": "freestyle",
        "freestyle": 86,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "sprites": 74,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "freestyle",
        "freestyle": 69,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "sprites": 68,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "sprites",
        "freestyle": 53,
        "key": "security",
        "name": "Security \u0026 auth",
        "sprites": 59,
        "weight": 14
      },
      {
        "by": 15,
        "edge": "freestyle",
        "freestyle": 45,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "sprites": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "edge": "sprites",
        "freestyle": 71,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "sprites": 80,
        "weight": 7
      },
      {
        "by": 18,
        "edge": "sprites",
        "freestyle": 41,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "sprites": 59,
        "weight": 7
      }
    ],
    "summary": "Freestyle and Sprites score within a point of each other on agent readiness, 58.5 (C) and 58.3 (C). Sprites leads on reliability, security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust. Both do sandbox code.",
    "verdicts": {
      "freestyle": "A public OpenAPI 3.1 file describes 88 operations with a stable error code on every failure, and per-VM identity tokens keep the team API key away from end users. No terms of service, product privacy policy, request rate limit or incident history was found, and the only SDK is TypeScript.",
      "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 four Sprites incidents in the last 90 days, one lasting over seven hours, and outbound network access is unrestricted until a policy is set."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/freestyle-vs-sprites",
    "json": "https://www.anchorterminal.com/compare/freestyle-vs-sprites.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/freestyle-vs-sprites.md",
    "slim": "https://www.anchorterminal.com/compare/freestyle-vs-sprites.min.md"
  },
  "markdown": "Freestyle and Sprites score within a point of each other on agent readiness, 58.5 (C) and 58.3 (C). Sprites leads on reliability, security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust. Both do sandbox code.\n\n- Freestyle: grade C, 58.5/100, rank #520 of 842. Markdown https://www.anchorterminal.com/tools/freestyle.md · JSON https://www.anchorterminal.com/api/v1/tools/freestyle.json\n- Sprites: grade C, 58.3/100, rank #528 of 842. Markdown https://www.anchorterminal.com/tools/sprites.md · JSON https://www.anchorterminal.com/api/v1/tools/sprites.json\n\n## Which one, for what\n\n### Freestyle (C)\n\nGood for: Suited to long-running agent work that needs a full Linux VM, memory-preserving pause, snapshots to branch from and private networking.\n\nAhead on:\n- Schema \u0026 documentation, 86 against 74\n- Payments \u0026 pricing, 45 against 30\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Free to start without a card\n\nWatch for: No terms of service or service agreement found on the site, and the privacy policy covers the website only\n\n### Sprites (C)\n\nGood for: Agents that need a long-lived machine with installed tools and files kept between sessions, and rollback by checkpoint.\n\nAhead on:\n- Reliability, 55 against 43\n- Security \u0026 auth, 59 against 53\n- Maintenance \u0026 community, 80 against 71\n- Transparency \u0026 trust, 59 against 41\n\nWatch for: Four Sprites incidents on the status page in 90 days, including a partial outage of 7 hours 28 minutes on 23 September 2026 and failed creates outside Europe for 28 minutes on 8 October\n\n\n## Score by category\n\n| Category | Weight | Freestyle | Sprites | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 43 | 55 | Sprites +12 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 74 | Freestyle +12 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 68 | Freestyle +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 53 | 59 | Sprites +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 45 | 30 | Freestyle +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 71 | 80 | Sprites +9 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 41 | 59 | Sprites +18 |\n| Negative events | ≤15 | 0 | -2 | |\n| **Total** | | **58.5 · C** | **58.3 · C** | |\n\n## Facts side by side\n\n| Fact | Freestyle | Sprites |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Freestyle Cloud Inc. | Fly.io |\n| Hosted endpoint | `https://api.freestyle.sh/v5` | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Pay per use |\n| x402 | no | no |\n| Licence | Proprietary service with no published terms of service found. The `freestyle` SDK and CLI package on npm is MIT | Proprietary service under the Fly.io Terms of Service. The JavaScript, Go, Python and Elixir SDKs are MIT |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-27 | 2026-10-06 |\n| Terms last updated | no document linked | 2026-04-29 |\n| Privacy policy last updated | no document linked | 2026-09-24 |\n| Customer content may train models |  | not found in the text |\n| Terms restrict automated access |  | not found in the text |\n| Terms restrict benchmarking |  | not found in the text |\n| Terms or service can change without notice |  | not found in the text |\n| Arbitration or class-action waiver |  | not found in the text |\n| Popularity | 72k npm/wk | 158k npm/wk, 59k PyPI/wk |\n\n## Verdicts\n\n**Freestyle.** A public OpenAPI 3.1 file describes 88 operations with a stable error code on every failure, and per-VM identity tokens keep the team API key away from end users. No terms of service, product privacy policy, request rate limit or incident history was found, and the only SDK is TypeScript.\n\n**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 four Sprites incidents in the last 90 days, one lasting over seven hours, and outbound network access is unrestricted until a policy is set.\n\n## Before you call either\n\n### Freestyle\n\n1. Send a `firewall` object on every `POST /v5/vms`. It is required, and a VM with no rules has no outbound internet\n2. Ask the owner to run `freestyle login` in a browser once, then mint a key with `freestyle tokens create --output json`\n3. Do not retry an exec that answers 409 `VM_NON_RESPONSIVE`. The command may already have run\n4. Keep `exec-await` under its 300,000 ms cap and use a PTY session or `x-freestyle-background-after-secs` for longer work\n5. Call the `/v5` paths. The unversioned duplicates in the OpenAPI file are marked deprecated\n\n### Sprites\n\n1. Create a token at sprites.dev/account after a browser signup, and send it as `Authorization: Bearer \u003ctoken\u003e` to `https://api.sprites.dev`\n2. 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\n3. Set a network policy with `POST /v1/sprites/{name}/policy/network` before running untrusted code. Egress is open until one is set\n4. Processes started by exec stop on a cold wake. Define a Service for anything that must answer the request that wakes the Sprite\n5. Create a checkpoint before a restore. Restoring replaces the filesystem, ends active sessions and keeps no copy of the replaced state\n6. 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\n7. Delete Sprites you no longer need. An idle Sprite still bills cold storage for the bytes it holds\n\n## Questions\n\n### Which is better for AI agents, Freestyle or Sprites?\n\nFreestyle and Sprites score within a point of each other on agent readiness, 58.5 (C) and 58.3 (C). Sprites leads on reliability, security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust.\n\n### Do Freestyle and Sprites need an API key?\n\nBoth need an API key.\n\n### Can an agent call Freestyle and Sprites without installing anything?\n\nFreestyle has a hosted endpoint at https://api.freestyle.sh/v5. No hosted endpoint is listed for Sprites.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/freestyle-vs-sprites.json, and with the fewest tokens: https://www.anchorterminal.com/compare/freestyle-vs-sprites.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"freestyle\", \"b\": \"sprites\"}`. From a terminal: `anchor compare freestyle sprites`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/freestyle.json and https://www.anchorterminal.com/api/v1/tools/sprites.json\n\n## Other comparisons with Freestyle or Sprites\n\n- [Amazon Bedrock AgentCore Code Interpreter vs Freestyle](https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-freestyle.md)\n- [Amazon Bedrock AgentCore Code Interpreter vs Sprites](https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-sprites.md)\n- [Blaxel Sandboxes vs Freestyle](https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-freestyle.md)\n- [Blaxel Sandboxes vs Sprites](https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-sprites.md)\n- [Cloudflare Sandbox SDK vs Freestyle](https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-freestyle.md)\n- [Cloudflare Sandbox SDK vs Sprites](https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-sprites.md)\n- [Daytona vs Freestyle](https://www.anchorterminal.com/compare/daytona-vs-freestyle.md)\n- [Daytona vs Sprites](https://www.anchorterminal.com/compare/daytona-vs-sprites.md)\n- [Deno Sandbox vs Freestyle](https://www.anchorterminal.com/compare/deno-sandbox-vs-freestyle.md)\n- [Deno Sandbox vs Sprites](https://www.anchorterminal.com/compare/deno-sandbox-vs-sprites.md)\n- [E2B vs Freestyle](https://www.anchorterminal.com/compare/e2b-vs-freestyle.md)\n- [E2B vs Sprites](https://www.anchorterminal.com/compare/e2b-vs-sprites.md)\n- [Freestyle vs Microsoft Execution Containers](https://www.anchorterminal.com/compare/freestyle-vs-microsoft-execution-containers.md)\n- [Freestyle vs Modal Sandboxes](https://www.anchorterminal.com/compare/freestyle-vs-modal-sandboxes.md)\n- [Freestyle vs Morph Cloud](https://www.anchorterminal.com/compare/freestyle-vs-morph-cloud.md)\n- [Freestyle vs Runloop Devboxes](https://www.anchorterminal.com/compare/freestyle-vs-runloop.md)\n- [Freestyle vs Together Code Sandbox](https://www.anchorterminal.com/compare/freestyle-vs-together-code-sandbox.md)\n- [Freestyle vs Vercel Sandbox](https://www.anchorterminal.com/compare/freestyle-vs-vercel-sandbox.md)\n- [Microsoft Execution Containers vs Sprites](https://www.anchorterminal.com/compare/microsoft-execution-containers-vs-sprites.md)\n- [Modal Sandboxes vs Sprites](https://www.anchorterminal.com/compare/modal-sandboxes-vs-sprites.md)\n- [Morph Cloud vs Sprites](https://www.anchorterminal.com/compare/morph-cloud-vs-sprites.md)\n- [Runloop Devboxes vs Sprites](https://www.anchorterminal.com/compare/runloop-vs-sprites.md)\n- [Sprites vs Together Code Sandbox](https://www.anchorterminal.com/compare/sprites-vs-together-code-sandbox.md)\n- [Sprites vs Vercel Sandbox](https://www.anchorterminal.com/compare/sprites-vs-vercel-sandbox.md)\n- [Agent 37 Cloud vs Freestyle](https://www.anchorterminal.com/compare/agent37-vs-freestyle.md)\n- [Agent 37 Cloud vs Sprites](https://www.anchorterminal.com/compare/agent37-vs-sprites.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Freestyle vs Sprites",
        "url": ""
      }
    ],
    "description": "Freestyle and Sprites score within a point of each other on agent readiness, 58.5 (C) and 58.3 (C). Sprites leads on reliability, security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust. Both do sandbox code. Category scores, facts, verdicts and agent notes side by…",
    "facts": [
      "Freestyle C 58.5",
      "Sprites C 58.3",
      "scores"
    ],
    "h1": "Freestyle vs Sprites",
    "image": "https://www.anchorterminal.com/assets/og/compare-freestyle-vs-sprites.png",
    "path": "/compare/freestyle-vs-sprites",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Freestyle vs Sprites for AI agents, C 58.5 vs C 58.3 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/freestyle-vs-sprites"
  },
  "tokens": {
    "markdown": 2600,
    "slim": 730
  },
  "version": 1
}
