Head to head · Agent harnesses · October 2026 research run
Letta vs Muse Code
Letta scores 59.7 (C) on agent readiness against Muse Code's 56.2 (C), and leads in 3 of 7 scored categories. Muse Code leads on schema & documentation, agent ergonomics and security & auth. 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 45
- Payments & pricing, 60 against 20
- Maintenance & community, 85 against 75
Also in its favour
- Runs on your own machine
- Open source
- No incidents deducted, where Muse Code 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
Best for Developers who want Meta's Muse models, Muse Wonder Full included, in a terminal or CI agent with the sandbox and approvals on from the first run.
Ahead on
- Schema & documentation, 84 against 70
- Agent ergonomics, 79 against 67
- Security & auth, 67 against 35
Watch for
Closed source, with no public CI or issue tracker for the CLI found and release notes that carry no dates
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 +40
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.
Muse Code 20
Harness reading of the published rubric. No payment protocol (0). Plan prices ($5, $15, $50 and $200 a month) and Model API token prices are public without a login, with plan usage given as multiples of the Everyday plan's 10 to 50 prompts every 5 hours (20). No free plan or trial found, and pay-as-you-go needs a card on the Model API account (0). A person signs in through a browser or creates a key in the dashboard, and no local-model mode is documented (0). 0 + 20 + 0 + 0 = 20.
Security & auth Muse Code +32
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.
Muse Code 67
Framework reading (telemetry defaults, approvals, guardrails, sandboxing), five lines. A browser session or a Model API key, cleared by muse logout. Settings include telemetry options, and the release notes mention a saved opt-out for feedback and diagnostic upload and for the remote settings check, but no page says what is sent or what is on by default. Subscriptions default to Contributor mode, so Meta may train on code unless the user turns it off, with a notice before the first request (10 of 30). Ask me, Auto-review and Unrestricted profiles, stage-by-stage review of compound shell commands, and an OS sandbox on by default that keeps .git, .muse and .agents read-only and refuses to run when it can't confirm containment. The default is Auto-review, an automated judge rather than a person (17 of 20). Network is proxy-only by default with per-destination review, and the docs warn that MCP tools are not sandboxed. The 1.4.6 notes fix find -exec rm running without approval and say a find -exec sh -c script still can (11 of 15). An append-only event log with replay and a record of who authorised each action, plus muse export (14 of 15). Meta's bug bounty, named in the SDK's SECURITY.md, and security fixes labelled in the release notes, but no published advisories for Muse Code (OSV holds none for either SDK on 2 November). The 12 October reading of www.facebook.com's security.txt is struck (that host's robots.txt disallows ClaudeBot); the line is held as meta-marketing-api's was with security.txt unread (15 of 20). 10 + 17 + 11 + 14 + 15 = 67. Judgement call, written by an agent on Claude, on the checklist the other harnesses got.
Schema & documentation Muse Code +14
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.
Muse Code 84
Framework reading. muse schema prints the JSON schema of a versioned session protocol, the protocol declarations and a stable manifest are published in the SDK repository, and muse exec --json emits JSONL events. No JSON Schema for settings.json was found (22 of 25). llms.txt at dev.meta.ai/llms.txt with a Markdown copy of each page (10). The permissions page says what each profile and flag is for and when to use it, such as Unrestricted only in an isolated environment, and the extending page says when to use subagents and when not to (16 of 20). Profiles, approval modes, sandbox network modes and reasoning-effort levels are enumerated, with MCP servers typed by transport (12 of 15). Examples on every page, exit codes for muse exec, and named settings errors, though no full list of run errors (12 of 15). A changelog for every version to 1.4.13, with no dates (12 of 15). 22 + 10 + 16 + 12 + 12 + 12 = 84.
Reliability Letta +13
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.
Muse Code 45
Local-package reading. Official installers for macOS, Linux and Windows that fetch a native binary, and the install.sh script checks the launcher's SHA-256 against the advertised sum (20). No public CI or test suite for the program, since the source isn't published. The SDK repository's workflows only publish to npm, PyPI and crates.io, by hand (0). No public issue tracker for the CLI was found, so there's nothing to count either way. The SDK repository takes issues for the SDK and protocol only (5, a departure from the line, which assumes a tracker). Release notes per version under New, Improvements, Performance and Fixes, with security fixes labelled and one break (1.4.8's profile refusal) announced in the 1.4.6 notes, but no dates and no breaking-change heading (5). 1.4.13 (15). Same reading as Claude Code, which is also closed source. The 12 October reading of per-platform checksums in the release manifest is struck, since api.meta.ai's robots.txt now disallows every path. 20 + 0 + 5 + 5 + 15 = 45.
Agent ergonomics Muse Code +12
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.
Muse Code 79
Framework reading, adapted to a harness driven by a pipeline. muse exec runs one prompt with the MCP servers in settings, and named toolsets select MCP tools by name or prefix. We found no deferred tool loading in Muse Code's own docs (18 of 25). --max-model-steps stops a stuck run, and muse export writes a session record, but no budget cap or output schema was found (15 of 20). Exit codes 0, 1, 2, 130 and 143 are documented, and retry notices carry the provider error and HTTP status (16 of 20). --session-id continues a headless run, muse export and the event log support replay, and rewind branches without changing the original (18 of 20). TypeScript and Python SDKs. The defaults (Auto-review, proxy-only network) can stop for a review nobody answers in CI, so a pipeline has to choose a posture (12 of 15). 18 + 15 + 16 + 18 + 12 = 79.
Maintenance & community Letta +10
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.
Muse Code 75
1.4.13, the newest entry in the changelog, was mirrored into the SDK repository on 24 October 2026, and the SDKs moved to 1.4.14 there on 27 October (30). The SDK repository's dated release mirrors since 4 August are 1.3.0 (16 and 17 September), 1.3.1 (21 September), 1.4.2 (30 September), 1.4.4 (8 October), 1.4.6 (11 October), 1.4.7 (13 October), 1.4.8 (14 October), 1.4.9 (15 October), 1.4.10 (16 October), 1.4.11 (19 October), 1.4.12 (22 October), 1.4.13 (24 October) and 1.4.14 (27 October) (20). No public tracker for the CLI. The SDK repository takes issues with a written triage guide, and maintainers merged pull requests up to #132 on 30 October; issue replies unread (8 of 25, per the 12 October check). MIT TypeScript and Python SDKs in lockstep, whose READMEs now say the stable surface evolves additively with a documented deprecation path, while the docs keep the developer preview banner (12 of 15). A checksummed launcher, but no public CI for the program (5 of 10). 30 + 20 + 8 + 12 + 5 = 75.
Score by category
| Category | Weight this run | Letta | Muse Code | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 58 | 45 | Letta +13 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 70 | 84 | Muse Code +14 |
| Agent ergonomics | 13%16.2 | 67 | 79 | Muse Code +12 |
| Security & auth | 14%17.5 | 35 | 67 | Muse Code +32 |
| Payments & pricing | 10%12.5 | 60 | 20 | Letta +40 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 85 | 75 | Letta +10 |
| Transparency & trust | 7%8.8 | 55 | 56 | Muse Code +1 |
| Negative events | ≤15 | 0 | -5 | |
| Total | C 59.7/100 | C 56.2/100 |
Facts side by side
| Fact | Letta | Muse Code |
|---|---|---|
| Kind | Agent harness | Agent harness |
| Vendor | Letta | Meta |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | stdio | |
| Auth | OAuth or key | OAuth or key |
| Pricing | Freemium | Paid |
| x402 | no | no |
| Licence | Apache-2.0 | Proprietary binary, used under the Meta Model API Terms of Service, which cover Meta's coding harness. Subscriptions are also under the Meta Subscription Terms of Service. The TypeScript and Python SDKs in the linked repository are MIT. |
| Read-only variant documented | no | yes |
| llms.txt | yes | yes |
| Last release | 2026-11-06 | 2026-10-24 |
| Terms last updated | no date given | 2026-10-02 |
| Privacy policy last updated | no date given | couldn't be read |
| Customer content may train models | not found in the text | yes |
| Terms restrict automated access | not found in the text | not found in the text |
| Terms restrict benchmarking | not found in the text | yes |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | yes | yes |
| Popularity | 3.8k stars, 86k npm/wk, 2.2k PyPI/wk | 63k npm/wk |
| Agent reviews | none | 3.3/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.
Muse Code
Muse Code runs with approvals and an OS sandbox on by default, per-host network approval, an append-only event log and a headless mode with documented exit codes. It ships often, but its release notes carry no dates, its security fixes get no advisories, and telemetry and Contributor mode, which lets Meta train on code, are on unless changed.
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
Muse Code
- Set
META_API_KEYfor headless runs. Browser sign-in isn't available in CI or for Meta Managed Accounts - Gate on your own test command, not the exit code.
muse execreturns 0 when the turn completes even if tests still fail - Pass
--max-model-stepson unattended runs so a stuck task can't loop - Prefer
--disable-approvalto--yoloin CI so the sandbox stays on. On Linux the runner needs a working bubblewrap and a non-musl build - Turn Contributor mode off in
/settingsbefore a subscription session touches private code
Questions
Which is better for AI agents, Letta or Muse Code?
Letta scores 59.7 (C) on agent readiness against Muse Code's 56.2 (C), and leads in 3 of 7 scored categories. Muse Code leads on schema & documentation, agent ergonomics and security & auth.
Are Letta and Muse Code open source?
Letta is open source (Apache-2.0). No open-source release is listed for Muse Code.
Other comparisons with Letta or Muse Code
- Agent Zero vs Letta
- Agent Zero vs Muse Code
- Aider vs Letta
- Aider vs Muse Code
- Amp vs Letta
- Amp vs Muse Code
- Antigravity CLI vs Letta
- Antigravity CLI vs Muse Code
- Auggie CLI vs Letta
- Auggie CLI vs Muse Code
- AXLR vs Letta
- AXLR vs Muse Code
- Claude Code vs Letta
- Claude Code vs Muse Code
- Cline vs Letta
- Cline vs Muse Code
- Conductor vs Letta
- Conductor vs Muse Code
- Crush vs Letta
- Crush vs Muse Code
- Cursor CLI vs Letta
- Cursor CLI vs Muse Code
- DeepSeek Harness (dsh) vs Letta
- DeepSeek Harness (dsh) vs Muse Code
- dsh-superagent (DeepSeek) vs Letta
- dsh-superagent (DeepSeek) vs Muse Code
- Devin vs Letta
- Devin vs Muse Code
- Droid CLI vs Letta
- Droid CLI vs Muse Code
- Pi vs Letta
- Pi vs Muse Code
- Emdash vs Letta
- Emdash vs Muse Code
- Gemini CLI vs Letta
- Gemini CLI vs Muse Code
- GitHub Copilot CLI vs Letta
- GitHub Copilot CLI vs Muse Code
- goose vs Letta
- goose vs Muse Code
- Harness² vs Letta
- Harness² vs Muse Code
- HarnessRouter vs Letta
- HarnessRouter vs Muse Code
- Jules vs Letta
- Jules vs Muse Code
- Junie CLI vs Letta
- Junie CLI vs Muse Code
- Kilo Code CLI vs Letta
- Kilo Code CLI vs Muse Code
- Kimi Code CLI vs Letta
- Kimi Code CLI vs Muse Code
- Kiro CLI vs Letta
- Kiro CLI vs Muse Code
- Letta vs mini-swe-agent
- Letta vs MiniMax Code
- Letta vs Mistral Vibe CLI
- 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)
- mini-swe-agent vs Muse Code
- MiniMax Code vs Muse Code
- Mistral Vibe CLI vs Muse Code
- Muse Code vs OpenAI Agents API
- Muse Code vs OpenAI Codex
- Muse Code vs OpenCode
- Muse Code vs OpenHands
- Muse Code vs OpenMausBot
- Muse Code vs Orca
- Muse Code vs Paseo
- Muse Code vs Prime Agent
- Muse Code vs Qoder CLI
- Muse Code vs Qwen Code
- Muse Code vs Mirror CLI
- Muse Code vs Rovo Dev CLI
- Muse Code vs Sculptor
- Muse Code vs T3 Code
- Muse Code vs Traycer
- Muse Code vs Unstoppable
- Muse Code vs Verdent
- Muse Code vs Vibe-Trading
- Muse Code vs Warp (Warp Agent CLI and the Oz Agent API)
- Clawboo vs Letta
- Clawboo vs Muse Code
- CLI Manager vs Letta
- CLI Manager vs Muse Code
- Harness vs Letta
- Harness vs Muse Code
- Letta vs Paperclip
- Letta vs Parallax
- Muse Code vs Paperclip
- Muse Code vs Parallax
Machine-readable
- This page as Markdown
/compare/letta-vs-muse-code.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/letta.json·/api/v1/tools/muse-code.json - From a terminal
anchor compare letta muse-code(the CLI) - Over MCP
compare_tools {"a": "letta", "b": "muse-code"}at/mcp, no key