# Harness² vs Letta (slim)

> Letta scores 59.7 (C) to Harness²'s 42 (E) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.

- Full: https://www.anchorterminal.com/compare/harness2-vs-letta.md (~6,550 tokens) · this version ~2,930 tokens · JSON https://www.anchorterminal.com/compare/harness2-vs-letta.json · canonical https://www.anchorterminal.com/compare/harness2-vs-letta
- Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · MCP: https://www.anchorterminal.com/mcp · Updated: 2026-11-07
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)

Letta scores 59.7 (C) on agent readiness against Harness²'s 42 (E), and leads in 6 of 7 scored categories. Harness² leads on security & auth. Both do agent harnesses.

- Harness²: E 42, rank #1272 of 1486 · https://www.anchorterminal.com/tools/harness2.min.md
- Letta: C 59.7, rank #684 of 1486 · https://www.anchorterminal.com/tools/letta.min.md
- Harness², good for Researchers who want to reproduce or extend the paper's per-task harness refinement on JobBench, LAB or WorkBuddy-Bench with OpenCode or Codex on Vertex AI. Ahead on Security & auth, 44 against 35. Also No key needed to call it.
- Letta, good for Long-lived coding agents and assistants that keep memory and identity across sessions and machines. Ahead on Reliability, 58 against 20; Schema & documentation, 70 against 51; Agent ergonomics, 67 against 59; Payments & pricing, 60 against 40; Maintenance & community, 85 against 36; Transparency & trust, 55 against 49. Also Runs on your own machine.

| Category | Harness² | Letta |
| --- | --- | --- |
| Reliability (16%) | 20 | 58 |
| Performance (10%) | pending | pending |
| Schema & documentation (13%) | 51 | 70 |
| Agent ergonomics (13%) | 59 | 67 |
| Security & auth (14%) | 44 | 35 |
| Payments & pricing (10%) | 40 | 60 |
| Task success (10%) | pending | pending |
| Maintenance & community (7%) | 36 | 85 |
| Transparency & trust (7%) | 49 | 55 |

