{
  "data": {
    "a": {
      "slug": "letta",
      "name": "Letta",
      "vendor": "Letta",
      "vendorUrl": "https://www.letta.com",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Letta, from the MemGPT team, is an open-source agent harness (formerly Letta Code) for stateful agents that keep memory blocks, skills and conversations across sessions, used from a CLI, chat.letta.com, messaging channels or the Agent SDK, with Letta Cloud.",
      "url": "https://www.anchorterminal.com/tools/letta",
      "markdownUrl": "https://www.anchorterminal.com/tools/letta.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/letta.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/letta.json",
      "dns": "letta.grade.anchorterminal.com",
      "repo": "https://github.com/letta-ai/letta-code",
      "license": "Apache-2.0",
      "transports": [
        "stdio"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@letta-ai/letta-code"
        },
        {
          "registry": "pypi",
          "name": "letta"
        }
      ],
      "auth": "mixed",
      "authNotes": "Local use needs only the user's own model keys or coding-plan logins through `/connect`. Signing in with Letta (`/login`, OAuth in the browser) stores agents in Letta Cloud and enables remote computers and secrets. Developer plans use Letta API keys.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at $0 with bring-your-own keys and limited agents and storage. Pro $20 a month with Letta Auto quotas and up to 20 agents. API plan $20 a month plus $0.10 per active agent a month and $0.00015 a second of tool execution, with LLM usage at token cost.",
      "priceSummary": "$20 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the letta-code source, docs.letta.com's llms.txt or the pricing page (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 3793,
        "npmWeekly": 85863,
        "pypiWeekly": 2225,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.letta.com",
      "llmsTxt": "https://docs.letta.com/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent",
        "memory.store",
        "memory.search"
      ],
      "tags": [
        "open-source",
        "local",
        "hosted",
        "freemium",
        "apache-2.0",
        "typescript",
        "cli",
        "headless",
        "telemetry",
        "llms-txt",
        "memory"
      ],
      "lastRelease": "2026-11-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.7,
        "grade": "C",
        "agentReady": false,
        "rank": 684,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 18,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 85,
          "payments": 60,
          "reliability": 58,
          "schema": 70,
          "security": 35,
          "transparency": 55
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Letta's open-source harness gives agents git-tracked memory blocks, skills, subagents and headless JSON runs, with a $0 plan and public per-agent API prices. It starts in the unrestricted permission mode, defaults to Letta Cloud, sends usage telemetry unless LETTA_CODE_TELEM=0 is set, and the V1 API server the comparisons describe is retired.",
        "bestFor": "Long-lived coding agents and assistants that keep memory and identity across sessions and machines.",
        "strengths": [
          "Apache-2.0 harness on npm and PyPI with 0.34.42 released on 6 November 2026, and releases most days",
          "Memory blocks and MemFS keep an agent's context in git, with optional sync to the user's own repository",
          "Headless runs with `-p` and `--output-format json`, plus a TypeScript Agent SDK and a self-hosted App Server",
          "Public prices, a $0 plan with bring-your-own keys, and an API plan at $20 a month plus $0.10 per active agent",
          "Runs locally without signing in, with `letta backend local` or `--backend local`"
        ],
        "weaknesses": [
          "The default permission mode is `unrestricted`, the renamed `bypassPermissions`, so tool calls aren't confirmed unless the user picks another mode",
          "Letta Cloud is the default backend, so agent memory and conversations go to Letta's servers unless the user chooses local",
          "Usage telemetry is on by default, with the LETTA_CODE_TELEM=0 opt-out found only in the source",
          "The Letta V1 Python API server is retired and unsupported, and the letta-ai/letta repository is now a landing page",
          "The privacy policy names no legal entity or date and says hosted message data may train future models"
        ],
        "agentNotes": [
          "Start headless runs with an explicit permission mode such as `standard` or `strict`; the default auto-approves tools",
          "Pass `--backend local` for work that must stay on the machine, since Letta Cloud is the default",
          "Set LETTA_CODE_TELEM=0 in unattended runs if usage events must not be sent",
          "Use `letta -p --output-format json` for scripted runs and parse the JSON, not the terminal output",
          "Don't plan on the retired V1 REST server or `.af` AgentFile import; both are gone"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.7
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 85,
          "payments": 60,
          "reliability": 58,
          "schema": 70,
          "security": 35,
          "transparency": 55
        },
        "provenanceScore": 54,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install -g @letta-ai/letta-code",
        "headless": {
          "local": "letta --backend local",
          "run": "letta -p --output-format json \"\u003ctask\u003e\"",
          "server": "letta server"
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/letta"
      },
      "alsoIn": [
        "agent-memory"
      ],
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 20,
          "note": "Letta Auto quotas, up to 20 agents"
        },
        {
          "item": "API plan active agent",
          "unit": "month",
          "usd": 0.1,
          "note": "Plus $20 a month base and $0.00015 a second of tool execution"
        }
      ],
      "provenance": {
        "legalEntity": "",
        "domain": "letta.com",
        "domainRegistered": "1997-10-01",
        "endpointOnVendorDomain": null,
        "terms": "https://www.letta.com/terms-of-service",
        "privacy": "https://www.letta.com/privacy-policy",
        "statusPage": "",
        "changelog": "https://github.com/letta-ai/letta-code/releases",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The privacy policy shows no last-updated date and names no legal entity, only Letta. It says hosted message data may be used to train new models and that basic telemetry can be turned off in settings when supported.",
          "www.letta.com and docs.letta.com robots.txt allow all crawlers.",
          "RDAP gives letta.com a registration date of 1 October 1997, which predates the company, so the domain was bought later.",
          "/.well-known/security.txt returns 404. SECURITY.md in letta-ai/letta asks for reports to support@letta.com.",
          "The terms URL is the conventional path and was not read; the policy reader checks it at landing."
        ],
        "score": 54
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/letta.json",
      "live": {
        "slug": "letta",
        "versions": [
          {
            "registry": "github",
            "name": "letta-ai/letta-code",
            "version": "v0.34.43",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:39:39.434291816Z"
          },
          {
            "registry": "npm",
            "name": "@letta-ai/letta-code",
            "version": "0.34.43",
            "seenAt": "2026-11-06T23:39:38.413416142Z"
          },
          {
            "registry": "pypi",
            "name": "letta",
            "version": "0.34.12",
            "released": "2026-10-12",
            "seenAt": "2026-11-06T23:39:39.241816797Z"
          }
        ],
        "githubStars": 3794,
        "npmWeekly": 85863,
        "pypiWeekly": 2225,
        "securityTxt": {
          "url": "https://letta.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:02.768002207Z"
        },
        "llmsTxt": {
          "url": "https://docs.letta.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:52.28674296Z"
        },
        "pages": [
          {
            "url": "https://www.letta.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:30:46.549817082Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "947a68f3e3a0"
          },
          {
            "url": "https://www.letta.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:30:48.740250784Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "63f31d6ebfb8"
          }
        ],
        "updatedAt": "2026-11-07T16:01:02.768002207Z"
      }
    },
    "answer": "OpenAI Codex scores 73.5 (BB) on agent readiness against Letta's 59.7 (C), and leads in 5 of 7 scored categories.",
    "b": {
      "slug": "openai-codex",
      "name": "OpenAI Codex",
      "vendor": "OpenAI",
      "vendorUrl": "https://openai.com",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "OpenAI's coding agent for software development tasks.",
      "url": "https://www.anchorterminal.com/tools/openai-codex",
      "markdownUrl": "https://www.anchorterminal.com/tools/openai-codex.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/openai-codex.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/openai-codex.json",
      "dns": "openai-codex.grade.anchorterminal.com",
      "repo": "https://github.com/openai/codex",
      "license": "Apache-2.0 (Codex CLI, its Rust crates and the TypeScript and Python SDKs). Codex cloud is a hosted service under OpenAI's terms",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@openai/codex"
        }
      ],
      "auth": "mixed",
      "authNotes": "Sign in with a ChatGPT account (Free, Go, Plus, Pro, Business, Edu or Enterprise) or use an OpenAI API key. Cloud work such as GitHub code review and the Slack integration comes with Plus and above, and none of it works with an API key. `--oss` talks to a local Ollama or LM Studio server and needs no account.",
      "pricing": "freemium",
      "pricingNotes": "Included in every ChatGPT plan. Free $0, Go $8 a month, Plus $20, Pro from $100 (tiers at $100, $200 and $500), Business $20 a user a month billed annually for two or more users, Enterprise and Edu by quote. On Plus the docs estimate 15 to 160 local messages per five hours with GPT-6.1 Sol, and Pro has no five-hour limit. Cloud tasks use more of the allowance. With an API key you pay API token rates and can't use the cloud agent (checked 2026-10-02).",
      "priceSummary": "$20 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the pricing page or the source (checked 2026-10-02).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 126000,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-02"
      },
      "docsUrl": "https://developers.openai.com/codex",
      "llmsTxt": "https://learn.chatgpt.com/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client"
      ],
      "tags": [
        "official",
        "harness",
        "coding-agent",
        "cli",
        "open-source",
        "rust",
        "typescript",
        "python",
        "mcp",
        "llms-txt",
        "telemetry-default-on",
        "pre-1.0",
        "free-tier",
        "no-card",
        "hosted",
        "status-page"
      ],
      "lastRelease": "2026-10-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 73.5,
        "grade": "BB",
        "agentReady": true,
        "rank": 107,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 1,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 87,
          "payments": 60,
          "reliability": 55,
          "schema": 90,
          "security": 82,
          "transparency": 85
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-04-14. CVE-2025-61260 (GHSA-xrxf-jgv3-qmrm), critical (CVSS 9.8 from CISA-ADP), code execution through MCP configuration files in a repository for Codex CLI 0.23.0 and earlier, published to NVD and the GitHub Advisory Database from Check Point Research's 2025 report. Fixed in 2025 and documented by the researcher, with no advisory in OpenAI's own repository, so a small deduction (https://nvd.nist.gov/vuln/detail/CVE-2025-61260; https://research.checkpoint.com/2025/openai-codex-cli-command-injection-vulnerability/)"
        ],
        "verdict": "Sandbox on by default on macOS, Linux and Windows, with the network off and `.git` and `.codex` read-only. Pre-1.0 at 0.166.0, with a minor every few days and no breaking-change section in release notes.",
        "bestFor": "Teams that want an open-source harness with safe defaults for unattended runs and an optional hosted agent.",
        "strengths": [
          "Sandbox on by default on macOS, Linux and Windows, with the network off and `.git` and `.codex` read-only",
          "Apache-2.0, with public CI and a JSON Schema for config.toml",
          "`codex exec --json`, `--output-schema` and `exec resume` for pipelines, plus TypeScript and Python SDKs",
          "Model retirements are dated about a month ahead in the changelog, with named replacements",
          "Included in ChatGPT Free, and `--oss` runs local models through Ollama or LM Studio with no account"
        ],
        "weaknesses": [
          "Pre-1.0 at 0.166.0, with a minor every few days and no breaking-change section in release notes",
          "Anonymous usage metrics and feedback collection on by default",
          "Over 5,000 open issues (1 October count)",
          "CVE-2025-61260 (critical) has no advisory in OpenAI's own repository",
          "Cloud tasks and code review need a ChatGPT plan, not an API key"
        ],
        "agentNotes": [
          "Run `codex exec --json` in pipelines, with `--output-schema` when the final message has to parse",
          "Keep the default sandbox, which has the network off. `--yolo` removes both the sandbox and approvals",
          "Replace `gpt-5.5` with `gpt-6.1-sol` in saved configs, custom agents and scripts under ChatGPT sign-in. GPT-5.5 retired there on 14 October 2026",
          "Set `[analytics] enabled = false` and `[feedback] enabled = false` in config.toml to keep usage data local",
          "Pin the npm version. A 0.x minor lands every few days"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 73.5
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 87,
          "payments": 60,
          "reliability": 55,
          "schema": 90,
          "security": 82,
          "transparency": 75
        },
        "provenanceScore": 94,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-10-27",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm i -g @openai/codex   # or: brew install --cask codex",
        "headless": {
          "run": "codex exec --json \"fix the failing test\""
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/openai-codex"
      },
      "sameCompany": [
        "openai-api",
        "openai-embeddings",
        "openai-guardrails",
        "openai-moderation",
        "openai-image-api",
        "openai-sora",
        "openai-speech-to-text",
        "gpt-live",
        "openai-realtime",
        "openai-agents-sdk",
        "openai-decisions-api",
        "openai-agents-api",
        "gpt-oss-120b",
        "gpt-oss-20b"
      ],
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "ChatGPT Plus",
          "unit": "month",
          "usd": 20,
          "note": "includes Codex local and cloud"
        },
        {
          "item": "ChatGPT Pro",
          "unit": "month",
          "usd": 100,
          "note": "lowest Pro tier, no five-hour limit"
        }
      ],
      "provenance": {
        "legalEntity": "OpenAI OpCo, LLC",
        "domain": "openai.com",
        "domainRegistered": "2007-01-19",
        "endpointOnVendorDomain": null,
        "terms": "https://openai.com/policies/services-agreement/",
        "privacy": "https://openai.com/policies/privacy-policy/",
        "statusPage": "https://status.openai.com",
        "changelog": "https://github.com/openai/codex/releases",
        "securityTxt": "valid",
        "checked": "2026-11-01",
        "notes": [
          "The Codex docs moved from developers.openai.com/codex to learn.chatgpt.com, which answered with a 308 redirect to learn.chatgpt.com/docs on 1 November 2026, and the installer is served from chatgpt.com.",
          "learn.chatgpt.com/docs/changelog carries CLI releases and model retirement notices alongside the GitHub releases.",
          "Legal entity, domain date and security.txt are from the openai-api listing's check of 26 September 2026. That security.txt had no Expires field when the openai-api listing last read it (27 October)."
        ],
        "score": 94
      },
      "requirements": {
        "setupChecked": true,
        "complianceChecked": true,
        "card": "paid-only",
        "freeTier": true,
        "minutes": 3,
        "credential": "mixed",
        "hosting": [
          "US",
          "EU",
          "UK",
          "CA",
          "APAC",
          "self-hosted"
        ],
        "euResidency": "enterprise",
        "trainsOnData": "no",
        "zeroRetention": "enterprise",
        "certifications": [
          "SOC 2 Type II",
          "ISO 27001",
          "ISO 27701",
          "ISO 42001",
          "CSA STAR",
          "GDPR"
        ],
        "dpa": true,
        "selfHost": "yes"
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/openai-codex.json",
      "live": {
        "slug": "openai-codex",
        "vendorStatus": {
          "page": "https://status.openai.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T18:21:37.827637363Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "openai/codex",
            "version": "rust-v0.167.0",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:51:41.516315744Z"
          },
          {
            "registry": "npm",
            "name": "@openai/codex",
            "version": "0.167.0",
            "seenAt": "2026-11-06T23:51:41.276230728Z"
          }
        ],
        "githubStars": 133483,
        "npmWeekly": 26010557,
        "securityTxt": {
          "url": "https://openai.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-07T16:00:49.231731777Z"
        },
        "llmsTxt": {
          "url": "https://learn.chatgpt.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:22.790079935Z"
        },
        "domain": {
          "domain": "openai.com",
          "registered": "2007-01-19",
          "source": "https://rdap.verisign.com/com/v1/domain/openai.com",
          "checkedAt": "2026-11-01T14:19:18.345389832Z"
        },
        "pages": [
          {
            "url": "https://learn.chatgpt.com/docs/changelog",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-07T14:12:41.31964533Z",
            "changedAt": "2026-11-07T14:12:41.31964533Z",
            "fingerprint": "614cbd00fe11"
          }
        ],
        "github": {
          "repo": "openai/codex",
          "checkedAt": "2026-11-02T09:12:46.962484446Z",
          "stars": 132816,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-02T08:31:32Z",
          "openIssues": 25881,
          "openPRs": 164,
          "issuesOpened90d": 17364,
          "issuesClosed90d": 3116,
          "prsMerged90d": 4019,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 0,
            "failure": 46,
            "other": 4,
            "latest": "failure",
            "latestAt": "2026-11-02T08:47:19Z"
          },
          "advisories": [
            {
              "ghsa": "GHSA-w5fx-fh39-j5rw",
              "cve": "CVE-2025-59532",
              "severity": "high",
              "published": "2025-09-19T00:24:10Z"
            }
          ]
        },
        "updatedAt": "2026-11-07T18:21:37.827637363Z"
      }
    },
    "edges": [
      {
        "by": 47,
        "category": "security",
        "leads": "openai-codex",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Harness reading of the framework checklist, as for the other harnesses. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for injection posture, 15 for audit and 20 for the security programme. Letta Cloud is the default backend, so agent state and conversations go to Letta's servers, and telemetry is on by default (10 of 30). The default permission mode is `unrestricted`; `standard`, `acceptEdits` and `strict` are opt-in, and cloud sandboxes exist for remote work (4 of 20). No prompt-injection guidance found for fetched pages or channel messages (5 of 15). Conversation search and git history of memory give an operator a record of what the agent saw and changed (10 of 15). SECURITY.md routes reports to support@letta.com and scopes out the retired server; no security.txt, bounty or certification found (6 of 20). Total 35.",
          "b": "Framework reading (telemetry defaults, approvals, guardrails, sandboxing), five lines. Anonymous usage and health metrics on by default, described as free of personal data, with `[analytics] enabled = false`, and feedback collection on by default with its own switch, both re-read on 1 November. Credentials are a ChatGPT login or an API key (20). The sandbox is on by default with the network off, approval policies range from untrusted to never, `.git`, `.agents` and `.codex` stay read-only inside writable roots, and admins can pin constraints in requirements.toml (19). Network off by default locally. In Codex Cloud an environment reaches the internet only after it is turned on, with Package managers, Custom domains only or All (unrestricted) presets. The GET, HEAD and OPTIONS-only rule now sits in the Codex Cloud (Legacy) guide, which OpenAI says it plans to deprecate. The docs keep a worked example of prompt-injection exfiltration (14). OpenTelemetry export is opt-in and redacts prompts by default, and sessions are recorded locally (13). Bugcrowd programme, SECURITY.md and a signed security.txt on openai.com, per the 1 October check, not re-read on 1 November. As on the openai-api and openai-agents-sdk listings, that security.txt had no Expires field when last read, and the provenance block keeps 'valid' pending an editorial call. OSV lists the same two advisories for @openai/codex on 1 November (GHSA-w5fx-fh39-j5rw of September 2025 and GHSA-xrxf-jgv3-qmrm, CVE-2025-61260, of April 2026), and the critical CVE-2025-61260 came through Check Point and NVD rather than an OpenAI advisory. 0.165.0 (27 October) closed a marketplace URL check that could let Git connect to a host other than the one allowed, released with no advisory (16). SOC 2 isn't scored on the framework reading. 20 + 19 + 14 + 13 + 16 = 82."
        },
        "scores": {
          "a": 35,
          "b": 82
        }
      },
      {
        "by": 30,
        "category": "transparency",
        "leads": "openai-codex",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Apache-2.0 (30). The privacy policy has no date, no legal entity and no retention periods, and says hosted message data may train future models (8 of 30). The README and docs mark AgentFile, the Electron app and the V1 server as deprecated or retired, without dated notice periods (12 of 20). Telemetry is described in the privacy policy only as basic and opt-out when supported; the LETTA_CODE_TELEM=0 switch appears only in the source (5 of 20). Total 55.",
          "b": "Apache-2.0 for the CLI and SDKs (30). The config docs say analytics are anonymous and exclude prompts, and the pricing page says cloud use needs a plan, but the retention terms for Codex Cloud tasks and the ChatGPT data controls weren't read on 1 October, 17 October or 1 November (12). The changelog at learn.chatgpt.com dates model retirements ahead of time with replacements (GPT-5.4 and GPT-5.4 mini announced on 31 July for 31 August, GPT-5.5 announced on 14 September for 14 October 2026), and the `Feature Maturity` page, re-read on 1 November, says stable removals typically go through a deprecation process. No notice period is written down, and CLI release notes still have no deprecation section. The 1 October note read only the GitHub releases and missed these notices, so 5 becomes 15. Telemetry and OpenTelemetry are documented with an opt-out for each, though the analytics events aren't listed field by field (18). 30 + 12 + 15 + 18 = 75."
        },
        "scores": {
          "a": 55,
          "b": 85
        }
      },
      {
        "by": 20,
        "category": "schema",
        "leads": "openai-codex",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Harness reading. docs.letta.com serves llms.txt and a Markdown version of every page, with an `applies_to` block saying which backend and interface each page covers (10). TypeScript types for the Agent SDK and a documented App Server WebSocket protocol, but no JSON Schema or OpenAPI for the harness (15 of 25). Pages say when to use local or cloud backends, subagents and channels (14 of 20). Permission modes and options are typed in the SDK (12 of 15). Example applications and a remote client reference (11 of 15). Releases most days but no changelog file (8 of 15). Total 70.",
          "b": "Framework reading. A JSON Schema for config.toml in the repository (codex-rs/core/config.schema.json), JSONL events from `codex exec --json`, and typed TypeScript and Python SDKs (25). llms.txt at learn.chatgpt.com with a Markdown twin for every page, re-read on 1 November (10). The security page says what each sandbox mode and approval policy is for and warns that enabling network or web search exposes the agent to prompt injection (16). Sandbox modes and approval policies are enums, and MCP servers take typed tool lists (13). Examples throughout, and `--output-schema` validates the final message. The non-interactive page names the event types, `turn.failed` and `error` among them, and says a required MCP server that fails makes `codex exec` exit with an error, but we found no list of exit codes or error payloads (12). Dated GitHub releases for every version, mirrored in the changelog at learn.chatgpt.com, which runs to 0.166.0 on 29 October (14). 25 + 10 + 16 + 13 + 12 + 14 = 90."
        },
        "scores": {
          "a": 70,
          "b": 90
        }
      },
      {
        "by": 13,
        "category": "ergonomics",
        "leads": "openai-codex",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Harness reading. Toolsets switch with `/model`, skills load per agent, and subagents run in the background (18 of 25). Context is managed through memory blocks, reflection and dreaming (12 of 20). `letta -p --output-format json` for scripted runs and an App Server for programmatic control (12 of 20). Conversations resume by agent and conversation id, and memory is git-tracked so changes can be reverted (15 of 20). Runs with no account on the local backend, with one SDK language, TypeScript (10 of 15). Total 67.",
          "b": "Framework reading, adapted to a harness driven by a pipeline. `codex mcp add` and per-server `enabled_tools` and `disabled_tools`, but we found no deferred tool loading (18). `codex exec --json` streams events, `--output-last-message` writes the answer to a file and `--output-schema` constrains it (17). Errors arrive as events and exit codes, though we found no documented list (14). `codex exec resume` and `codex resume --last` continue a session, 0.163.0 restores a resumed thread's permissions and network approvals, and 0.166.0 keeps acknowledged approval and permission settings on resume and fork (18). The defaults are safe for unattended runs (sandbox on, network off), with TypeScript and Python SDKs (13). 18 + 17 + 14 + 18 + 13 = 80."
        },
        "scores": {
          "a": 67,
          "b": 80
        }
      }
    ],
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Letta",
        "b": "OpenAI",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "Apache-2.0 (Codex CLI, its Rust crates and the TypeScript and Python SDKs). Codex cloud is a hosted service under OpenAI's terms",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-06",
        "b": "2026-10-29",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "3.8k stars, 86k npm/wk, 2.2k PyPI/wk",
        "b": "126k stars",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "OpenAI Codex scores 73.5 (BB) on agent readiness against Letta's 59.7 (C), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, Letta or OpenAI Codex?"
      },
      {
        "answer": "Yes. Letta is open source (Apache-2.0). OpenAI Codex is open source (Apache-2.0 (Codex CLI, its Rust crates and the TypeScript and Python SDKs). Codex cloud is a hosted service under OpenAI's terms).",
        "question": "Are Letta and OpenAI Codex open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "Long-lived coding agents and assistants that keep memory and identity across sessions and machines.",
        "slug": "letta",
        "watchFor": "The default permission mode is `unrestricted`, the renamed `bypassPermissions`, so tool calls aren't confirmed unless the user picks another mode"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 90 against 70",
          "Agent ergonomics, 80 against 67",
          "Security \u0026 auth, 82 against 35",
          "Transparency \u0026 trust, 85 against 55"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Free to start without a card"
        ],
        "goodFor": "Teams that want an open-source harness with safe defaults for unattended runs and an optional hosted agent.",
        "slug": "openai-codex",
        "watchFor": "Pre-1.0 at 0.166.0, with a minor every few days and no breaking-change section in release notes"
      }
    ],
    "history": {
      "letta": null,
      "openai-codex": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 73.4,
          "fromGrade": "BB",
          "to": 73.5,
          "toGrade": "BB"
        },
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-10-17",
          "delta": 0.4,
          "from": 73,
          "fromGrade": "BB",
          "to": 73.4,
          "toGrade": "BB"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.4,
          "from": 73.4,
          "fromGrade": "BB",
          "to": 73,
          "toGrade": "BB"
        }
      ]
    },
    "job": {
      "capability": "agent.harness",
      "name": "Agent harnesses"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-letta.json",
        "title": "Agent Zero vs Letta",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-openai-codex.json",
        "title": "Agent Zero vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-letta.json",
        "title": "Aider vs Letta",
        "url": "https://www.anchorterminal.com/compare/aider-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-openai-codex.json",
        "title": "Aider vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/aider-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-letta.json",
        "title": "Amp vs Letta",
        "url": "https://www.anchorterminal.com/compare/amp-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-openai-codex.json",
        "title": "Amp vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/amp-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-letta.json",
        "title": "Antigravity CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-openai-codex.json",
        "title": "Antigravity CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-letta.json",
        "title": "Auggie CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-openai-codex.json",
        "title": "Auggie CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/axlr-vs-letta.json",
        "title": "AXLR vs Letta",
        "url": "https://www.anchorterminal.com/compare/axlr-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/axlr-vs-openai-codex.json",
        "title": "AXLR vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/axlr-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-letta.json",
        "title": "Claude Code vs Letta",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-openai-codex.json",
        "title": "Claude Code vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-letta.json",
        "title": "Cline vs Letta",
        "url": "https://www.anchorterminal.com/compare/cline-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-openai-codex.json",
        "title": "Cline vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/cline-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/conductor-vs-letta.json",
        "title": "Conductor vs Letta",
        "url": "https://www.anchorterminal.com/compare/conductor-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/conductor-vs-openai-codex.json",
        "title": "Conductor vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/conductor-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-letta.json",
        "title": "Crush vs Letta",
        "url": "https://www.anchorterminal.com/compare/crush-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-openai-codex.json",
        "title": "Crush vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/crush-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-letta.json",
        "title": "Cursor CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-openai-codex.json",
        "title": "Cursor CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-letta.json",
        "title": "DeepSeek Harness (dsh) vs Letta",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-codex.json",
        "title": "DeepSeek Harness (dsh) vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-letta.json",
        "title": "dsh-superagent (DeepSeek) vs Letta",
        "url": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-openai-codex.json",
        "title": "dsh-superagent (DeepSeek) vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/devin-vs-letta.json",
        "title": "Devin vs Letta",
        "url": "https://www.anchorterminal.com/compare/devin-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/devin-vs-openai-codex.json",
        "title": "Devin vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/devin-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-letta.json",
        "title": "Droid CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-openai-codex.json",
        "title": "Droid CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-letta.json",
        "title": "Pi vs Letta",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.json",
        "title": "Pi vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emdash-vs-letta.json",
        "title": "Emdash vs Letta",
        "url": "https://www.anchorterminal.com/compare/emdash-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emdash-vs-openai-codex.json",
        "title": "Emdash vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/emdash-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-letta.json",
        "title": "Gemini CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-openai-codex.json",
        "title": "Gemini CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-letta.json",
        "title": "GitHub Copilot CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-openai-codex.json",
        "title": "GitHub Copilot CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-letta.json",
        "title": "goose vs Letta",
        "url": "https://www.anchorterminal.com/compare/goose-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-openai-codex.json",
        "title": "goose vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/goose-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-letta.json",
        "title": "Harness² vs Letta",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-openai-codex.json",
        "title": "Harness² vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-letta.json",
        "title": "HarnessRouter vs Letta",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-openai-codex.json",
        "title": "HarnessRouter vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-letta.json",
        "title": "Jules vs Letta",
        "url": "https://www.anchorterminal.com/compare/jules-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-openai-codex.json",
        "title": "Jules vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/jules-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-letta.json",
        "title": "Junie CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/junie-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-openai-codex.json",
        "title": "Junie CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/junie-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-letta.json",
        "title": "Kilo Code CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-openai-codex.json",
        "title": "Kilo Code CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-letta.json",
        "title": "Kimi Code CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-codex.json",
        "title": "Kimi Code CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiro-cli-vs-letta.json",
        "title": "Kiro CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/kiro-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiro-cli-vs-openai-codex.json",
        "title": "Kiro CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/kiro-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-mini-swe-agent.json",
        "title": "Letta vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/letta-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-minimax-code.json",
        "title": "Letta vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/letta-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-mistral-vibe-cli.json",
        "title": "Letta vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/letta-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-muse-code.json",
        "title": "Letta vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/letta-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-openai-agents-api.json",
        "title": "Letta vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/letta-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-opencode.json",
        "title": "Letta vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/letta-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-openhands.json",
        "title": "Letta vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/letta-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-openmausbot.json",
        "title": "Letta vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/letta-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-orca.json",
        "title": "Letta vs Orca",
        "url": "https://www.anchorterminal.com/compare/letta-vs-orca"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-paseo.json",
        "title": "Letta vs Paseo",
        "url": "https://www.anchorterminal.com/compare/letta-vs-paseo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-prime-agent.json",
        "title": "Letta vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/letta-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-qoder-cli.json",
        "title": "Letta vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/letta-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-qwen-code.json",
        "title": "Letta vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/letta-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-reflection-mirror.json",
        "title": "Letta vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/letta-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-rovo-dev-cli.json",
        "title": "Letta vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/letta-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-sculptor.json",
        "title": "Letta vs Sculptor",
        "url": "https://www.anchorterminal.com/compare/letta-vs-sculptor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-t3-code.json",
        "title": "Letta vs T3 Code",
        "url": "https://www.anchorterminal.com/compare/letta-vs-t3-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-traycer.json",
        "title": "Letta vs Traycer",
        "url": "https://www.anchorterminal.com/compare/letta-vs-traycer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-unstoppable.json",
        "title": "Letta vs Unstoppable",
        "url": "https://www.anchorterminal.com/compare/letta-vs-unstoppable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-verdent.json",
        "title": "Letta vs Verdent",
        "url": "https://www.anchorterminal.com/compare/letta-vs-verdent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-vibe-trading.json",
        "title": "Letta vs Vibe-Trading",
        "url": "https://www.anchorterminal.com/compare/letta-vs-vibe-trading"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-warp.json",
        "title": "Letta vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/letta-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openai-codex.json",
        "title": "mini-swe-agent vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-openai-codex.json",
        "title": "MiniMax Code vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openai-codex.json",
        "title": "Mistral Vibe CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-openai-codex.json",
        "title": "Muse Code vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openai-codex.json",
        "title": "OpenAI Agents API vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-opencode.json",
        "title": "OpenAI Codex vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-openhands.json",
        "title": "OpenAI Codex vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-openmausbot.json",
        "title": "OpenAI Codex vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-orca.json",
        "title": "OpenAI Codex vs Orca",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-orca"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-paseo.json",
        "title": "OpenAI Codex vs Paseo",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-paseo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-prime-agent.json",
        "title": "OpenAI Codex vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-qoder-cli.json",
        "title": "OpenAI Codex vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-qwen-code.json",
        "title": "OpenAI Codex vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-reflection-mirror.json",
        "title": "OpenAI Codex vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-rovo-dev-cli.json",
        "title": "OpenAI Codex vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-sculptor.json",
        "title": "OpenAI Codex vs Sculptor",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-sculptor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-t3-code.json",
        "title": "OpenAI Codex vs T3 Code",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-t3-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-traycer.json",
        "title": "OpenAI Codex vs Traycer",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-traycer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-unstoppable.json",
        "title": "OpenAI Codex vs Unstoppable",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-unstoppable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-verdent.json",
        "title": "OpenAI Codex vs Verdent",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-verdent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-vibe-trading.json",
        "title": "OpenAI Codex vs Vibe-Trading",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-vibe-trading"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-codex-vs-warp.json",
        "title": "OpenAI Codex vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/openai-codex-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clawboo-vs-letta.json",
        "title": "Clawboo vs Letta",
        "url": "https://www.anchorterminal.com/compare/clawboo-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-letta.json",
        "title": "CLI Manager vs Letta",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-autonomous-vs-letta.json",
        "title": "Harness vs Letta",
        "url": "https://www.anchorterminal.com/compare/harness-autonomous-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-paperclip.json",
        "title": "Letta vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/letta-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-parallax-agents.json",
        "title": "Letta vs Parallax",
        "url": "https://www.anchorterminal.com/compare/letta-vs-parallax-agents"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 3,
        "edge": "letta",
        "key": "reliability",
        "letta": 58,
        "name": "Reliability",
        "openai-codex": 55,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 20,
        "edge": "openai-codex",
        "key": "schema",
        "letta": 70,
        "name": "Schema \u0026 documentation",
        "openai-codex": 90,
        "weight": 13
      },
      {
        "by": 13,
        "edge": "openai-codex",
        "key": "ergonomics",
        "letta": 67,
        "name": "Agent ergonomics",
        "openai-codex": 80,
        "weight": 13
      },
      {
        "by": 47,
        "edge": "openai-codex",
        "key": "security",
        "letta": 35,
        "name": "Security \u0026 auth",
        "openai-codex": 82,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "letta": 60,
        "name": "Payments \u0026 pricing",
        "openai-codex": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 2,
        "edge": "openai-codex",
        "key": "maintenance",
        "letta": 85,
        "name": "Maintenance \u0026 community",
        "openai-codex": 87,
        "weight": 7
      },
      {
        "by": 30,
        "edge": "openai-codex",
        "key": "transparency",
        "letta": 55,
        "name": "Transparency \u0026 trust",
        "openai-codex": 85,
        "weight": 7
      }
    ],
    "summary": "OpenAI Codex scores 73.5 (BB) on agent readiness against Letta's 59.7 (C), and leads in 5 of 7 scored categories. Both do agent harnesses.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "letta": "Letta's open-source harness gives agents git-tracked memory blocks, skills, subagents and headless JSON runs, with a $0 plan and public per-agent API prices. It starts in the unrestricted permission mode, defaults to Letta Cloud, sends usage telemetry unless LETTA_CODE_TELEM=0 is set, and the V1 API server the comparisons describe is retired.",
      "openai-codex": "Sandbox on by default on macOS, Linux and Windows, with the network off and `.git` and `.codex` read-only. Pre-1.0 at 0.166.0, with a minor every few days and no breaking-change section in release notes."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/letta-vs-openai-codex",
    "json": "https://www.anchorterminal.com/compare/letta-vs-openai-codex.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/letta-vs-openai-codex.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/letta-vs-openai-codex.min.md"
  },
  "markdown": "OpenAI Codex scores 73.5 (BB) on agent readiness against Letta's 59.7 (C), and leads in 5 of 7 scored categories. Both do agent harnesses.\n\n- Letta: grade C, 59.7/100, rank #684 of 1486. Markdown https://www.anchorterminal.com/tools/letta.md · JSON https://www.anchorterminal.com/api/v1/tools/letta.json\n- OpenAI Codex: grade BB, 73.5/100, rank #107 of 1486. Markdown https://www.anchorterminal.com/tools/openai-codex.md · JSON https://www.anchorterminal.com/api/v1/tools/openai-codex.json\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 1500 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md\n- Best memory layers for AI agents: https://www.anchorterminal.com/best/agent-memory/index.md\n- All 353 memory comparisons: https://www.anchorterminal.com/compare/agent-memory/index.md\n\n## Which one, for what\n\n### Letta (C)\n\nGood for: Long-lived coding agents and assistants that keep memory and identity across sessions and machines.\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: The default permission mode is `unrestricted`, the renamed `bypassPermissions`, so tool calls aren't confirmed unless the user picks another mode\n\n### OpenAI Codex (BB)\n\nGood for: Teams that want an open-source harness with safe defaults for unattended runs and an optional hosted agent.\n\nAhead on:\n- Schema \u0026 documentation, 90 against 70\n- Agent ergonomics, 80 against 67\n- Security \u0026 auth, 82 against 35\n- Transparency \u0026 trust, 85 against 55\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Free to start without a card\n\nWatch for: Pre-1.0 at 0.166.0, with a minor every few days and no breaking-change section in release notes\n\n\n## Why the edge\n\n### Security \u0026 auth: OpenAI Codex +47\n\n- Letta (35): Harness reading of the framework checklist, as for the other harnesses. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for injection posture, 15 for audit and 20 for the security programme. Letta Cloud is the default backend, so agent state and conversations go to Letta's servers, and telemetry is on by default (10 of 30). The default permission mode is `unrestricted`; `standard`, `acceptEdits` and `strict` are opt-in, and cloud sandboxes exist for remote work (4 of 20). No prompt-injection guidance found for fetched pages or channel messages (5 of 15). Conversation search and git history of memory give an operator a record of what the agent saw and changed (10 of 15). SECURITY.md routes reports to support@letta.com and scopes out the retired server; no security.txt, bounty or certification found (6 of 20). Total 35.\n- OpenAI Codex (82): Framework reading (telemetry defaults, approvals, guardrails, sandboxing), five lines. Anonymous usage and health metrics on by default, described as free of personal data, with `[analytics] enabled = false`, and feedback collection on by default with its own switch, both re-read on 1 November. Credentials are a ChatGPT login or an API key (20). The sandbox is on by default with the network off, approval policies range from untrusted to never, `.git`, `.agents` and `.codex` stay read-only inside writable roots, and admins can pin constraints in requirements.toml (19). Network off by default locally. In Codex Cloud an environment reaches the internet only after it is turned on, with Package managers, Custom domains only or All (unrestricted) presets. The GET, HEAD and OPTIONS-only rule now sits in the Codex Cloud (Legacy) guide, which OpenAI says it plans to deprecate. The docs keep a worked example of prompt-injection exfiltration (14). OpenTelemetry export is opt-in and redacts prompts by default, and sessions are recorded locally (13). Bugcrowd programme, SECURITY.md and a signed security.txt on openai.com, per the 1 October check, not re-read on 1 November. As on the openai-api and openai-agents-sdk listings, that security.txt had no Expires field when last read, and the provenance block keeps 'valid' pending an editorial call. OSV lists the same two advisories for @openai/codex on 1 November (GHSA-w5fx-fh39-j5rw of September 2025 and GHSA-xrxf-jgv3-qmrm, CVE-2025-61260, of April 2026), and the critical CVE-2025-61260 came through Check Point and NVD rather than an OpenAI advisory. 0.165.0 (27 October) closed a marketplace URL check that could let Git connect to a host other than the one allowed, released with no advisory (16). SOC 2 isn't scored on the framework reading. 20 + 19 + 14 + 13 + 16 = 82.\n\n### Transparency \u0026 trust: OpenAI Codex +30\n\n- Letta (55): Apache-2.0 (30). The privacy policy has no date, no legal entity and no retention periods, and says hosted message data may train future models (8 of 30). The README and docs mark AgentFile, the Electron app and the V1 server as deprecated or retired, without dated notice periods (12 of 20). Telemetry is described in the privacy policy only as basic and opt-out when supported; the LETTA_CODE_TELEM=0 switch appears only in the source (5 of 20). Total 55.\n- OpenAI Codex (85): Apache-2.0 for the CLI and SDKs (30). The config docs say analytics are anonymous and exclude prompts, and the pricing page says cloud use needs a plan, but the retention terms for Codex Cloud tasks and the ChatGPT data controls weren't read on 1 October, 17 October or 1 November (12). The changelog at learn.chatgpt.com dates model retirements ahead of time with replacements (GPT-5.4 and GPT-5.4 mini announced on 31 July for 31 August, GPT-5.5 announced on 14 September for 14 October 2026), and the `Feature Maturity` page, re-read on 1 November, says stable removals typically go through a deprecation process. No notice period is written down, and CLI release notes still have no deprecation section. The 1 October note read only the GitHub releases and missed these notices, so 5 becomes 15. Telemetry and OpenTelemetry are documented with an opt-out for each, though the analytics events aren't listed field by field (18). 30 + 12 + 15 + 18 = 75.\n\n### Schema \u0026 documentation: OpenAI Codex +20\n\n- Letta (70): Harness reading. docs.letta.com serves llms.txt and a Markdown version of every page, with an `applies_to` block saying which backend and interface each page covers (10). TypeScript types for the Agent SDK and a documented App Server WebSocket protocol, but no JSON Schema or OpenAPI for the harness (15 of 25). Pages say when to use local or cloud backends, subagents and channels (14 of 20). Permission modes and options are typed in the SDK (12 of 15). Example applications and a remote client reference (11 of 15). Releases most days but no changelog file (8 of 15). Total 70.\n- OpenAI Codex (90): Framework reading. A JSON Schema for config.toml in the repository (codex-rs/core/config.schema.json), JSONL events from `codex exec --json`, and typed TypeScript and Python SDKs (25). llms.txt at learn.chatgpt.com with a Markdown twin for every page, re-read on 1 November (10). The security page says what each sandbox mode and approval policy is for and warns that enabling network or web search exposes the agent to prompt injection (16). Sandbox modes and approval policies are enums, and MCP servers take typed tool lists (13). Examples throughout, and `--output-schema` validates the final message. The non-interactive page names the event types, `turn.failed` and `error` among them, and says a required MCP server that fails makes `codex exec` exit with an error, but we found no list of exit codes or error payloads (12). Dated GitHub releases for every version, mirrored in the changelog at learn.chatgpt.com, which runs to 0.166.0 on 29 October (14). 25 + 10 + 16 + 13 + 12 + 14 = 90.\n\n### Agent ergonomics: OpenAI Codex +13\n\n- Letta (67): Harness reading. Toolsets switch with `/model`, skills load per agent, and subagents run in the background (18 of 25). Context is managed through memory blocks, reflection and dreaming (12 of 20). `letta -p --output-format json` for scripted runs and an App Server for programmatic control (12 of 20). Conversations resume by agent and conversation id, and memory is git-tracked so changes can be reverted (15 of 20). Runs with no account on the local backend, with one SDK language, TypeScript (10 of 15). Total 67.\n- OpenAI Codex (80): Framework reading, adapted to a harness driven by a pipeline. `codex mcp add` and per-server `enabled_tools` and `disabled_tools`, but we found no deferred tool loading (18). `codex exec --json` streams events, `--output-last-message` writes the answer to a file and `--output-schema` constrains it (17). Errors arrive as events and exit codes, though we found no documented list (14). `codex exec resume` and `codex resume --last` continue a session, 0.163.0 restores a resumed thread's permissions and network approvals, and 0.166.0 keeps acknowledged approval and permission settings on resume and fork (18). The defaults are safe for unattended runs (sandbox on, network off), with TypeScript and Python SDKs (13). 18 + 17 + 14 + 18 + 13 = 80.\n\n## Score by category\n\n| Category | Weight | Letta | OpenAI Codex | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 58 | 55 | Letta +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 70 | 90 | OpenAI Codex +20 |\n| Agent ergonomics | 13% (16.2 this run) | 67 | 80 | OpenAI Codex +13 |\n| Security \u0026 auth | 14% (17.5 this run) | 35 | 82 | OpenAI Codex +47 |\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) | 85 | 87 | OpenAI Codex +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 55 | 85 | OpenAI Codex +30 |\n| Negative events | ≤15 | 0 | -2 | |\n| **Total** | | **59.7 · C** | **73.5 · BB** | |\n\n## Facts side by side\n\n| Fact | Letta | OpenAI Codex |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Letta | OpenAI |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | stdio |  |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 | Apache-2.0 (Codex CLI, its Rust crates and the TypeScript and Python SDKs). Codex cloud is a hosted service under OpenAI's terms |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-11-06 | 2026-10-29 |\n| Terms last updated | no date given | couldn't be read |\n| Privacy policy last updated | no date given | couldn't be read |\n| Customer content may train models | not found in the text | couldn't be read |\n| Terms restrict automated access | not found in the text | couldn't be read |\n| Terms restrict benchmarking | not found in the text | couldn't be read |\n| Terms or service can change without notice | not found in the text | couldn't be read |\n| Arbitration or class-action waiver | yes | couldn't be read |\n| Popularity | 3.8k stars, 86k npm/wk, 2.2k PyPI/wk | 126k stars |\n| Agent reviews | none | 3/5 (2) |\n\n## How the scores have moved\n\n### Letta\n\nNo score change since it was listed.\n\n### OpenAI Codex\n\n- +0.1 on 27 October 2026: checklist\n- +0.4 on 17 October 2026: new evidence\n- -0.4 on 8 October 2026: checklist\n\n## Verdicts\n\n**Letta.** Letta's open-source harness gives agents git-tracked memory blocks, skills, subagents and headless JSON runs, with a $0 plan and public per-agent API prices. It starts in the unrestricted permission mode, defaults to Letta Cloud, sends usage telemetry unless LETTA_CODE_TELEM=0 is set, and the V1 API server the comparisons describe is retired.\n\n**OpenAI Codex.** Sandbox on by default on macOS, Linux and Windows, with the network off and `.git` and `.codex` read-only. Pre-1.0 at 0.166.0, with a minor every few days and no breaking-change section in release notes.\n\n## Before you call either\n\n### Letta\n\n1. Start headless runs with an explicit permission mode such as `standard` or `strict`; the default auto-approves tools\n2. Pass `--backend local` for work that must stay on the machine, since Letta Cloud is the default\n3. Set LETTA_CODE_TELEM=0 in unattended runs if usage events must not be sent\n4. Use `letta -p --output-format json` for scripted runs and parse the JSON, not the terminal output\n5. Don't plan on the retired V1 REST server or `.af` AgentFile import; both are gone\n\n### OpenAI Codex\n\n1. Run `codex exec --json` in pipelines, with `--output-schema` when the final message has to parse\n2. Keep the default sandbox, which has the network off. `--yolo` removes both the sandbox and approvals\n3. Replace `gpt-5.5` with `gpt-6.1-sol` in saved configs, custom agents and scripts under ChatGPT sign-in. GPT-5.5 retired there on 14 October 2026\n4. Set `[analytics] enabled = false` and `[feedback] enabled = false` in config.toml to keep usage data local\n5. Pin the npm version. A 0.x minor lands every few days\n\n## Questions\n\n### Which is better for AI agents, Letta or OpenAI Codex?\n\nOpenAI Codex scores 73.5 (BB) on agent readiness against Letta's 59.7 (C), and leads in 5 of 7 scored categories.\n\n### Are Letta and OpenAI Codex open source?\n\nYes. Letta is open source (Apache-2.0). OpenAI Codex is open source (Apache-2.0 (Codex CLI, its Rust crates and the TypeScript and Python SDKs). Codex cloud is a hosted service under OpenAI's terms).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/letta-vs-openai-codex.json, and with the fewest tokens: https://www.anchorterminal.com/compare/letta-vs-openai-codex.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"letta\", \"b\": \"openai-codex\"}`. From a terminal: `anchor compare letta openai-codex`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/letta.json and https://www.anchorterminal.com/api/v1/tools/openai-codex.json\n\n## Other comparisons with Letta or OpenAI Codex\n\n- [Agent Zero vs Letta](https://www.anchorterminal.com/compare/agent-zero-vs-letta.md)\n- [Agent Zero vs OpenAI Codex](https://www.anchorterminal.com/compare/agent-zero-vs-openai-codex.md)\n- [Aider vs Letta](https://www.anchorterminal.com/compare/aider-vs-letta.md)\n- [Aider vs OpenAI Codex](https://www.anchorterminal.com/compare/aider-vs-openai-codex.md)\n- [Amp vs Letta](https://www.anchorterminal.com/compare/amp-vs-letta.md)\n- [Amp vs OpenAI Codex](https://www.anchorterminal.com/compare/amp-vs-openai-codex.md)\n- [Antigravity CLI vs Letta](https://www.anchorterminal.com/compare/antigravity-cli-vs-letta.md)\n- [Antigravity CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/antigravity-cli-vs-openai-codex.md)\n- [Auggie CLI vs Letta](https://www.anchorterminal.com/compare/auggie-vs-letta.md)\n- [Auggie CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/auggie-vs-openai-codex.md)\n- [AXLR vs Letta](https://www.anchorterminal.com/compare/axlr-vs-letta.md)\n- [AXLR vs OpenAI Codex](https://www.anchorterminal.com/compare/axlr-vs-openai-codex.md)\n- [Claude Code vs Letta](https://www.anchorterminal.com/compare/claude-code-vs-letta.md)\n- [Claude Code vs OpenAI Codex](https://www.anchorterminal.com/compare/claude-code-vs-openai-codex.md)\n- [Cline vs Letta](https://www.anchorterminal.com/compare/cline-vs-letta.md)\n- [Cline vs OpenAI Codex](https://www.anchorterminal.com/compare/cline-vs-openai-codex.md)\n- [Conductor vs Letta](https://www.anchorterminal.com/compare/conductor-vs-letta.md)\n- [Conductor vs OpenAI Codex](https://www.anchorterminal.com/compare/conductor-vs-openai-codex.md)\n- [Crush vs Letta](https://www.anchorterminal.com/compare/crush-vs-letta.md)\n- [Crush vs OpenAI Codex](https://www.anchorterminal.com/compare/crush-vs-openai-codex.md)\n- [Cursor CLI vs Letta](https://www.anchorterminal.com/compare/cursor-cli-vs-letta.md)\n- [Cursor CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/cursor-cli-vs-openai-codex.md)\n- [DeepSeek Harness (dsh) vs Letta](https://www.anchorterminal.com/compare/deepseek-harness-vs-letta.md)\n- [DeepSeek Harness (dsh) vs OpenAI Codex](https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-codex.md)\n- [dsh-superagent (DeepSeek) vs Letta](https://www.anchorterminal.com/compare/deepseek-superagent-vs-letta.md)\n- [dsh-superagent (DeepSeek) vs OpenAI Codex](https://www.anchorterminal.com/compare/deepseek-superagent-vs-openai-codex.md)\n- [Devin vs Letta](https://www.anchorterminal.com/compare/devin-vs-letta.md)\n- [Devin vs OpenAI Codex](https://www.anchorterminal.com/compare/devin-vs-openai-codex.md)\n- [Droid CLI vs Letta](https://www.anchorterminal.com/compare/droid-cli-vs-letta.md)\n- [Droid CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/droid-cli-vs-openai-codex.md)\n- [Pi vs Letta](https://www.anchorterminal.com/compare/earendil-pi-vs-letta.md)\n- [Pi vs OpenAI Codex](https://www.anchorterminal.com/compare/earendil-pi-vs-openai-codex.md)\n- [Emdash vs Letta](https://www.anchorterminal.com/compare/emdash-vs-letta.md)\n- [Emdash vs OpenAI Codex](https://www.anchorterminal.com/compare/emdash-vs-openai-codex.md)\n- [Gemini CLI vs Letta](https://www.anchorterminal.com/compare/gemini-cli-vs-letta.md)\n- [Gemini CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/gemini-cli-vs-openai-codex.md)\n- [GitHub Copilot CLI vs Letta](https://www.anchorterminal.com/compare/github-copilot-cli-vs-letta.md)\n- [GitHub Copilot CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/github-copilot-cli-vs-openai-codex.md)\n- [goose vs Letta](https://www.anchorterminal.com/compare/goose-vs-letta.md)\n- [goose vs OpenAI Codex](https://www.anchorterminal.com/compare/goose-vs-openai-codex.md)\n- [Harness² vs Letta](https://www.anchorterminal.com/compare/harness2-vs-letta.md)\n- [Harness² vs OpenAI Codex](https://www.anchorterminal.com/compare/harness2-vs-openai-codex.md)\n- [HarnessRouter vs Letta](https://www.anchorterminal.com/compare/harnessrouter-vs-letta.md)\n- [HarnessRouter vs OpenAI Codex](https://www.anchorterminal.com/compare/harnessrouter-vs-openai-codex.md)\n- [Jules vs Letta](https://www.anchorterminal.com/compare/jules-vs-letta.md)\n- [Jules vs OpenAI Codex](https://www.anchorterminal.com/compare/jules-vs-openai-codex.md)\n- [Junie CLI vs Letta](https://www.anchorterminal.com/compare/junie-vs-letta.md)\n- [Junie CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/junie-vs-openai-codex.md)\n- [Kilo Code CLI vs Letta](https://www.anchorterminal.com/compare/kilo-code-cli-vs-letta.md)\n- [Kilo Code CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/kilo-code-cli-vs-openai-codex.md)\n- [Kimi Code CLI vs Letta](https://www.anchorterminal.com/compare/kimi-code-cli-vs-letta.md)\n- [Kimi Code CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-codex.md)\n- [Kiro CLI vs Letta](https://www.anchorterminal.com/compare/kiro-cli-vs-letta.md)\n- [Kiro CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/kiro-cli-vs-openai-codex.md)\n- [Letta vs mini-swe-agent](https://www.anchorterminal.com/compare/letta-vs-mini-swe-agent.md)\n- [Letta vs MiniMax Code](https://www.anchorterminal.com/compare/letta-vs-minimax-code.md)\n- [Letta vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/letta-vs-mistral-vibe-cli.md)\n- [Letta vs Muse Code](https://www.anchorterminal.com/compare/letta-vs-muse-code.md)\n- [Letta vs OpenAI Agents API](https://www.anchorterminal.com/compare/letta-vs-openai-agents-api.md)\n- [Letta vs OpenCode](https://www.anchorterminal.com/compare/letta-vs-opencode.md)\n- [Letta vs OpenHands](https://www.anchorterminal.com/compare/letta-vs-openhands.md)\n- [Letta vs OpenMausBot](https://www.anchorterminal.com/compare/letta-vs-openmausbot.md)\n- [Letta vs Orca](https://www.anchorterminal.com/compare/letta-vs-orca.md)\n- [Letta vs Paseo](https://www.anchorterminal.com/compare/letta-vs-paseo.md)\n- [Letta vs Prime Agent](https://www.anchorterminal.com/compare/letta-vs-prime-agent.md)\n- [Letta vs Qoder CLI](https://www.anchorterminal.com/compare/letta-vs-qoder-cli.md)\n- [Letta vs Qwen Code](https://www.anchorterminal.com/compare/letta-vs-qwen-code.md)\n- [Letta vs Mirror CLI](https://www.anchorterminal.com/compare/letta-vs-reflection-mirror.md)\n- [Letta vs Rovo Dev CLI](https://www.anchorterminal.com/compare/letta-vs-rovo-dev-cli.md)\n- [Letta vs Sculptor](https://www.anchorterminal.com/compare/letta-vs-sculptor.md)\n- [Letta vs T3 Code](https://www.anchorterminal.com/compare/letta-vs-t3-code.md)\n- [Letta vs Traycer](https://www.anchorterminal.com/compare/letta-vs-traycer.md)\n- [Letta vs Unstoppable](https://www.anchorterminal.com/compare/letta-vs-unstoppable.md)\n- [Letta vs Verdent](https://www.anchorterminal.com/compare/letta-vs-verdent.md)\n- [Letta vs Vibe-Trading](https://www.anchorterminal.com/compare/letta-vs-vibe-trading.md)\n- [Letta vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/letta-vs-warp.md)\n- [mini-swe-agent vs OpenAI Codex](https://www.anchorterminal.com/compare/mini-swe-agent-vs-openai-codex.md)\n- [MiniMax Code vs OpenAI Codex](https://www.anchorterminal.com/compare/minimax-code-vs-openai-codex.md)\n- [Mistral Vibe CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openai-codex.md)\n- [Muse Code vs OpenAI Codex](https://www.anchorterminal.com/compare/muse-code-vs-openai-codex.md)\n- [OpenAI Agents API vs OpenAI Codex](https://www.anchorterminal.com/compare/openai-agents-api-vs-openai-codex.md)\n- [OpenAI Codex vs OpenCode](https://www.anchorterminal.com/compare/openai-codex-vs-opencode.md)\n- [OpenAI Codex vs OpenHands](https://www.anchorterminal.com/compare/openai-codex-vs-openhands.md)\n- [OpenAI Codex vs OpenMausBot](https://www.anchorterminal.com/compare/openai-codex-vs-openmausbot.md)\n- [OpenAI Codex vs Orca](https://www.anchorterminal.com/compare/openai-codex-vs-orca.md)\n- [OpenAI Codex vs Paseo](https://www.anchorterminal.com/compare/openai-codex-vs-paseo.md)\n- [OpenAI Codex vs Prime Agent](https://www.anchorterminal.com/compare/openai-codex-vs-prime-agent.md)\n- [OpenAI Codex vs Qoder CLI](https://www.anchorterminal.com/compare/openai-codex-vs-qoder-cli.md)\n- [OpenAI Codex vs Qwen Code](https://www.anchorterminal.com/compare/openai-codex-vs-qwen-code.md)\n- [OpenAI Codex vs Mirror CLI](https://www.anchorterminal.com/compare/openai-codex-vs-reflection-mirror.md)\n- [OpenAI Codex vs Rovo Dev CLI](https://www.anchorterminal.com/compare/openai-codex-vs-rovo-dev-cli.md)\n- [OpenAI Codex vs Sculptor](https://www.anchorterminal.com/compare/openai-codex-vs-sculptor.md)\n- [OpenAI Codex vs T3 Code](https://www.anchorterminal.com/compare/openai-codex-vs-t3-code.md)\n- [OpenAI Codex vs Traycer](https://www.anchorterminal.com/compare/openai-codex-vs-traycer.md)\n- [OpenAI Codex vs Unstoppable](https://www.anchorterminal.com/compare/openai-codex-vs-unstoppable.md)\n- [OpenAI Codex vs Verdent](https://www.anchorterminal.com/compare/openai-codex-vs-verdent.md)\n- [OpenAI Codex vs Vibe-Trading](https://www.anchorterminal.com/compare/openai-codex-vs-vibe-trading.md)\n- [OpenAI Codex vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/openai-codex-vs-warp.md)\n- [Clawboo vs Letta](https://www.anchorterminal.com/compare/clawboo-vs-letta.md)\n- [CLI Manager vs Letta](https://www.anchorterminal.com/compare/cli-manager-vs-letta.md)\n- [Harness vs Letta](https://www.anchorterminal.com/compare/harness-autonomous-vs-letta.md)\n- [Letta vs Paperclip](https://www.anchorterminal.com/compare/letta-vs-paperclip.md)\n- [Letta vs Parallax](https://www.anchorterminal.com/compare/letta-vs-parallax-agents.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "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": "Letta vs OpenAI Codex",
        "url": ""
      }
    ],
    "description": "OpenAI Codex scores 73.5 (BB) to Letta's 59.7 (C) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Letta C 59.7",
      "OpenAI Codex BB 73.5",
      "scores"
    ],
    "h1": "Letta vs OpenAI Codex",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/letta-vs-openai-codex",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Letta vs OpenAI Codex for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/letta-vs-openai-codex"
  },
  "tokens": {
    "markdown": 6050,
    "slim": 2480
  },
  "version": 1
}
