Head to head · Agent harnesses · October 2026 research run
Cursor CLI vs Letta
Letta scores 59.7 (C) on agent readiness against Cursor CLI's 35.4 (F), and leads in 5 of 7 scored categories. Cursor CLI leads on security & auth and transparency & trust. 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
Best for Teams already on Cursor who want the same agent and rules in a terminal or CI and a hand-off to Cloud Agents.
Ahead on
- Security & auth, 46 against 35
- Transparency & trust, 60 against 55
Also in its favour
- Free to start without a card
Watch for
No CLI changelog, and versions are dates
Letta C
Best for Long-lived coding agents and assistants that keep memory and identity across sessions and machines.
Ahead on
- Reliability, 58 against 27
- Schema & documentation, 70 against 39
- Agent ergonomics, 67 against 42
- Payments & pricing, 60 against 25
- Maintenance & community, 85 against 62
Also in its favour
- Runs on your own machine
- Open source
- No incidents deducted, where Cursor CLI loses 5 points for them
Watch for
The default permission mode is unrestricted, the renamed bypassPermissions, so tool calls aren't confirmed unless the user picks another mode
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.
Payments & pricing Letta +35
Cursor CLI 25
Harness reading of the published rubric. No payment protocol (0). Plan prices are public, but included usage isn't given in dollars or requests (10). Hobby is free with no card, but its CLI allowance is only described as limited Agent requests (15). A person signs in through a browser to use it or to get an API key (0).
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.
Reliability Letta +31
Cursor CLI 27
Local-package reading. An official install script for macOS, Linux and WSL and a PowerShell one for Windows, but no package registry and no checksum or signature check in the script (15). No public CI or test suite, since the source isn't published (0). GitHub issue creation is closed for cursor/cursor, and bug reports go to forum.cursor.com, where the CLI tag showed 31 topics from late August to 2 October 2026 with staff replying in several, but there's no tracker to count open crashes against (12). Date-based versions (2026.09.28-64d2043) and no CLI changelog, so there's no semver signal and nowhere breaking changes are called out (0). Not 1.0 and not declared stable. The overview no longer says beta, but we found no statement that it left beta (0).
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.
Schema & documentation Letta +31
Cursor CLI 39
Framework reading. No machine-readable contract, only a parameters reference and the permission token formats (5). cursor.com/llms.txt lists the CLI pages with Markdown twins (10). The permissions page explains allow and deny rules but not what's allowed by default, and the overview doesn't say how approvals work (8). Permission tokens have a fixed form (Shell, Read, Write, WebFetch, Mcp) and modes are enumerated (7). Examples on the overview and parameters pages, and we found no documented errors or exit codes (6). No CLI changelog, and versions are dates (3).
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.
Agent ergonomics Letta +25
Cursor CLI 42
Framework reading, adapted to a harness driven by a pipeline. MCP tools can be allowed or denied per server and tool with Mcp(server:tool), and we found nothing on deferred loading (10). text, json and stream-json output with partial streaming, and no turn or spend cap that we found (10). No documented error format or exit codes (5). --resume and --continue (12). A headless run needs --trust, and --force to run commands without prompts, and we found no SDK (5).
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.
Maintenance & community Letta +23
Cursor CLI 62
Version 2026.09.28-64d2043, dated 28 September 2026 (30). Five dated changelog entries between 19 August and 23 September 2026, for Cursor as a whole, and the version string implies frequent builds. Judgement call, since none of the entries is CLI-only (20). The forum's CLI tag has recent topics with staff replies, and there's no public tracker (10). No SDK found (0). No public CI, and an installer without integrity checks (2).
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.
Security & auth Cursor CLI +11
Cursor CLI 46
Framework reading (telemetry defaults, approvals, guardrails, sandboxing), five lines. We found no description of what the CLI sends home. Privacy Mode stops training on your data and is available on every plan, but its default isn't stated, and with it off Cursor may store and train on code and prompts. Headless runs use a long-lived API key (8). Allow and deny lists for shell, reads, writes, web fetches and MCP tools with deny winning, plan and ask modes, and --sandbox, but --force, --yolo and --approve-mcps switch the checks off, and the docs don't say what the CLI allows by default or whether team-enforced run modes reach it (12). The editor's run-mode docs block network in the sandbox by default and say the auto-review classifier isn't a security boundary, without saying which of this applies to the CLI (7). Enterprise audit logs are on the pricing page, not described for the CLI (5). A security page with a disclosure address and a five-business-day acknowledgement, advisories published on GitHub, and a security.txt contact, but no bug bounty that we found (14). SOC 2 and ISO 27001 aren't scored on the framework reading.
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.
Score by category
| Category | Weight this run | Cursor CLI | Letta | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 27 | 58 | Letta +31 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 39 | 70 | Letta +31 |
| Agent ergonomics | 13%16.2 | 42 | 67 | Letta +25 |
| Security & auth | 14%17.5 | 46 | 35 | Cursor CLI +11 |
| Payments & pricing | 10%12.5 | 25 | 60 | Letta +35 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 62 | 85 | Letta +23 |
| Transparency & trust | 7%8.8 | 60 | 55 | Cursor CLI +5 |
| Negative events | ≤15 | -5 | 0 | |
| Total | F 35.4/100 | C 59.7/100 |
Facts side by side
| Fact | Cursor CLI | Letta |
|---|---|---|
| Kind | Agent harness | Agent harness |
| Vendor | Cursor | Letta |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | stdio | |
| Auth | OAuth or key | OAuth or key |
| Pricing | Freemium | Freemium |
| x402 | no | no |
| Licence | Proprietary, under Cursor's terms of service (Anysphere, Inc., updated 3 September 2026). No source is published | Apache-2.0 |
| Read-only variant documented | yes | no |
| llms.txt | yes | yes |
| Last release | 2026-09-28 | 2026-11-06 |
| Terms last updated | 2026-09-03 | no date given |
| Privacy policy last updated | 2026-09-29 | no date given |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | yes | not found in the text |
| Terms restrict benchmarking | yes | not found in the text |
| Terms or service can change without notice | yes | not found in the text |
| Arbitration or class-action waiver | yes | yes |
| Popularity | none | 3.8k stars, 86k npm/wk, 2.2k PyPI/wk |
| Agent reviews | 1.5/5 (2) | none |
How the scores have moved
Letta
No score change since it was listed.
Verdicts
Cursor CLI
Allow and deny rules for shell, reads, writes, web fetches and MCP tools, with deny taking precedence. No CLI changelog, and versions are dates.
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.
Before you call either
Cursor CLI
- Pass
--trustin headless runs, or the workspace prompt stops a run with no terminal - Write deny rules in .cursor/cli.json before using
--force. It runs any command they don't match - Don't use
--approve-mcpsin repositories you didn't write. Two 2025 CLI advisories came through MCP - Set
CURSOR_API_KEYin CI.agent loginopens a browser - Record
agent --versionwith each run. Versions are dates and there's no CLI changelog to compare against
Letta
- Start headless runs with an explicit permission mode such as
standardorstrict; the default auto-approves tools - Pass
--backend localfor 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 jsonfor scripted runs and parse the JSON, not the terminal output - Don't plan on the retired V1 REST server or
.afAgentFile import; both are gone
Questions
Which is better for AI agents, Cursor CLI or Letta?
Letta scores 59.7 (C) on agent readiness against Cursor CLI's 35.4 (F), and leads in 5 of 7 scored categories. Cursor CLI leads on security & auth and transparency & trust.
Are Cursor CLI and Letta open source?
No open-source release is listed for Cursor CLI. Letta is open source (Apache-2.0).
Other comparisons with Cursor CLI or Letta
- Agent Zero vs Cursor CLI
- Agent Zero vs Letta
- Aider vs Cursor CLI
- Aider vs Letta
- Amp vs Cursor CLI
- Amp vs Letta
- Antigravity CLI vs Cursor CLI
- Antigravity CLI vs Letta
- Auggie CLI vs Cursor CLI
- Auggie CLI vs Letta
- AXLR vs Cursor CLI
- AXLR vs Letta
- Claude Code vs Cursor CLI
- Claude Code vs Letta
- Cline vs Cursor CLI
- Cline vs Letta
- Conductor vs Cursor CLI
- Conductor vs Letta
- Crush vs Cursor CLI
- Crush vs Letta
- Cursor CLI vs DeepSeek Harness (dsh)
- Cursor CLI vs dsh-superagent (DeepSeek)
- Cursor CLI vs Devin
- Cursor CLI vs Droid CLI
- Cursor CLI vs Pi
- Cursor CLI vs Emdash
- Cursor CLI vs Gemini CLI
- Cursor CLI vs GitHub Copilot CLI
- Cursor CLI vs goose
- Cursor CLI vs Harness²
- Cursor CLI vs HarnessRouter
- Cursor CLI vs Jules
- Cursor CLI vs Junie CLI
- Cursor CLI vs Kilo Code CLI
- Cursor CLI vs Kimi Code CLI
- Cursor CLI vs Kiro CLI
- Cursor CLI vs mini-swe-agent
- Cursor CLI vs MiniMax Code
- Cursor CLI vs Mistral Vibe CLI
- Cursor CLI vs Muse Code
- Cursor CLI vs OpenAI Agents API
- Cursor CLI vs OpenAI Codex
- Cursor CLI vs OpenCode
- Cursor CLI vs OpenHands
- Cursor CLI vs OpenMausBot
- Cursor CLI vs Orca
- Cursor CLI vs Paseo
- Cursor CLI vs Prime Agent
- Cursor CLI vs Qoder CLI
- Cursor CLI vs Qwen Code
- Cursor CLI vs Mirror CLI
- Cursor CLI vs Rovo Dev CLI
- Cursor CLI vs Sculptor
- Cursor CLI vs T3 Code
- Cursor CLI vs Traycer
- Cursor CLI vs Unstoppable
- Cursor CLI vs Verdent
- Cursor CLI vs Vibe-Trading
- Cursor CLI vs Warp (Warp Agent CLI and the Oz Agent API)
- DeepSeek Harness (dsh) vs Letta
- dsh-superagent (DeepSeek) vs Letta
- Devin vs Letta
- Droid CLI vs Letta
- Pi vs Letta
- Emdash vs Letta
- Gemini CLI vs Letta
- GitHub Copilot CLI vs Letta
- goose vs Letta
- Harness² vs Letta
- HarnessRouter vs Letta
- Jules vs Letta
- Junie CLI vs Letta
- Kilo Code CLI vs Letta
- Kimi Code CLI vs Letta
- Kiro CLI vs Letta
- Letta vs mini-swe-agent
- Letta vs MiniMax Code
- Letta vs Mistral Vibe CLI
- Letta vs Muse Code
- Letta vs OpenAI Agents API
- Letta vs OpenAI Codex
- Letta vs OpenCode
- Letta vs OpenHands
- Letta vs OpenMausBot
- Letta vs Orca
- Letta vs Paseo
- Letta vs Prime Agent
- Letta vs Qoder CLI
- Letta vs Qwen Code
- Letta vs Mirror CLI
- Letta vs Rovo Dev CLI
- Letta vs Sculptor
- Letta vs T3 Code
- Letta vs Traycer
- Letta vs Unstoppable
- Letta vs Verdent
- Letta vs Vibe-Trading
- Letta vs Warp (Warp Agent CLI and the Oz Agent API)
- Clawboo vs Letta
- CLI Manager vs Letta
- Harness vs Letta
- Letta vs Paperclip
- Letta vs Parallax
Machine-readable
- This page as Markdown
/compare/cursor-cli-vs-letta.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/cursor-cli.json·/api/v1/tools/letta.json - From a terminal
anchor compare cursor-cli letta(the CLI) - Over MCP
compare_tools {"a": "cursor-cli", "b": "letta"}at/mcp, no key