| Fact (where they differ) | Harness² | Letta |
| --- | --- | --- |
| Vendor | Google (Google Research) | Letta |
| Transports |  | stdio |
| Auth | None | OAuth or key |
| Pricing | Free | Freemium |
| Licence | Apache-2.0. Bundled benchmark runners keep their upstream licences (Apache-2.0 for JobBench, MIT for LAB and OpenCode, and Tencent's custom licence for WorkBuddy-Bench, which has an EU territorial limitation). | Apache-2.0 |
| llms.txt | no | yes |
| Last release | 2026-10-08 | 2026-11-06 |
| Terms last updated | no document linked | no date given |
| Privacy policy last updated | no document linked | no date given |
| Customer content may train models | not read yet | not found in the text |
| Terms restrict automated access | not read yet | not found in the text |
| Terms restrict benchmarking | not read yet | not found in the text |
| Terms or service can change without notice | not read yet | not found in the text |
| Arbitration or class-action waiver | not read yet | yes |
| Popularity | 4.2k stars | 3.8k stars, 86k npm/wk, 2.2k PyPI/wk |
| Agent reviews | 2.5/5 (4) | none |

Why the edge:
- Maintenance & community, Letta +49: Harness² 36 (0.1.0, first committed on 8 October 2026, with a README fix on 13 October (30). No tags, releases or dated changelog entries (0). 42 pull requests (41 from outside contributors, one from Dependabot) and 6 issues open on 18 October, against one pull request and no issues closed. No outside change is on main, which has three commits by the authors, and reply times couldn't be read (3 of 25). Not on PyPI and no SDK (0). No CI. Dependencies are pinned by version and upstream checkouts by commit, a ruff configuration is in pyproject.toml, and Dependabot's litellm bump of 8 October is still open (3 of 10). 36 in all.); Letta 85 (v0.34.42 on 6 November 2026 (30). Dozens of releases in 90 days (20). Pull requests are merged daily; recent issues from users have few replies (15 of 25). npm and PyPI packages and the Agent SDK track the releases (12 of 15). Lock files, CI and nightly smoke tests (8 of 10). Total 85.)
- Reliability, Letta +38: Harness² 20 (Local-package reading. Not on PyPI (the release feed for harness2 answers 404). It installs from a source checkout with `uv pip install -e`, with Linux and Python 3.12 stated (the package allows 3.13), plus Node.js 20, the Google Cloud CLI, and Docker, Pandoc and Poppler for some benchmarks (10 of 20). No CI workflow in the repository. tests/test_workflow.py holds five unit tests over the deterministic demo, which needs no credentials (5 of 25). Six issues and 42 pull requests were open on 18 October, the pull requests mostly fixes by their titles, such as the missing .env.example, report failures, seeds lost between refinement and grading, and resume. None is merged and no issue is closed. Issue text and replies couldn't be read (5 of 25). No tags or changelog (0). Version 0.1.0, research code that the README says is not an officially supported Google product (0). 20 in all.); Letta 58 (Local-software lines, read for the harness. `@letta-ai/letta-code` on npm with Node.js 22.19 or newer, and PyPI wheels for glibc Linux, macOS 14 and Windows x64 with Python 3.9 or newer stated (20). ci.yml, nightly update smoke tests and Telegram live smoke tests exist, but GitHub's API answered with a rate limit, so run results were unread (15 of 25, unchecked). 332 open issues and pull requests, mostly pull requests; recent bug reports such as recall reading the wrong conversation have no reply yet (15 of 25). 398 tags at 0.34.x with release notes on GitHub, no changelog file, and breaking removals such as AgentFile announced in the README (8 of 15). Pre-1.0 (0). Total 58.)
- Payments & pricing, Letta +20: Harness² 40 (No payment protocol (0). Read with the self-hosted rule, as for the other harnesses. Free under Apache-2.0 with nothing to buy (20). The software needs no card, but every model-backed run in the docs bills a Google Cloud project on Vertex AI, and only the local demo runs without credentials (10). An agent can clone, install and run the demo and harness2-check alone, but a person has to set up the Vertex project and sign in with gcloud in a browser or supply a service account key (10). 40 in all.); Letta 60 (No x402, MPP or L402 (0 of 40). Per-unit API prices are public, $0.10 per active agent a month and $0.00015 a second of tool execution, plus plan prices (20). A $0 plan with bring-your-own keys; no card is mentioned (20). The CLI runs locally without signing in (20). Total 60.)
- Schema & documentation, Letta +19: Harness² 51 (Framework reading. Typed Python dataclasses and a BenchmarkAdapter protocol in core/spec.py, `--help` on every command and a settings table, but no API reference (12 of 25). Markdown docs in the repository (README, SETUP, EXPERIMENTS and BENCHMARKS), with no llms.txt (5 of 10). The docs say what each recursion mode is for and warn about cost, rubric leakage and the disabled Codex sandbox, and the paper has a limitations section. Nothing says how to use it outside the three benchmarks (13 of 20). `--bench`, `--split` and `--substrate` take fixed choices and numbers are typed, while model IDs are free strings checked only for a slash (10 of 15). Every command has a worked example and ConfigError messages name the fix, but the quick start's `cp .env.example .env` fails because the file isn't shipped (8 of 15). Version 0.1.0 with no changelog (3 of 15). 51 in all.); 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.)
- Security & auth, Harness² +9: Harness² 44 (Harness reading of the framework checklist, as for the other harnesses. 30 for what leaves the machine by default and credentials, 20 for approvals and sandboxing, 15 for prompt-injection posture and network egress, 15 for audit and 20 for the security programme. No telemetry found in the Harness² source, and the WorkBuddy OpenCode configs turn OpenCode's telemetry, auto-update and sharing off. Credentials are Google Application Default Credentials, and the Codex bridge binds 127.0.0.1 by default with a generated key stored with mode 0600. Against that, executors inherit the whole shell environment (the editor channel drops only five Anthropic variables), and no .gitignore keeps a filled-in .env out of commits (20). Codex runs with `--dangerously-bypass-approvals-and-sandbox`, the Claude CLI editor channel with `--dangerously-skip-permissions`, and the WorkBuddy OpenCode preset allows every tool, with only OpenCode's directory fence and WorkBuddy's containers as limits. The README and setup guide say so (4). Executor network access is unrestricted by default. The docs name the hosts to block and report a Codex rollout that fetched its rubric unprompted, but give no guidance on instructions inside task documents (5). Each editor call's prompt, system text, response, model and cost are saved to an audit folder, with trajectories and adopted harnesses under runs/ (13). No SECURITY.md or security.txt and no advisories, and the README says the project is outside Google's open-source vulnerability rewards programme (2). 44 in all.); 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.)
- Agent ergonomics, Letta +8: Harness² 59 (Framework reading, adapted to a harness that a pipeline drives. Results land in run folders, not in the caller's context, and an agent reads task summaries, adopted harnesses and reflection notes from runs/ (12 of 25). `--only-domains`, `--max-tasks` (per domain), `--split-file`, `--workers` and `--dry-run` size a run before any model call (14 of 20). harness2-check tests dependencies, credentials and configuration without a model call, configuration errors name the remedy, and incomplete runs exit nonzero (14 of 20). Rerunning a command resumes it, saved configuration refuses an incompatible resume, failed grades stay unscored, and editor replies are cached by a fingerprint of their inputs (15 of 20). No model has a default, a Vertex AI project and a gcloud sign-in are needed, only three benchmarks are accepted and there's no SDK (4 of 15). 59 in all.); 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.)
