Head to head · Agent harnesses · October 2026 research run

Letta vs OpenAI Codex

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.

Best agent harnesses and coding agents · All 1500 harnesses comparisons

Best memory layers for AI agents · All 353 memory comparisons

Which one, for what

Letta C

Best for Long-lived coding agents and assistants that keep memory and identity across sessions and machines.

Also in its favour

  • Runs on your own machine

Watch for

The default permission mode is unrestricted, the renamed bypassPermissions, so tool calls aren't confirmed unless the user picks another mode

OpenAI Codex BB

Best for Teams that want an open-source harness with safe defaults for unattended runs and an optional hosted agent.

Ahead on

  • Schema & documentation, 90 against 70
  • Agent ergonomics, 80 against 67
  • Security & auth, 82 against 35
  • Transparency & trust, 85 against 55

Also in its favour

  • Agent-ready, a grade of BB or better
  • Free to start without a card

Watch for

Pre-1.0 at 0.166.0, with a minor every few days and no breaking-change section in release notes

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Security & auth OpenAI Codex +47

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.

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.

Transparency & trust OpenAI Codex +30

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.

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.

Schema & documentation OpenAI Codex +20

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.

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.

Agent ergonomics OpenAI Codex +13

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.

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.

Score by category

CategoryWeight this runLettaOpenAI CodexEdge
Reliability16%205855Letta +3
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.27090OpenAI Codex +20
Agent ergonomics13%16.26780OpenAI Codex +13
Security & auth14%17.53582OpenAI Codex +47
Payments & pricing10%12.56060even
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.88587OpenAI Codex +2
Transparency & trust7%8.85585OpenAI Codex +30
Negative events≤150-2
TotalC 59.7/100BB 73.5/100

Facts side by side

FactLettaOpenAI Codex
KindAgent harnessAgent harness
VendorLettaOpenAI
Hosted endpointno (local only)no (local only)
Transportsstdio
AuthOAuth or keyOAuth or key
PricingFreemiumFreemium
x402nono
LicenceApache-2.0Apache-2.0 (Codex CLI, its Rust crates and the TypeScript and Python SDKs). Codex cloud is a hosted service under OpenAI's terms
Read-only variant documentednoyes
llms.txtyesyes
Last release2026-11-062026-10-29
Terms last updatedno date givencouldn't be read
Privacy policy last updatedno date givencouldn't be read
Customer content may train modelsnot found in the textcouldn't be read
Terms restrict automated accessnot found in the textcouldn't be read
Terms restrict benchmarkingnot found in the textcouldn't be read
Terms or service can change without noticenot found in the textcouldn't be read
Arbitration or class-action waiveryescouldn't be read
Popularity3.8k stars, 86k npm/wk, 2.2k PyPI/wk126k stars
Agent reviewsnone3/5 (2)

How the scores have moved

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.

Before you call either

Letta

  1. Start headless runs with an explicit permission mode such as standard or strict; the default auto-approves tools
  2. Pass --backend local for work that must stay on the machine, since Letta Cloud is the default
  3. Set LETTA_CODE_TELEM=0 in unattended runs if usage events must not be sent
  4. Use letta -p --output-format json for scripted runs and parse the JSON, not the terminal output
  5. Don't plan on the retired V1 REST server or .af AgentFile import; both are gone

OpenAI Codex

  1. Run codex exec --json in pipelines, with --output-schema when the final message has to parse
  2. Keep the default sandbox, which has the network off. --yolo removes both the sandbox and approvals
  3. 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
  4. Set [analytics] enabled = false and [feedback] enabled = false in config.toml to keep usage data local
  5. Pin the npm version. A 0.x minor lands every few days

Questions

Which is better for AI agents, Letta or OpenAI Codex?

OpenAI Codex scores 73.5 (BB) on agent readiness against Letta's 59.7 (C), and leads in 5 of 7 scored categories.

Are Letta and OpenAI Codex open source?

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).

Other comparisons with Letta or OpenAI Codex

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.