{
  "data": {
    "a": {
      "slug": "modal-sandboxes",
      "name": "Modal Sandboxes",
      "vendor": "Modal",
      "vendorUrl": "https://modal.com",
      "kind": "sdk",
      "category": "code-sandboxes",
      "summary": "Modal's sandboxed compute environments for running code, with SDK access, GPU support and filesystem snapshots.",
      "url": "https://www.anchorterminal.com/tools/modal-sandboxes",
      "markdownUrl": "https://www.anchorterminal.com/tools/modal-sandboxes.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/modal-sandboxes.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/modal-sandboxes.json",
      "repo": "https://github.com/modal-labs/modal-client",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "modal"
        },
        {
          "registry": "npm",
          "name": "modal"
        }
      ],
      "auth": "api-key",
      "authNotes": "No public REST API for sandboxes. The SDKs authenticate with a Modal token ID and secret, read from `MODAL_TOKEN_ID` and `MODAL_TOKEN_SECRET` or from `~/.modal.toml` (written by `modal token set`). Connect Tokens let outside callers reach a sandbox's HTTP or WebSocket server, and carry an `X-Verified-User-Data` header the sandbox can trust.",
      "pricing": "freemium",
      "pricingNotes": "Sandboxes cost $0.00003942 a physical core-second (one core is 2 vCPU, minimum 0.125 cores) and $0.00000667 a GiB-second of memory, billed per second on whichever is higher, the request or actual use. GPUs bill at Modal's standard per-second GPU rates. Starter is $0 a month with $30 of compute included every month, though a payment method must be on file to use Modal, Team is $250 a month plus compute with $100 included, Enterprise is custom with volume discounts (https://modal.com/pricing, https://modal.com/docs/guide/sandbox-resources.md, https://modal.com/docs/guide/billing.md).",
      "priceSummary": "$0.071 / vCPU-hr",
      "where": "local",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 514,
        "npmWeekly": 940973,
        "pypiWeekly": 10146778,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://modal.com/docs/guide/sandboxes",
      "llmsTxt": "https://modal.com/llms.txt",
      "capabilities": [
        "sandbox.code",
        "sandbox.fs",
        "sandbox.persist",
        "sandbox.gpu"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "python",
        "typescript",
        "go",
        "llms-txt",
        "enterprise"
      ],
      "lastRelease": "2026-10-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.9,
        "grade": "B",
        "agentReady": false,
        "rank": 335,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 93,
          "payments": 20,
          "reliability": 55,
          "schema": 79,
          "security": 79,
          "transparency": 77
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-17"
        },
        "negative": 0,
        "verdict": "GPU sandboxes at the same per-second rates as the rest of Modal. No REST API, and the JavaScript and Go SDKs are beta.",
        "bestFor": "GPU work inside a sandbox, or agents already running on Modal.",
        "strengths": [
          "GPU sandboxes at the same per-second rates as the rest of Modal",
          "Outbound traffic blockable or limited to CIDR ranges, and inbound only through tunnels or Connect Tokens",
          "$30 of compute included every month on Starter",
          "SOC 2 Type 2, a private HackerOne bounty and stated fix times for vulnerabilities",
          "Named sandboxes raise `AlreadyExistsError` on a duplicate create, so retries can't start a second copy"
        ],
        "weaknesses": [
          "No REST API, and the JavaScript and Go SDKs are beta",
          "Default lifetime of 5 minutes and a hard maximum of 24 hours",
          "A payment method must be on file to use Modal, even on Starter",
          "Ten status-page incidents in the 90 days to 17 October 2026, two of them naming sandboxes",
          "No security.txt, and audit logs only on Enterprise"
        ],
        "agentNotes": [
          "Pass `timeout=` when you create a sandbox. The default lifetime is 5 minutes",
          "Set `block_network=True` or an `outbound_cidr_allowlist` for untrusted code",
          "Give a sandbox a `name` so a retried create raises `AlreadyExistsError` instead of starting a second one",
          "Snapshot the filesystem before the 24-hour limit and start a fresh sandbox from it",
          "Catch `ResourceExhaustedError` from `Sandbox.create()` on SDK 1.6.0 and later, since create now waits until scheduled"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.9
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 93,
          "payments": 20,
          "reliability": 55,
          "schema": 79,
          "security": 79,
          "transparency": 70
        },
        "provenanceScore": 84
      },
      "connect": {
        "install": "pip install modal  # or npm i modal"
      },
      "letme": {
        "capability": "https://letme.dev/sandbox.code",
        "tool": "https://letme.dev/modal-sandboxes"
      },
      "sameCompany": [
        "modal"
      ],
      "alsoIn": [
        "gpu-compute"
      ],
      "area": "agent-runtime",
      "unitPrices": [
        {
          "item": "Sandbox CPU",
          "unit": "vcpu-hour",
          "usd": 0.071,
          "note": "$0.00003942 a physical core-second, one core is 2 vCPU. Memory extra at $0.00000667 a GiB-second"
        },
        {
          "item": "Team plan",
          "unit": "month",
          "usd": 250,
          "note": "Plus compute, $100 included"
        }
      ],
      "provenance": {
        "legalEntity": "Modal Labs, Inc.",
        "domain": "modal.com",
        "domainRegistered": "1999-03-18",
        "domainNote": "modal.com was registered in 1999, long before Modal Labs, so the domain was bought later.",
        "endpointOnVendorDomain": null,
        "terms": "https://modal.com/legal/terms",
        "privacy": "https://modal.com/legal/privacy-policy",
        "statusPage": "https://status.modal.com",
        "changelog": "https://modal.com/docs/sdk/py/releases",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Terms (May 2026) name Modal Labs, Inc., a Delaware corporation, under California law.",
          "Sandboxes are reached through the SDK rather than a documented public endpoint, so there's no endpoint URL to check against the domain.",
          "modal.com/.well-known/security.txt returns 404. The security guide gives security@modal.com and a private HackerOne programme."
        ],
        "score": 84
      },
      "requirements": {
        "card": "unknown",
        "freeTier": true,
        "minutes": 5,
        "credential": "api-key",
        "hosting": [
          "US",
          "EU",
          "UK",
          "APAC",
          "CA"
        ],
        "euResidency": "unknown",
        "trainsOnData": "unknown",
        "zeroRetention": "unknown",
        "certifications": [
          "SOC 2 Type II",
          "HIPAA (BAA available)",
          "GDPR"
        ],
        "dpa": true,
        "selfHost": "no"
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/modal-sandboxes.json",
      "live": {
        "slug": "modal-sandboxes",
        "vendorStatus": {
          "page": "https://status.modal.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-17T22:51:22.820861052Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "modal",
            "version": "0.11.1",
            "seenAt": "2026-10-17T02:03:23.654457915Z"
          },
          {
            "registry": "pypi",
            "name": "modal",
            "version": "1.6.2",
            "released": "2026-10-16",
            "seenAt": "2026-10-17T02:03:23.527720342Z"
          }
        ],
        "githubStars": 525,
        "npmWeekly": 820227,
        "pypiWeekly": 10853285,
        "securityTxt": {
          "url": "https://modal.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-17T15:52:48.284655277Z"
        },
        "llmsTxt": {
          "url": "https://modal.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-17T14:22:39.847922207Z"
        },
        "domain": {
          "domain": "modal.com",
          "registered": "1999-03-18",
          "source": "https://rdap.verisign.com/com/v1/domain/modal.com",
          "checkedAt": "2026-10-11T13:18:41.609836211Z"
        },
        "pages": [
          {
            "url": "https://modal.com/docs/sdk/py/releases",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-17T23:06:13.751066634Z",
            "changedAt": "2026-10-16T22:27:18.761976098Z",
            "fingerprint": "950efbf14d11"
          },
          {
            "url": "https://modal.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-17T23:06:20.285432749Z",
            "changedAt": "2026-10-14T20:45:15.651267018Z",
            "fingerprint": "2f6e41609157"
          },
          {
            "url": "https://modal.com/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-17T23:06:16.063550681Z",
            "changedAt": "2026-10-14T20:45:11.697384522Z",
            "fingerprint": "8f92b27fce50"
          },
          {
            "url": "https://modal.com/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-17T23:06:18.161037699Z",
            "changedAt": "2026-10-14T20:45:13.16283474Z",
            "fingerprint": "4d9a7ac0f525"
          }
        ],
        "updatedAt": "2026-10-17T23:06:20.285432749Z"
      }
    },
    "answer": "Modal Sandboxes scores 65.9 (B) on agent readiness against Offscreen's 62.9 (B), and leads in 4 of 7 scored categories. Offscreen leads on agent ergonomics and payments \u0026 pricing.",
    "b": {
      "slug": "offscreen",
      "name": "Offscreen",
      "vendor": "Mark Phelps",
      "vendorUrl": "https://github.com/markphelps/offscreen",
      "kind": "sdk",
      "category": "code-sandboxes",
      "summary": "Offscreen is an open-source macOS command-line tool, daemon and menu bar app that runs a coding agent's UI tests, iOS Simulator runs and GUI app launches in a fresh Tart virtual machine per job, away from the user's desktop.",
      "url": "https://www.anchorterminal.com/tools/offscreen",
      "markdownUrl": "https://www.anchorterminal.com/tools/offscreen.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/offscreen.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/offscreen.json",
      "repo": "https://github.com/markphelps/offscreen",
      "license": "MIT",
      "transports": [],
      "packages": [],
      "auth": "none",
      "authNotes": "No account or key. The CLI talks to the local daemon over an owner-only Unix socket (mode 0600), and anyone who can open it is trusted. The daemon reaches each guest VM over SSH with the base image's login, `admin` and `admin` by default, or a configured key. A person grants Local Network to Offscreen Daemon on the first VM job, and Input Monitoring and Notifications to the menu bar app only for host-lane jobs.",
      "pricing": "free",
      "pricingNotes": "Free under MIT with nothing to buy. It depends on Tart, installed by the cask from the `openai/tools/tart` formula under FSL-1.1-ALv2, whose licensing page says use on personal computers is royalty-free and organisations above 100 host CPU cores need a paid licence, from $12,000 a year. Needs an Apple silicon Mac with macOS 14 or later and full Xcode.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the source, the docs or the skill (checked 2026-10-17). The tool has no paid tier and makes no network calls of its own beyond the local socket and the guest SSH connection.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-17"
      },
      "docsUrl": "https://github.com/markphelps/offscreen#readme",
      "capabilities": [
        "sandbox.code",
        "sandbox.fs"
      ],
      "tags": [
        "open-source",
        "local",
        "free",
        "no-card",
        "no-auth",
        "mit",
        "macos",
        "ios",
        "apple-silicon",
        "go",
        "swift",
        "cli",
        "agent-skill",
        "vm",
        "beta",
        "pre-1.0",
        "new"
      ],
      "lastRelease": "2026-10-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.9,
        "grade": "B",
        "agentReady": false,
        "rank": 456,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 66,
          "payments": 60,
          "reliability": 55,
          "schema": 67,
          "security": 62,
          "transparency": 56
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-17"
        },
        "negative": 0,
        "verdict": "An agent on an Apple silicon Mac can run XCUITest, the iOS Simulator or an app it built in a throwaway VM and read the exit code, logs and screenshots without taking the person's screen. The project is six days old at v0.0.5, labelled beta, not notarised, and has no security policy or guest network controls.",
        "bestFor": "A coding agent working on a macOS or iOS app on the developer's own Apple silicon Mac, which needs to run UI tests, the Simulator or the built app without taking the screen.",
        "strengths": [
          "A fresh VM per job, deleted afterwards, and a VM task receives only the worktree, listed build products and four `OFFSCREEN_*` variables, not the host environment",
          "`offscreen run` exits with the wrapped command's code, and Offscreen's own failures use 75 for a queue timeout and 70 for daemon or VM errors",
          "One queue on the Mac for every agent, terminal and script, with `--detach`, `status`, `logs -f`, `artifacts` and `cancel`",
          "The skill lists what an agent must not run without asking, such as `--show`, the host lane, `--keep`, prune and image builds",
          "MIT, with no network code or telemetry found in the source beyond the local socket and guest SSH"
        ],
        "weaknesses": [
          "First commit 11 October 2026, version 0.0.5 and labelled beta, with JSON field names that may change before 1.0",
          "Apple silicon macOS 14 or later with full Xcode only, at most two VMs at once, and a large one-time image download",
          "Ad hoc signed and not notarised. The cask strips the quarantine attribute, and there is no SECURITY.md or security.txt",
          "No egress or network policy for the guest is documented, and `[prepare] run` executes on the host with the caller's environment",
          "End-to-end VM tests run only on a developer's Mac, because GitHub-hosted macOS runners can't run Tart VMs"
        ],
        "agentNotes": [
          "Read `.offscreen.toml` before running anything and use its `project` key and task names. Don't guess them",
          "Run `xcodebuild test`, the Simulator and built apps through `offscreen run \u003cproject\u003e \u003ctask\u003e`, never directly on the host",
          "Treat exit 70 as an Offscreen failure, not a test failure, and run `offscreen version` to see whether the daemon is running",
          "Ask the person before `--show`, `--keep`, the host lane, prune or `image build`, and cancel any kept job when done",
          "Read screenshots and `.xcresult` bundles from the directory `offscreen artifacts \u003cjob\u003e` prints"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.9
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 66,
          "payments": 60,
          "reliability": 55,
          "schema": 67,
          "security": 62,
          "transparency": 72
        },
        "provenanceScore": 40
      },
      "connect": {
        "install": "brew install --cask markphelps/tap/offscreen \u0026\u0026 open -a Offscreen \u0026\u0026 offscreen image build",
        "headless": {
          "artifacts": "offscreen artifacts \u003cjob\u003e",
          "check": "offscreen check",
          "detach": "offscreen run \u003cproject\u003e \u003ctask\u003e --detach",
          "init": "offscreen init",
          "oneOff": "offscreen run \u003cproject\u003e -- swift test",
          "run": "offscreen run \u003cproject\u003e \u003ctask\u003e",
          "skill": "npx skills add markphelps/offscreen",
          "status": "offscreen status -a --format json"
        }
      },
      "letme": {
        "capability": "https://letme.dev/sandbox.code",
        "tool": "https://letme.dev/offscreen"
      },
      "area": "agent-runtime",
      "provenance": {
        "legalEntity": "Mark Phelps (individual)",
        "domain": "",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-17",
        "notes": [
          "The project has no website. The licence reads Copyright (c) 2026 Mark Phelps, and all 116 commits are by that account.",
          "The app and daemon use the bundle identifiers io.latentsignal.offscreen and io.latentsignal.offscreend. latentsignal.io belongs to Latent Signal Labs, LLC, a solo studio whose page links x.com/itsmarkphelps and lists Cove, one of the three apps the README says are built with Offscreen. The page does not name Offscreen.",
          "No terms, privacy policy, changelog file, SECURITY.md or security.txt. GitHub release notes could not be read.",
          "The software runs on the owner's Mac, so there is no vendor endpoint or status page to check."
        ],
        "score": 40
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/offscreen.json"
    },
    "facts": [
      {
        "a": "SDK + MCP",
        "b": "SDK + MCP",
        "name": "Kind"
      },
      {
        "a": "Modal",
        "b": "Mark Phelps",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-15",
        "b": "2026-10-16",
        "name": "Last release"
      },
      {
        "a": "2026-05-01",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "2023-05-17",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "514 stars, 941k npm/wk, 10.1M PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.3/5 (8)",
        "b": "3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Modal Sandboxes scores 65.9 (B) on agent readiness against Offscreen's 62.9 (B), and leads in 4 of 7 scored categories. Offscreen leads on agent ergonomics and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Modal Sandboxes or Offscreen?"
      },
      {
        "answer": "No open-source release is listed for Modal Sandboxes. Offscreen is open source (MIT).",
        "question": "Are Modal Sandboxes and Offscreen open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 79 against 67",
          "Security \u0026 auth, 79 against 62",
          "Maintenance \u0026 community, 93 against 66",
          "Transparency \u0026 trust, 77 against 56"
        ],
        "also": null,
        "goodFor": "GPU work inside a sandbox, or agents already running on Modal.",
        "slug": "modal-sandboxes",
        "watchFor": "No REST API, and the JavaScript and Go SDKs are beta"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 74 against 67",
          "Payments \u0026 pricing, 60 against 20"
        ],
        "also": [
          "No key needed to call it",
          "Free to start without a card",
          "Open source"
        ],
        "goodFor": "A coding agent working on a macOS or iOS app on the developer's own Apple silicon Mac, which needs to run UI tests, the Simulator or the built app without taking the screen.",
        "slug": "offscreen",
        "watchFor": "First commit 11 October 2026, version 0.0.5 and labelled beta, with JSON field names that may change before 1.0"
      }
    ],
    "job": {
      "capability": "sandbox.code",
      "name": "Code sandboxes"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agent37-vs-offscreen.json",
        "title": "Agent 37 Cloud vs Offscreen",
        "url": "https://www.anchorterminal.com/compare/agent37-vs-offscreen"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-modal-sandboxes.json",
        "title": "Amazon Bedrock AgentCore Code Interpreter vs Modal Sandboxes",
        "url": "https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-modal-sandboxes"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-offscreen.json",
        "title": "Amazon Bedrock AgentCore Code Interpreter vs Offscreen",
        "url": "https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-offscreen"
      },
      {
        "json": "https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-modal-sandboxes.json",
        "title": "Blaxel Sandboxes vs Modal Sandboxes",
        "url": "https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-modal-sandboxes"
      },
      {
        "json": "https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-offscreen.json",
        "title": "Blaxel Sandboxes vs Offscreen",
        "url": "https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-offscreen"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-modal-sandboxes.json",
        "title": "Cloudflare Sandbox SDK vs Modal Sandboxes",
        "url": "https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-modal-sandboxes"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-offscreen.json",
        "title": "Cloudflare Sandbox SDK vs Offscreen",
        "url": "https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-offscreen"
      },
      {
        "json": "https://www.anchorterminal.com/compare/daytona-vs-modal-sandboxes.json",
        "title": "Daytona vs Modal Sandboxes",
        "url": "https://www.anchorterminal.com/compare/daytona-vs-modal-sandboxes"
      },
      {
        "json": "https://www.anchorterminal.com/compare/daytona-vs-offscreen.json",
        "title": "Daytona vs Offscreen",
        "url": "https://www.anchorterminal.com/compare/daytona-vs-offscreen"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deno-sandbox-vs-modal-sandboxes.json",
        "title": "Deno Sandbox vs Modal Sandboxes",
        "url": "https://www.anchorterminal.com/compare/deno-sandbox-vs-modal-sandboxes"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deno-sandbox-vs-offscreen.json",
        "title": "Deno Sandbox vs Offscreen",
        "url": "https://www.anchorterminal.com/compare/deno-sandbox-vs-offscreen"
      },
      {
        "json": "https://www.anchorterminal.com/compare/e2b-vs-modal-sandboxes.json",
        "title": "E2B vs Modal Sandboxes",
        "url": "https://www.anchorterminal.com/compare/e2b-vs-modal-sandboxes"
      },
      {
        "json": "https://www.anchorterminal.com/compare/e2b-vs-offscreen.json",
        "title": "E2B vs Offscreen",
        "url": "https://www.anchorterminal.com/compare/e2b-vs-offscreen"
      },
      {
        "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-offscreen.json",
        "title": "Freestyle vs Offscreen",
        "url": "https://www.anchorterminal.com/compare/freestyle-vs-offscreen"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-execution-containers-vs-modal-sandboxes.json",
        "title": "Microsoft Execution Containers vs Modal Sandboxes",
        "url": "https://www.anchorterminal.com/compare/microsoft-execution-containers-vs-modal-sandboxes"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-execution-containers-vs-offscreen.json",
        "title": "Microsoft Execution Containers vs Offscreen",
        "url": "https://www.anchorterminal.com/compare/microsoft-execution-containers-vs-offscreen"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-morph-cloud.json",
        "title": "Modal Sandboxes vs Morph Cloud",
        "url": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-morph-cloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-perplexity-space.json",
        "title": "Modal Sandboxes vs SPACE",
        "url": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-perplexity-space"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-runloop.json",
        "title": "Modal Sandboxes vs Runloop Devboxes",
        "url": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-runloop"
      },
      {
        "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/modal-sandboxes-vs-together-code-sandbox.json",
        "title": "Modal Sandboxes vs Together Code Sandbox",
        "url": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-together-code-sandbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-vercel-sandbox.json",
        "title": "Modal Sandboxes vs Vercel Sandbox",
        "url": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-vercel-sandbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/morph-cloud-vs-offscreen.json",
        "title": "Morph Cloud vs Offscreen",
        "url": "https://www.anchorterminal.com/compare/morph-cloud-vs-offscreen"
      },
      {
        "json": "https://www.anchorterminal.com/compare/offscreen-vs-perplexity-space.json",
        "title": "Offscreen vs SPACE",
        "url": "https://www.anchorterminal.com/compare/offscreen-vs-perplexity-space"
      },
      {
        "json": "https://www.anchorterminal.com/compare/offscreen-vs-runloop.json",
        "title": "Offscreen vs Runloop Devboxes",
        "url": "https://www.anchorterminal.com/compare/offscreen-vs-runloop"
      },
      {
        "json": "https://www.anchorterminal.com/compare/offscreen-vs-sprites.json",
        "title": "Offscreen vs Sprites",
        "url": "https://www.anchorterminal.com/compare/offscreen-vs-sprites"
      },
      {
        "json": "https://www.anchorterminal.com/compare/offscreen-vs-together-code-sandbox.json",
        "title": "Offscreen vs Together Code Sandbox",
        "url": "https://www.anchorterminal.com/compare/offscreen-vs-together-code-sandbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/offscreen-vs-vercel-sandbox.json",
        "title": "Offscreen vs Vercel Sandbox",
        "url": "https://www.anchorterminal.com/compare/offscreen-vs-vercel-sandbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent37-vs-modal-sandboxes.json",
        "title": "Agent 37 Cloud vs Modal Sandboxes",
        "url": "https://www.anchorterminal.com/compare/agent37-vs-modal-sandboxes"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deltabox-lite-vs-modal-sandboxes.json",
        "title": "DeltaBox Lite vs Modal Sandboxes",
        "url": "https://www.anchorterminal.com/compare/deltabox-lite-vs-modal-sandboxes"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deltabox-lite-vs-offscreen.json",
        "title": "DeltaBox Lite vs Offscreen",
        "url": "https://www.anchorterminal.com/compare/deltabox-lite-vs-offscreen"
      }
    ],
    "scores": [
      {
        "by": 0,
        "edge": "",
        "key": "reliability",
        "modal-sandboxes": 55,
        "name": "Reliability",
        "offscreen": 55,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 12,
        "edge": "modal-sandboxes",
        "key": "schema",
        "modal-sandboxes": 79,
        "name": "Schema \u0026 documentation",
        "offscreen": 67,
        "weight": 13
      },
      {
        "by": 7,
        "edge": "offscreen",
        "key": "ergonomics",
        "modal-sandboxes": 67,
        "name": "Agent ergonomics",
        "offscreen": 74,
        "weight": 13
      },
      {
        "by": 17,
        "edge": "modal-sandboxes",
        "key": "security",
        "modal-sandboxes": 79,
        "name": "Security \u0026 auth",
        "offscreen": 62,
        "weight": 14
      },
      {
        "by": 40,
        "edge": "offscreen",
        "key": "payments",
        "modal-sandboxes": 20,
        "name": "Payments \u0026 pricing",
        "offscreen": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 27,
        "edge": "modal-sandboxes",
        "key": "maintenance",
        "modal-sandboxes": 93,
        "name": "Maintenance \u0026 community",
        "offscreen": 66,
        "weight": 7
      },
      {
        "by": 21,
        "edge": "modal-sandboxes",
        "key": "transparency",
        "modal-sandboxes": 77,
        "name": "Transparency \u0026 trust",
        "offscreen": 56,
        "weight": 7
      }
    ],
    "summary": "Modal Sandboxes scores 65.9 (B) on agent readiness against Offscreen's 62.9 (B), and leads in 4 of 7 scored categories. Offscreen leads on agent ergonomics and payments \u0026 pricing. Both do code sandboxes.",
    "tutorials": [],
    "verdicts": {
      "modal-sandboxes": "GPU sandboxes at the same per-second rates as the rest of Modal. No REST API, and the JavaScript and Go SDKs are beta.",
      "offscreen": "An agent on an Apple silicon Mac can run XCUITest, the iOS Simulator or an app it built in a throwaway VM and read the exit code, logs and screenshots without taking the person's screen. The project is six days old at v0.0.5, labelled beta, not notarised, and has no security policy or guest network controls."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-offscreen",
    "json": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-offscreen.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-offscreen.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-offscreen.min.md"
  },
  "markdown": "Modal Sandboxes scores 65.9 (B) on agent readiness against Offscreen's 62.9 (B), and leads in 4 of 7 scored categories. Offscreen leads on agent ergonomics and payments \u0026 pricing. Both do code sandboxes.\n\n- Modal Sandboxes: grade B, 65.9/100, rank #335 of 1133. Markdown https://www.anchorterminal.com/tools/modal-sandboxes.md · JSON https://www.anchorterminal.com/api/v1/tools/modal-sandboxes.json\n- Offscreen: grade B, 62.9/100, rank #456 of 1133. Markdown https://www.anchorterminal.com/tools/offscreen.md · JSON https://www.anchorterminal.com/api/v1/tools/offscreen.json\n- Best code execution sandboxes for AI agents: https://www.anchorterminal.com/best/code-sandboxes/index.md\n- All 153 sandboxes comparisons: https://www.anchorterminal.com/compare/code-sandboxes/index.md\n- Best GPU and serverless compute for AI workloads: https://www.anchorterminal.com/best/gpu-compute/index.md\n- All 170 gpu compute comparisons: https://www.anchorterminal.com/compare/gpu-compute/index.md\n\n## Which one, for what\n\n### Modal Sandboxes (B)\n\nGood for: GPU work inside a sandbox, or agents already running on Modal.\n\nAhead on:\n- Schema \u0026 documentation, 79 against 67\n- Security \u0026 auth, 79 against 62\n- Maintenance \u0026 community, 93 against 66\n- Transparency \u0026 trust, 77 against 56\n\nWatch for: No REST API, and the JavaScript and Go SDKs are beta\n\n### Offscreen (B)\n\nGood for: A coding agent working on a macOS or iOS app on the developer's own Apple silicon Mac, which needs to run UI tests, the Simulator or the built app without taking the screen.\n\nAhead on:\n- Agent ergonomics, 74 against 67\n- Payments \u0026 pricing, 60 against 20\n\nAlso in its favour:\n- No key needed to call it\n- Free to start without a card\n- Open source\n\nWatch for: First commit 11 October 2026, version 0.0.5 and labelled beta, with JSON field names that may change before 1.0\n\n\n## Score by category\n\n| Category | Weight | Modal Sandboxes | Offscreen | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 55 | 55 | even |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 79 | 67 | Modal Sandboxes +12 |\n| Agent ergonomics | 13% (16.2 this run) | 67 | 74 | Offscreen +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 79 | 62 | Modal Sandboxes +17 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 60 | Offscreen +40 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 93 | 66 | Modal Sandboxes +27 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 77 | 56 | Modal Sandboxes +21 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **65.9 · B** | **62.9 · B** | |\n\n## Facts side by side\n\n| Fact | Modal Sandboxes | Offscreen |\n| --- | --- | --- |\n| Kind | SDK + MCP | SDK + MCP |\n| Vendor | Modal | Mark Phelps |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | API key | None |\n| Pricing | Freemium | Free |\n| x402 | no | no |\n| Licence | Apache-2.0 | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-10-15 | 2026-10-16 |\n| Terms last updated | 2026-05-01 | no document linked |\n| Privacy policy last updated | 2023-05-17 | no document linked |\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 | 514 stars, 941k npm/wk, 10.1M PyPI/wk | none |\n| Agent reviews | 3.3/5 (8) | 3/5 (4) |\n\n## Verdicts\n\n**Modal Sandboxes.** GPU sandboxes at the same per-second rates as the rest of Modal. No REST API, and the JavaScript and Go SDKs are beta.\n\n**Offscreen.** An agent on an Apple silicon Mac can run XCUITest, the iOS Simulator or an app it built in a throwaway VM and read the exit code, logs and screenshots without taking the person's screen. The project is six days old at v0.0.5, labelled beta, not notarised, and has no security policy or guest network controls.\n\n## Before you call either\n\n### Modal Sandboxes\n\n1. Pass `timeout=` when you create a sandbox. The default lifetime is 5 minutes\n2. Set `block_network=True` or an `outbound_cidr_allowlist` for untrusted code\n3. Give a sandbox a `name` so a retried create raises `AlreadyExistsError` instead of starting a second one\n4. Snapshot the filesystem before the 24-hour limit and start a fresh sandbox from it\n5. Catch `ResourceExhaustedError` from `Sandbox.create()` on SDK 1.6.0 and later, since create now waits until scheduled\n\n### Offscreen\n\n1. Read `.offscreen.toml` before running anything and use its `project` key and task names. Don't guess them\n2. Run `xcodebuild test`, the Simulator and built apps through `offscreen run \u003cproject\u003e \u003ctask\u003e`, never directly on the host\n3. Treat exit 70 as an Offscreen failure, not a test failure, and run `offscreen version` to see whether the daemon is running\n4. Ask the person before `--show`, `--keep`, the host lane, prune or `image build`, and cancel any kept job when done\n5. Read screenshots and `.xcresult` bundles from the directory `offscreen artifacts \u003cjob\u003e` prints\n\n## Questions\n\n### Which is better for AI agents, Modal Sandboxes or Offscreen?\n\nModal Sandboxes scores 65.9 (B) on agent readiness against Offscreen's 62.9 (B), and leads in 4 of 7 scored categories. Offscreen leads on agent ergonomics and payments \u0026 pricing.\n\n### Are Modal Sandboxes and Offscreen open source?\n\nNo open-source release is listed for Modal Sandboxes. Offscreen is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/modal-sandboxes-vs-offscreen.json, and with the fewest tokens: https://www.anchorterminal.com/compare/modal-sandboxes-vs-offscreen.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"modal-sandboxes\", \"b\": \"offscreen\"}`. From a terminal: `anchor compare modal-sandboxes offscreen`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/modal-sandboxes.json and https://www.anchorterminal.com/api/v1/tools/offscreen.json\n\n## Other comparisons with Modal Sandboxes or Offscreen\n\n- [Agent 37 Cloud vs Offscreen](https://www.anchorterminal.com/compare/agent37-vs-offscreen.md)\n- [Amazon Bedrock AgentCore Code Interpreter vs Modal Sandboxes](https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-modal-sandboxes.md)\n- [Amazon Bedrock AgentCore Code Interpreter vs Offscreen](https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-offscreen.md)\n- [Blaxel Sandboxes vs Modal Sandboxes](https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-modal-sandboxes.md)\n- [Blaxel Sandboxes vs Offscreen](https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-offscreen.md)\n- [Cloudflare Sandbox SDK vs Modal Sandboxes](https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-modal-sandboxes.md)\n- [Cloudflare Sandbox SDK vs Offscreen](https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-offscreen.md)\n- [Daytona vs Modal Sandboxes](https://www.anchorterminal.com/compare/daytona-vs-modal-sandboxes.md)\n- [Daytona vs Offscreen](https://www.anchorterminal.com/compare/daytona-vs-offscreen.md)\n- [Deno Sandbox vs Modal Sandboxes](https://www.anchorterminal.com/compare/deno-sandbox-vs-modal-sandboxes.md)\n- [Deno Sandbox vs Offscreen](https://www.anchorterminal.com/compare/deno-sandbox-vs-offscreen.md)\n- [E2B vs Modal Sandboxes](https://www.anchorterminal.com/compare/e2b-vs-modal-sandboxes.md)\n- [E2B vs Offscreen](https://www.anchorterminal.com/compare/e2b-vs-offscreen.md)\n- [Freestyle vs Modal Sandboxes](https://www.anchorterminal.com/compare/freestyle-vs-modal-sandboxes.md)\n- [Freestyle vs Offscreen](https://www.anchorterminal.com/compare/freestyle-vs-offscreen.md)\n- [Microsoft Execution Containers vs Modal Sandboxes](https://www.anchorterminal.com/compare/microsoft-execution-containers-vs-modal-sandboxes.md)\n- [Microsoft Execution Containers vs Offscreen](https://www.anchorterminal.com/compare/microsoft-execution-containers-vs-offscreen.md)\n- [Modal Sandboxes vs Morph Cloud](https://www.anchorterminal.com/compare/modal-sandboxes-vs-morph-cloud.md)\n- [Modal Sandboxes vs SPACE](https://www.anchorterminal.com/compare/modal-sandboxes-vs-perplexity-space.md)\n- [Modal Sandboxes vs Runloop Devboxes](https://www.anchorterminal.com/compare/modal-sandboxes-vs-runloop.md)\n- [Modal Sandboxes vs Sprites](https://www.anchorterminal.com/compare/modal-sandboxes-vs-sprites.md)\n- [Modal Sandboxes vs Together Code Sandbox](https://www.anchorterminal.com/compare/modal-sandboxes-vs-together-code-sandbox.md)\n- [Modal Sandboxes vs Vercel Sandbox](https://www.anchorterminal.com/compare/modal-sandboxes-vs-vercel-sandbox.md)\n- [Morph Cloud vs Offscreen](https://www.anchorterminal.com/compare/morph-cloud-vs-offscreen.md)\n- [Offscreen vs SPACE](https://www.anchorterminal.com/compare/offscreen-vs-perplexity-space.md)\n- [Offscreen vs Runloop Devboxes](https://www.anchorterminal.com/compare/offscreen-vs-runloop.md)\n- [Offscreen vs Sprites](https://www.anchorterminal.com/compare/offscreen-vs-sprites.md)\n- [Offscreen vs Together Code Sandbox](https://www.anchorterminal.com/compare/offscreen-vs-together-code-sandbox.md)\n- [Offscreen vs Vercel Sandbox](https://www.anchorterminal.com/compare/offscreen-vs-vercel-sandbox.md)\n- [Agent 37 Cloud vs Modal Sandboxes](https://www.anchorterminal.com/compare/agent37-vs-modal-sandboxes.md)\n- [DeltaBox Lite vs Modal Sandboxes](https://www.anchorterminal.com/compare/deltabox-lite-vs-modal-sandboxes.md)\n- [DeltaBox Lite vs Offscreen](https://www.anchorterminal.com/compare/deltabox-lite-vs-offscreen.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-18",
    "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",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Modal Sandboxes vs Offscreen",
        "url": ""
      }
    ],
    "description": "Modal Sandboxes scores 65.9 (B) to Offscreen's 62.9 (B) for code sandboxes. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Modal Sandboxes B 65.9",
      "Offscreen B 62.9",
      "scores"
    ],
    "h1": "Modal Sandboxes vs Offscreen",
    "image": "https://www.anchorterminal.com/assets/og/compare-modal-sandboxes-vs-offscreen.png",
    "path": "/compare/modal-sandboxes-vs-offscreen",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Modal Sandboxes vs Offscreen for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-17",
    "url": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-offscreen"
  },
  "tokens": {
    "markdown": 2650,
    "slim": 680
  },
  "version": 1
}
