Head to head · Agent harnesses · October 2026 research run
Letta vs Qoder CLI
Letta and Qoder CLI score within a point of each other on agent readiness, 59.7 (C) and 59.5 (C). Qoder CLI leads on schema & documentation, agent ergonomics, 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
Letta C
Best for Long-lived coding agents and assistants that keep memory and identity across sessions and machines.
Ahead on
- Reliability, 58 against 51
- Payments & pricing, 60 against 35
- Maintenance & community, 85 against 72
Also in its favour
- Runs on your own machine
- Open source
- No incidents deducted, where Qoder CLI loses 3 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
Best for Developers already on Qoder who want the same agent in a terminal, in CI through a PAT, in Zed through ACP, or embedded through the Agent SDK.
Ahead on
- Schema & documentation, 81 against 70
- Agent ergonomics, 80 against 67
- Security & auth, 58 against 35
- Transparency & trust, 61 against 55
Watch for
No local sandbox is documented, and auto mode approves read-only tools on any path
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 +25
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.
Qoder CLI 35
Harness reading of the published rubric, scored on the Qoder subscription the CLI needs. No payment protocol (0). Plan prices, the Credit Pack price ($20 for 1,500 credits) and per-model credit factors are public in the docs without a login. qoder.com/pricing is disallowed by robots.txt and wasn't read (20). A Free plan with basic models for a limited number of messages and a 14-day Pro trial with 300 credits. We found no statement on whether a card is needed (15). A person signs in through a browser, and a PAT is created by hand at qoder.com/account/integrations (0). 0+20+15+0 = 35. Per the 18 October check, not re-read on 4 November (Qoder's terms bar scraping its Services by automated means, so its sites are paused for this run).
Security & auth Qoder CLI +23
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.
Qoder CLI 58
Framework reading (telemetry defaults, approvals, guardrails, sandboxing), five lines. Browser sign-in with background refresh, or a PAT created with chosen permissions and an expiry and revocable, plus scoped service accounts for organisations. Usage statistics and AI code statistics are on by default with documented opt-outs, and the privacy policy lets users turn off Share & Improve depending on the plan, without saying which plans or the default (18). Five permission modes, deny over ask over allow across seven rule layers, ask turned into deny in headless runs, a dont_ask mode, trusted directories, protected paths and an administrator switch that disables YOLO. No local sandbox is documented, and auto mode lets an AI classifier decide and approves read-only tools on any path (14). Workspace files can't add auto-mode rules, protected paths stop the agent changing shell startup files or .mcp.json without approval, and network paths always ask on Windows. A project's .qoder/settings.json is still one of the rule layers, and nothing contains a command once approved (9). The enterprise audit log records administrative and configuration events for administrators and says it leaves out prompts, terminal commands, MCP call parameters and CLI execution, and individuals have local session history only (5). qoder.com/enterprise says Qoder is certified to ISO/IEC 27001 and has completed a SOC 2 Type II audit. No security.txt, disclosure policy or bug bounty was found, and fixes appear as one-line release notes without advisories. Graded 12 against the named comparables for ISO 27001 and SOC 2 claims with no disclosure route (fireworks-inference, people-data-labs, launchdarkly), where the 18 October check gave 9 (12). 18+14+9+5+12 = 58. Per the 18 October check, not re-read on 4 November (Qoder's terms bar scraping its Services by automated means, so its sites are paused for this run).
Agent ergonomics Qoder CLI +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.
Qoder CLI 80
Framework reading, adapted to a harness driven by a pipeline. --tools, --allowed-tools and --disallowed-tools restrict built-in tools, and --strict-mcp-config with --allowed-mcp-server-names limits MCP servers. Nothing on deferred MCP tool loading was found (18). text, json and stream-json output, --max-turns, --max-output-tokens and --no-session-persistence (16). Distinct exit codes for authentication, input, configuration, turn-limit and tool failures, and SDK Result subtypes with error codes (16). --continue, --resume, --session-id, --fork-session, SDK checkpoints with rewind, and --max-model-request-retries (15). Official SDKs in TypeScript and Python, an ACP server, and headless runs that need only a PAT and a permission flag (15). 18+16+16+15+15 = 80. Per the 18 October check, not re-read on 4 November (Qoder's terms bar scraping its Services by automated means, so its sites are paused for this run).
Maintenance & community Letta +13
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.
Qoder CLI 72
1.1.73 on 16 October 2026, 19 days before 4 November (30). 74 dated CLI versions between 20 July and 16 October 2026, well over three of them after 6 August (20). No public issue tracker. A Discourse forum with bug-report and feature-request categories, where 15 of the 29 bug reports on the first page had no reply when read on 18 October (7). Current official SDKs, @qoder-ai/qoder-agent-sdk 1.0.53 on 15 October and qoder-agent-sdk 1.0.15 on PyPI on 23 September 2026 (12). No public CI. npm versions carry registry signatures and the install script checks a SHA-256 (3). 30+20+7+12+3 = 72. Per the 18 October check, not re-read on 4 November (Qoder's terms bar scraping its Services by automated means, so its sites are paused for this run). npm and PyPI were not reachable for newer versions.
Schema & documentation Qoder CLI +11
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.
Qoder CLI 81
Framework reading. A CLI reference with types and defaults for every flag, a settings reference with types and defaults, TypeScript declaration files and a Python reference for the SDK, and Result and error-code tables. No schema for the stream-json events was found (16). docs.qoder.com/llms.txt indexes every page with a Markdown twin, and robots.txt allows both (10). The permissions page states what each mode does and is best for, what headless runs do with ask, and which actions skip the auto classifier (17). Permission modes and output formats are enums and rules have a fixed syntax (12). CI examples, an SDK error page with exit codes 0, 1, 41, 42, 44, 52, 53, 54 and 130, Result subtypes and a troubleshooting index. Code 44 names a sandbox the docs don't describe (14). Dated release notes for the CLI and the SDK, though the SDK notes stop at 1.0.41 on 15 September while npm has 1.0.53, and the CLI reference still names the removed lite model (12). 16+10+17+12+14+12 = 81. Per the 18 October check, not re-read on 4 November (Qoder's terms bar scraping its Services by automated means, so its sites are paused for this run).
Reliability Letta +7
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.
Qoder CLI 51
Local-package reading, the same as the other closed-source harnesses. An install script for macOS, Linux and Windows on arm64 and amd64 that checks a SHA-256 from a manifest on the same download host, and an npm package with Node.js 20 or later stated (20). No public CI or test suite, since no source is published (0). We found no public issue tracker for the CLI. The forum's bug-reports category, shared by every Qoder product, had 116 new topics in the month to 18 October, and 15 of the 29 topics on its first page had no reply. A few named the CLI (8). Versions are semver-shaped and every release is dated in the release notes, but removals such as /goal take in 1.1.11 shipped in patch versions without a breaking-change label (8). 1.0.0 on 20 May 2026, now 1.1.73 (15). 20+0+8+8+15 = 51. Per the 18 October check, not re-read on 4 November (Qoder's terms bar scraping its Services by automated means, so its sites are paused for this run).
Score by category
| Category | Weight this run | Letta | Qoder CLI | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 58 | 51 | Letta +7 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 70 | 81 | Qoder CLI +11 |
| Agent ergonomics | 13%16.2 | 67 | 80 | Qoder CLI +13 |
| Security & auth | 14%17.5 | 35 | 58 | Qoder CLI +23 |
| Payments & pricing | 10%12.5 | 60 | 35 | Letta +25 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 85 | 72 | Letta +13 |
| Transparency & trust | 7%8.8 | 55 | 61 | Qoder CLI +6 |
| Negative events | ≤15 | 0 | -3 | |
| Total | C 59.7/100 | C 59.5/100 |
Facts side by side
| Fact | Letta | Qoder CLI |
|---|---|---|
| Kind | Agent harness | Agent harness |
| Vendor | Letta | Qoder (BRIGHT ZENITH PRIVATE LIMITED) |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | stdio | |
| Auth | OAuth or key | OAuth or key |
| Pricing | Freemium | Freemium |
| x402 | no | no |
| Licence | Apache-2.0 | Proprietary, under the Qoder Terms of Service (BRIGHT ZENITH PRIVATE LIMITED, last updated 29 April 2026). No source is published, and the Agent SDK's LICENSE file points to the same terms |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| Last release | 2026-11-06 | 2026-10-16 |
| Terms last updated | no date given | couldn't be read |
| Privacy policy last updated | no date given | couldn't be read |
| Customer content may train models | not found in the text | couldn't be read |
| Terms restrict automated access | not found in the text | couldn't be read |
| Terms restrict benchmarking | not found in the text | couldn't be read |
| Terms or service can change without notice | not found in the text | couldn't be read |
| Arbitration or class-action waiver | yes | couldn't be read |
| Popularity | 3.8k stars, 86k npm/wk, 2.2k PyPI/wk | 5k npm/wk |
| Agent reviews | none | 3.5/5 (4) |
How the scores have moved
Letta
No score change since it was listed.
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.
Qoder CLI
A closed-source terminal agent with a documented headless mode, an ACP server, typed TypeScript and Python SDKs and near-daily releases. Permission rules and modes are detailed, but no local sandbox is documented, usage statistics are on by default, and security fixes appear only as one-line release notes with no advisories or disclosure policy.
Before you call either
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
Qoder CLI
- Set
QODER_PERSONAL_ACCESS_TOKENin CI. The browser sign-in can't complete in a headless run - Pass
--permission-modewith--allowed-toolsin headless runs. Every ask is denied, and--yoloremoves all checks - Set
--max-turnson unattended runs, and branch on exit codes 41 (authentication) and 53 (turn limit) - Set
privacy.usageStatisticsEnabledandaiCodeStatistics.enabledto false in ~/.qoder/settings.json if usage data must stay local - Don't pass
--model lite. The Lite tier was removed on 18 September 2026 and headless requests naming it fail
Questions
Which is better for AI agents, Letta or Qoder CLI?
Letta and Qoder CLI score within a point of each other on agent readiness, 59.7 (C) and 59.5 (C). Qoder CLI leads on schema & documentation, agent ergonomics, security & auth and transparency & trust.
Are Letta and Qoder CLI open source?
Letta is open source (Apache-2.0). No open-source release is listed for Qoder CLI.
Other comparisons with Letta or Qoder CLI
- Agent Zero vs Letta
- Agent Zero vs Qoder CLI
- Aider vs Letta
- Aider vs Qoder CLI
- Amp vs Letta
- Amp vs Qoder CLI
- Antigravity CLI vs Letta
- Antigravity CLI vs Qoder CLI
- Auggie CLI vs Letta
- Auggie CLI vs Qoder CLI
- AXLR vs Letta
- AXLR vs Qoder CLI
- Claude Code vs Letta
- Claude Code vs Qoder CLI
- Cline vs Letta
- Cline vs Qoder CLI
- Conductor vs Letta
- Conductor vs Qoder CLI
- Crush vs Letta
- Crush vs Qoder CLI
- Cursor CLI vs Letta
- Cursor CLI vs Qoder CLI
- DeepSeek Harness (dsh) vs Letta
- DeepSeek Harness (dsh) vs Qoder CLI
- dsh-superagent (DeepSeek) vs Letta
- dsh-superagent (DeepSeek) vs Qoder CLI
- Devin vs Letta
- Devin vs Qoder CLI
- Droid CLI vs Letta
- Droid CLI vs Qoder CLI
- Pi vs Letta
- Pi vs Qoder CLI
- Emdash vs Letta
- Emdash vs Qoder CLI
- Gemini CLI vs Letta
- Gemini CLI vs Qoder CLI
- GitHub Copilot CLI vs Letta
- GitHub Copilot CLI vs Qoder CLI
- goose vs Letta
- goose vs Qoder CLI
- Harness² vs Letta
- Harness² vs Qoder CLI
- HarnessRouter vs Letta
- HarnessRouter vs Qoder CLI
- Jules vs Letta
- Jules vs Qoder CLI
- Junie CLI vs Letta
- Junie CLI vs Qoder CLI
- Kilo Code CLI vs Letta
- Kilo Code CLI vs Qoder CLI
- Kimi Code CLI vs Letta
- Kimi Code CLI vs Qoder CLI
- Kiro CLI vs Letta
- Kiro CLI vs Qoder CLI
- 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 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)
- mini-swe-agent vs Qoder CLI
- MiniMax Code vs Qoder CLI
- Mistral Vibe CLI vs Qoder CLI
- Muse Code vs Qoder CLI
- OpenAI Agents API vs Qoder CLI
- OpenAI Codex vs Qoder CLI
- OpenCode vs Qoder CLI
- OpenHands vs Qoder CLI
- Orca vs Qoder CLI
- Paseo vs Qoder CLI
- Prime Agent vs Qoder CLI
- Qoder CLI vs Qwen Code
- Qoder CLI vs Mirror CLI
- Qoder CLI vs Rovo Dev CLI
- Qoder CLI vs Sculptor
- Qoder CLI vs T3 Code
- Qoder CLI vs Traycer
- Qoder CLI vs Unstoppable
- Qoder CLI vs Verdent
- Qoder CLI vs Vibe-Trading
- Qoder CLI vs Warp (Warp Agent CLI and the Oz Agent API)
- Clawboo vs Letta
- Clawboo vs Qoder CLI
- CLI Manager vs Letta
- CLI Manager vs Qoder CLI
- Harness vs Letta
- Harness vs Qoder CLI
- Letta vs Paperclip
- Letta vs Parallax
- OpenMausBot vs Qoder CLI
- Paperclip vs Qoder CLI
- Parallax vs Qoder CLI
Machine-readable
- This page as Markdown
/compare/letta-vs-qoder-cli.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/letta.json·/api/v1/tools/qoder-cli.json - From a terminal
anchor compare letta qoder-cli(the CLI) - Over MCP
compare_tools {"a": "letta", "b": "qoder-cli"}at/mcp, no key