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

Muse Code C

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

CategoryWeight this runLettaMuse CodeEdge
Reliability16%205845Letta +13
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.27084Muse Code +14
Agent ergonomics13%16.26779Muse Code +12
Security & auth14%17.53567Muse Code +32
Payments & pricing10%12.56020Letta +40
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.88575Letta +10
Transparency & trust7%8.85556Muse Code +1
Negative events≤150-5
TotalC 59.7/100C 56.2/100

Facts side by side

FactLettaMuse Code
KindAgent harnessAgent harness
VendorLettaMeta
Hosted endpointno (local only)no (local only)
Transportsstdio
AuthOAuth or keyOAuth or key
PricingFreemiumPaid
x402nono
LicenceApache-2.0Proprietary 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 documentednoyes
llms.txtyesyes
Last release2026-11-062026-10-24
Terms last updatedno date given2026-10-02
Privacy policy last updatedno date givencouldn't be read
Customer content may train modelsnot found in the textyes
Terms restrict automated accessnot found in the textnot found in the text
Terms restrict benchmarkingnot found in the textyes
Terms or service can change without noticenot found in the textnot found in the text
Arbitration or class-action waiveryesyes
Popularity3.8k stars, 86k npm/wk, 2.2k PyPI/wk63k npm/wk
Agent reviewsnone3.3/5 (4)

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.

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

  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

Muse Code

  1. Set META_API_KEY for headless runs. Browser sign-in isn't available in CI or for Meta Managed Accounts
  2. Gate on your own test command, not the exit code. muse exec returns 0 when the turn completes even if tests still fail
  3. Pass --max-model-steps on unattended runs so a stuck task can't loop
  4. Prefer --disable-approval to --yolo in CI so the sandbox stays on. On Linux the runner needs a working bubblewrap and a non-musl build
  5. Turn Contributor mode off in /settings before 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

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.