{
  "data": {
    "a": {
      "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"
    },
    "answer": "Offscreen scores 62.9 (B) on agent readiness against SPACE's 56.2 (C), and leads in 3 of 7 scored categories. SPACE leads on schema \u0026 documentation and transparency \u0026 trust.",
    "b": {
      "slug": "perplexity-space",
      "name": "SPACE",
      "vendor": "Perplexity",
      "vendorUrl": "https://space.docs.perplexity.ai/guide/index.html",
      "kind": "http-api",
      "category": "code-sandboxes",
      "summary": "SPACE is Perplexity's open-source, self-hosted platform for running agent code in Firecracker microVMs. An operator deploys it on Linux with KVM, and applications drive sandboxes through its HTTP and SSE API or an E2B-compatible API.",
      "url": "https://www.anchorterminal.com/tools/perplexity-space",
      "markdownUrl": "https://www.anchorterminal.com/tools/perplexity-space.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/perplexity-space.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/perplexity-space.json",
      "repo": "https://github.com/perplexityai/SPACE",
      "license": "Apache-2.0",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "mixed",
      "authNotes": "Nothing to sign up for with Perplexity. On a deployment, the native API takes `Authorization: Bearer` with a token from a password login at `/auth/v1/sessions` or a service token, and users hold admin or member roles. Command streams on the data plane take a separate session-scoped token, valid for 5 minutes, that the API returns with each command. The E2B Compatibility Wrapper takes an E2B-style key in `X-API-Key`, which an operator creates with scripts/seed-api-key.sh and an SQL insert. SPACE stores only its SHA-256 hash. No key scopes or revocation call were found in the reviewed documentation.",
      "pricing": "free",
      "pricingNotes": "Free under Apache-2.0, with nothing to buy from Perplexity and no hosted SPACE service. The cost is the operator's own hosts, which need Linux x86_64 with KVM (bare-metal instances in Perplexity's reference EKS deployment), plus PostgreSQL and S3-compatible object storage, with Valkey in the reference EKS deployment (checked 2026-10-16).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, the docs, the OpenAPI document or the source read on 16 October 2026. Self-hosted open-source software with no paid endpoint.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-16"
      },
      "docsUrl": "https://space.docs.perplexity.ai/guide/index.html",
      "openapi": "https://space.docs.perplexity.ai/api/openapi.json",
      "capabilities": [
        "sandbox.code",
        "sandbox.persist",
        "sandbox.fs"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "free",
        "no-card",
        "apache-2.0",
        "rust",
        "linux",
        "kubernetes",
        "microvm",
        "openapi",
        "e2b-compatible",
        "pre-1.0",
        "new"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 56.2,
        "grade": "C",
        "agentReady": false,
        "rank": 706,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 13,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 26,
          "payments": 60,
          "reliability": 32,
          "schema": 75,
          "security": 64,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-16"
        },
        "negative": 0,
        "verdict": "Once deployed, SPACE's native API has a public OpenAPI 3.1 contract, stable error codes with a retryable flag and 24-hour idempotency keys, and egress and credential controls sit outside the VM. A person must first deploy it on a Linux x86_64 host with KVM and Kubernetes. Version 0.8.0 has no tagged release, changelog or public container images.",
        "bestFor": "Teams that want E2B-style microVM sandboxes on their own Linux and Kubernetes hosts, with egress and credential control outside the guest.",
        "strengths": [
          "OpenAPI 3.1 for 14 supported operations, served by each deployment at `/openapi-m1.json` and published on the docs site",
          "Errors carry a stable `code`, a `retryable` flag and a request ID, and lifecycle calls and command creation take a 24-hour `Idempotency-Key`",
          "Per-sandbox egress policies with allow and deny lists, operator egress profiles and TLS interception are enforced by a gateway outside the guest",
          "The network gateway can add secret headers from AWS Secrets Manager for an exact host and path, so the guest never holds the value",
          "An E2B Compatibility Wrapper lets the E2B Python SDK, tested at e2b 2.21.1, use a SPACE deployment as its backend"
        ],
        "weaknesses": [
          "A person must deploy it first, on an apt-based Linux x86_64 host with KVM, privileged Docker and Kubernetes (Kind in the guide)",
          "Version 0.8.0 has no git tag, GitHub release or changelog, and CI pushes container images only to a private registry",
          "The `network_policy` and idle-lifecycle create fields are marked incubating, outside the supported contract, and typed as open objects",
          "Credential injection is off by default, needs AWS Secrets Manager, and has no page of its own in the user guide",
          "The wrapper rejects E2B's `mcp`, `volumeMounts` and `iam` options, team template names and pause without memory, and only Python is tested"
        ],
        "agentNotes": [
          "Ask your operator for the API base URL (before `/v1`, or `/api/v1` on shared hosts), the data-plane URL and a bearer token before planning any call",
          "Poll the returned operation until it succeeds and the sandbox is `running` before creating a command. A 202 response is not readiness",
          "Attach to the command's events URL with its session token to start the process, decode base64 output, and treat only `process_exited` as completion",
          "Send an `Idempotency-Key` on creates, lifecycle calls and commands, and retry only when `retryable` is true, after any `Retry-After`",
          "Save output as it arrives. Reconnecting with `Last-Event-ID` returns `resync_required`, not the missed output"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 56.2
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 26,
          "payments": 60,
          "reliability": 32,
          "schema": 75,
          "security": 64,
          "transparency": 73
        },
        "provenanceScore": 63
      },
      "connect": {
        "install": "git clone https://github.com/perplexityai/SPACE.git \u0026\u0026 cd SPACE\nbash infra/space/kind/scripts/install-prereqs.sh\nexport SPACE_VENDOR_ROOT=\"$HOME/.local/share/space/vendor\"\nexport SPACE_KIND_CLUSTER=space-local\nbash infra/space/kind/scripts/install-fc-vendor.sh\nbash infra/space/kind/scripts/bootstrap.sh",
        "http": "curl --fail-with-body --silent --show-error \\\n  --header \"Authorization: Bearer $SPACE_API_TOKEN\" \\\n  \"${SPACE_API_URL%/}/v1/sandboxes\""
      },
      "letme": {
        "capability": "https://letme.dev/sandbox.code",
        "tool": "https://letme.dev/perplexity-space"
      },
      "sameCompany": [
        "pplx-decider",
        "pplx-decider-flash"
      ],
      "area": "agent-runtime",
      "provenance": {
        "legalEntity": "Perplexity AI",
        "domain": "perplexity.ai",
        "domainRegistered": "2022-07-08",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "valid",
        "checked": "2026-10-16",
        "notes": [
          "LICENSE reads 'Copyright 2026 Perplexity AI', and the repository's Claude Code plugin manifest names Perplexity AI as owner. No fuller legal entity name was found in the repository or the docs.",
          "The docs site is space.docs.perplexity.ai and the repository is under GitHub's perplexityai organisation. RDAP from Identity Digital gives perplexity.ai a registration date of 8 July 2022.",
          "No terms or privacy policy applies to the self-hosted software beyond the Apache-2.0 licence. There is no hosted SPACE endpoint, so no status page.",
          "No changelog or release notes. docs/versioning.md says the v0.8.0 tag should mark the tested commit, and the clone had no tags on 16 October 2026.",
          "https://www.perplexity.ai/.well-known/security.txt and https://space.docs.perplexity.ai/.well-known/security.txt both returned Contact security@perplexity.ai, Expires 2027-12-31T00:00:00Z and Policy https://www.perplexity.ai/security on 16 October 2026. The robots.txt of www.perplexity.ai allows that path.",
          "WebFetch refused the docs site as outside its allowed set, so the guide index, API index, openapi.json, build.json files and security.txt were read with curl. space.docs.perplexity.ai has no robots.txt (404). WebFetch refused github.com under its robots.txt, so stars, issues and CI results were not read."
        ],
        "score": 63
      },
      "requirements": {
        "card": "no",
        "freeTier": true,
        "minutes": 120,
        "credential": "mixed",
        "hosting": [
          "self-hosted"
        ],
        "euResidency": "unknown",
        "trainsOnData": "no",
        "zeroRetention": "unknown",
        "selfHost": "yes"
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/perplexity-space.json",
      "live": {
        "slug": "perplexity-space",
        "githubStars": 1160,
        "securityTxt": {
          "url": "https://perplexity.ai/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-12-31T00:00:00Z",
          "checkedAt": "2026-10-17T15:52:25.304343034Z"
        },
        "updatedAt": "2026-10-17T15:52:25.304343034Z"
      }
    },
    "facts": [
      {
        "a": "SDK + MCP",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Mark Phelps",
        "b": "Perplexity",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-16",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "3/5 (4)",
        "b": "3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Offscreen scores 62.9 (B) on agent readiness against SPACE's 56.2 (C), and leads in 3 of 7 scored categories. SPACE leads on schema \u0026 documentation and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Offscreen or SPACE?"
      },
      {
        "answer": "No hosted endpoint is listed for Offscreen. No hosted endpoint is listed for SPACE.",
        "question": "Can an agent call Offscreen and SPACE without installing anything?"
      },
      {
        "answer": "Yes. Offscreen is open source (MIT). SPACE is open source (Apache-2.0).",
        "question": "Are Offscreen and SPACE open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 55 against 32",
          "Agent ergonomics, 74 against 66",
          "Maintenance \u0026 community, 66 against 26"
        ],
        "also": [
          "No key needed to call it"
        ],
        "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"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 75 against 67",
          "Transparency \u0026 trust, 68 against 56"
        ],
        "also": null,
        "goodFor": "Teams that want E2B-style microVM sandboxes on their own Linux and Kubernetes hosts, with egress and credential control outside the guest.",
        "slug": "perplexity-space",
        "watchFor": "A person must deploy it first, on an apt-based Linux x86_64 host with KVM, privileged Docker and Kubernetes (Kind in the guide)"
      }
    ],
    "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-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/agentcore-code-interpreter-vs-perplexity-space.json",
        "title": "Amazon Bedrock AgentCore Code Interpreter vs SPACE",
        "url": "https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-perplexity-space"
      },
      {
        "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/blaxel-sandboxes-vs-perplexity-space.json",
        "title": "Blaxel Sandboxes vs SPACE",
        "url": "https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-perplexity-space"
      },
      {
        "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/cloudflare-sandbox-sdk-vs-perplexity-space.json",
        "title": "Cloudflare Sandbox SDK vs SPACE",
        "url": "https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-perplexity-space"
      },
      {
        "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/daytona-vs-perplexity-space.json",
        "title": "Daytona vs SPACE",
        "url": "https://www.anchorterminal.com/compare/daytona-vs-perplexity-space"
      },
      {
        "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/deno-sandbox-vs-perplexity-space.json",
        "title": "Deno Sandbox vs SPACE",
        "url": "https://www.anchorterminal.com/compare/deno-sandbox-vs-perplexity-space"
      },
      {
        "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/e2b-vs-perplexity-space.json",
        "title": "E2B vs SPACE",
        "url": "https://www.anchorterminal.com/compare/e2b-vs-perplexity-space"
      },
      {
        "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/freestyle-vs-perplexity-space.json",
        "title": "Freestyle vs SPACE",
        "url": "https://www.anchorterminal.com/compare/freestyle-vs-perplexity-space"
      },
      {
        "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/microsoft-execution-containers-vs-perplexity-space.json",
        "title": "Microsoft Execution Containers vs SPACE",
        "url": "https://www.anchorterminal.com/compare/microsoft-execution-containers-vs-perplexity-space"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-offscreen.json",
        "title": "Modal Sandboxes vs Offscreen",
        "url": "https://www.anchorterminal.com/compare/modal-sandboxes-vs-offscreen"
      },
      {
        "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/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/morph-cloud-vs-perplexity-space.json",
        "title": "Morph Cloud vs SPACE",
        "url": "https://www.anchorterminal.com/compare/morph-cloud-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/perplexity-space-vs-runloop.json",
        "title": "SPACE vs Runloop Devboxes",
        "url": "https://www.anchorterminal.com/compare/perplexity-space-vs-runloop"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-space-vs-sprites.json",
        "title": "SPACE vs Sprites",
        "url": "https://www.anchorterminal.com/compare/perplexity-space-vs-sprites"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-space-vs-together-code-sandbox.json",
        "title": "SPACE vs Together Code Sandbox",
        "url": "https://www.anchorterminal.com/compare/perplexity-space-vs-together-code-sandbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-space-vs-vercel-sandbox.json",
        "title": "SPACE vs Vercel Sandbox",
        "url": "https://www.anchorterminal.com/compare/perplexity-space-vs-vercel-sandbox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent37-vs-perplexity-space.json",
        "title": "Agent 37 Cloud vs SPACE",
        "url": "https://www.anchorterminal.com/compare/agent37-vs-perplexity-space"
      },
      {
        "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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deltabox-lite-vs-perplexity-space.json",
        "title": "DeltaBox Lite vs SPACE",
        "url": "https://www.anchorterminal.com/compare/deltabox-lite-vs-perplexity-space"
      }
    ],
    "scores": [
      {
        "by": 23,
        "edge": "offscreen",
        "key": "reliability",
        "name": "Reliability",
        "offscreen": 55,
        "perplexity-space": 32,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 8,
        "edge": "perplexity-space",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "offscreen": 67,
        "perplexity-space": 75,
        "weight": 13
      },
      {
        "by": 8,
        "edge": "offscreen",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "offscreen": 74,
        "perplexity-space": 66,
        "weight": 13
      },
      {
        "by": 2,
        "edge": "perplexity-space",
        "key": "security",
        "name": "Security \u0026 auth",
        "offscreen": 62,
        "perplexity-space": 64,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "offscreen": 60,
        "perplexity-space": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 40,
        "edge": "offscreen",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "offscreen": 66,
        "perplexity-space": 26,
        "weight": 7
      },
      {
        "by": 12,
        "edge": "perplexity-space",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "offscreen": 56,
        "perplexity-space": 68,
        "weight": 7
      }
    ],
    "summary": "Offscreen scores 62.9 (B) on agent readiness against SPACE's 56.2 (C), and leads in 3 of 7 scored categories. SPACE leads on schema \u0026 documentation and transparency \u0026 trust. Both do code sandboxes.",
    "tutorials": [],
    "verdicts": {
      "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.",
      "perplexity-space": "Once deployed, SPACE's native API has a public OpenAPI 3.1 contract, stable error codes with a retryable flag and 24-hour idempotency keys, and egress and credential controls sit outside the VM. A person must first deploy it on a Linux x86_64 host with KVM and Kubernetes. Version 0.8.0 has no tagged release, changelog or public container images."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/offscreen-vs-perplexity-space",
    "json": "https://www.anchorterminal.com/compare/offscreen-vs-perplexity-space.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/offscreen-vs-perplexity-space.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/offscreen-vs-perplexity-space.min.md"
  },
  "markdown": "Offscreen scores 62.9 (B) on agent readiness against SPACE's 56.2 (C), and leads in 3 of 7 scored categories. SPACE leads on schema \u0026 documentation and transparency \u0026 trust. Both do code sandboxes.\n\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- SPACE: grade C, 56.2/100, rank #706 of 1133. Markdown https://www.anchorterminal.com/tools/perplexity-space.md · JSON https://www.anchorterminal.com/api/v1/tools/perplexity-space.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\n## Which one, for what\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- Reliability, 55 against 32\n- Agent ergonomics, 74 against 66\n- Maintenance \u0026 community, 66 against 26\n\nAlso in its favour:\n- No key needed to call it\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### SPACE (C)\n\nGood for: Teams that want E2B-style microVM sandboxes on their own Linux and Kubernetes hosts, with egress and credential control outside the guest.\n\nAhead on:\n- Schema \u0026 documentation, 75 against 67\n- Transparency \u0026 trust, 68 against 56\n\nWatch for: A person must deploy it first, on an apt-based Linux x86_64 host with KVM, privileged Docker and Kubernetes (Kind in the guide)\n\n\n## Score by category\n\n| Category | Weight | Offscreen | SPACE | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 55 | 32 | Offscreen +23 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 67 | 75 | SPACE +8 |\n| Agent ergonomics | 13% (16.2 this run) | 74 | 66 | Offscreen +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 62 | 64 | SPACE +2 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 66 | 26 | Offscreen +40 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 56 | 68 | SPACE +12 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **62.9 · B** | **56.2 · C** | |\n\n## Facts side by side\n\n| Fact | Offscreen | SPACE |\n| --- | --- | --- |\n| Kind | SDK + MCP | HTTP API |\n| Vendor | Mark Phelps | Perplexity |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  | HTTP |\n| Auth | None | OAuth or key |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-10-16 | none |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | no document linked |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Agent reviews | 3/5 (4) | 3/5 (4) |\n\n## Verdicts\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**SPACE.** Once deployed, SPACE's native API has a public OpenAPI 3.1 contract, stable error codes with a retryable flag and 24-hour idempotency keys, and egress and credential controls sit outside the VM. A person must first deploy it on a Linux x86_64 host with KVM and Kubernetes. Version 0.8.0 has no tagged release, changelog or public container images.\n\n## Before you call either\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### SPACE\n\n1. Ask your operator for the API base URL (before `/v1`, or `/api/v1` on shared hosts), the data-plane URL and a bearer token before planning any call\n2. Poll the returned operation until it succeeds and the sandbox is `running` before creating a command. A 202 response is not readiness\n3. Attach to the command's events URL with its session token to start the process, decode base64 output, and treat only `process_exited` as completion\n4. Send an `Idempotency-Key` on creates, lifecycle calls and commands, and retry only when `retryable` is true, after any `Retry-After`\n5. Save output as it arrives. Reconnecting with `Last-Event-ID` returns `resync_required`, not the missed output\n\n## Questions\n\n### Which is better for AI agents, Offscreen or SPACE?\n\nOffscreen scores 62.9 (B) on agent readiness against SPACE's 56.2 (C), and leads in 3 of 7 scored categories. SPACE leads on schema \u0026 documentation and transparency \u0026 trust.\n\n### Can an agent call Offscreen and SPACE without installing anything?\n\nNo hosted endpoint is listed for Offscreen. No hosted endpoint is listed for SPACE.\n\n### Are Offscreen and SPACE open source?\n\nYes. Offscreen is open source (MIT). SPACE is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/offscreen-vs-perplexity-space.json, and with the fewest tokens: https://www.anchorterminal.com/compare/offscreen-vs-perplexity-space.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"offscreen\", \"b\": \"perplexity-space\"}`. From a terminal: `anchor compare offscreen perplexity-space`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/offscreen.json and https://www.anchorterminal.com/api/v1/tools/perplexity-space.json\n\n## Other comparisons with Offscreen or SPACE\n\n- [Agent 37 Cloud vs Offscreen](https://www.anchorterminal.com/compare/agent37-vs-offscreen.md)\n- [Amazon Bedrock AgentCore Code Interpreter vs Offscreen](https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-offscreen.md)\n- [Amazon Bedrock AgentCore Code Interpreter vs SPACE](https://www.anchorterminal.com/compare/agentcore-code-interpreter-vs-perplexity-space.md)\n- [Blaxel Sandboxes vs Offscreen](https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-offscreen.md)\n- [Blaxel Sandboxes vs SPACE](https://www.anchorterminal.com/compare/blaxel-sandboxes-vs-perplexity-space.md)\n- [Cloudflare Sandbox SDK vs Offscreen](https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-offscreen.md)\n- [Cloudflare Sandbox SDK vs SPACE](https://www.anchorterminal.com/compare/cloudflare-sandbox-sdk-vs-perplexity-space.md)\n- [Daytona vs Offscreen](https://www.anchorterminal.com/compare/daytona-vs-offscreen.md)\n- [Daytona vs SPACE](https://www.anchorterminal.com/compare/daytona-vs-perplexity-space.md)\n- [Deno Sandbox vs Offscreen](https://www.anchorterminal.com/compare/deno-sandbox-vs-offscreen.md)\n- [Deno Sandbox vs SPACE](https://www.anchorterminal.com/compare/deno-sandbox-vs-perplexity-space.md)\n- [E2B vs Offscreen](https://www.anchorterminal.com/compare/e2b-vs-offscreen.md)\n- [E2B vs SPACE](https://www.anchorterminal.com/compare/e2b-vs-perplexity-space.md)\n- [Freestyle vs Offscreen](https://www.anchorterminal.com/compare/freestyle-vs-offscreen.md)\n- [Freestyle vs SPACE](https://www.anchorterminal.com/compare/freestyle-vs-perplexity-space.md)\n- [Microsoft Execution Containers vs Offscreen](https://www.anchorterminal.com/compare/microsoft-execution-containers-vs-offscreen.md)\n- [Microsoft Execution Containers vs SPACE](https://www.anchorterminal.com/compare/microsoft-execution-containers-vs-perplexity-space.md)\n- [Modal Sandboxes vs Offscreen](https://www.anchorterminal.com/compare/modal-sandboxes-vs-offscreen.md)\n- [Modal Sandboxes vs SPACE](https://www.anchorterminal.com/compare/modal-sandboxes-vs-perplexity-space.md)\n- [Morph Cloud vs Offscreen](https://www.anchorterminal.com/compare/morph-cloud-vs-offscreen.md)\n- [Morph Cloud vs SPACE](https://www.anchorterminal.com/compare/morph-cloud-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- [SPACE vs Runloop Devboxes](https://www.anchorterminal.com/compare/perplexity-space-vs-runloop.md)\n- [SPACE vs Sprites](https://www.anchorterminal.com/compare/perplexity-space-vs-sprites.md)\n- [SPACE vs Together Code Sandbox](https://www.anchorterminal.com/compare/perplexity-space-vs-together-code-sandbox.md)\n- [SPACE vs Vercel Sandbox](https://www.anchorterminal.com/compare/perplexity-space-vs-vercel-sandbox.md)\n- [Agent 37 Cloud vs SPACE](https://www.anchorterminal.com/compare/agent37-vs-perplexity-space.md)\n- [DeltaBox Lite vs Offscreen](https://www.anchorterminal.com/compare/deltabox-lite-vs-offscreen.md)\n- [DeltaBox Lite vs SPACE](https://www.anchorterminal.com/compare/deltabox-lite-vs-perplexity-space.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": "Offscreen vs SPACE",
        "url": ""
      }
    ],
    "description": "Offscreen scores 62.9 (B) to SPACE's 56.2 (C) for code sandboxes. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Offscreen B 62.9",
      "SPACE C 56.2",
      "scores"
    ],
    "h1": "Offscreen vs SPACE",
    "image": "https://www.anchorterminal.com/assets/og/compare-offscreen-vs-perplexity-space.png",
    "path": "/compare/offscreen-vs-perplexity-space",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Offscreen vs SPACE for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-17",
    "url": "https://www.anchorterminal.com/compare/offscreen-vs-perplexity-space"
  },
  "tokens": {
    "markdown": 2650,
    "slim": 530
  },
  "version": 1
}
