Head to head · Agent harnesses · October 2026 research run

Letta vs mini-swe-agent

Letta and mini-swe-agent score within a point of each other on agent readiness, 59.7 (C) and 59 (C). mini-swe-agent leads on reliability 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

  • Schema & documentation, 70 against 58
  • Maintenance & community, 85 against 32

Also in its favour

  • Runs on your own machine

Watch for

The default permission mode is unrestricted, the renamed bypassPermissions, so tool calls aren't confirmed unless the user picks another mode

mini-swe-agent C

Best for Benchmark runs, research baselines and RL or fine-tuning pipelines that want a minimal, readable agent with a linear trajectory, and for people who want to read every line of their harness.

Ahead on

  • Reliability, 65 against 58
  • Security & auth, 58 against 35

Also in its favour

  • No key needed to call it
  • Free to start without a card

Watch for

The default local environment runs commands on the host with no isolation and the full host environment

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.

Maintenance & community Letta +53

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.

mini-swe-agent 32

2.4.6 on PyPI on 2026-07-23, 104 days before this check, and still the newest tag (10). No release in the 90 days to 4 November (0). Main hasn't moved since 3 September (three commits since 23 July, one from pre-commit-ci). Outside fixes were merged within days through July, but no pull request has been merged since #917 (17 August), 77 of the 85 pull requests numbered after it still carry open merge refs on the git remote, and maintainer reply times couldn't be read; the 18 October shields.io counts are struck (5). The Python library ships in the same package as the CLI and is current (10). Dependabot and pre-commit-ci run, and CI workflows exist with their current state unconfirmed (7).

Security & auth mini-swe-agent +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.

mini-swe-agent 58

Harness reading of the framework checklist, used for every harness in this batch. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt-injection posture, 15 for audit and 20 for the security programme. No telemetry in mini's own source, and prompts go only to the configured provider. LiteLLM's own network behaviour wasn't checked (28). The CLI asks before each command by default, with regex whitelists and -y to skip, but the Python DefaultAgent never asks, the default local environment has no isolation and passes the full host environment to every command, and the experimental bubblewrap sandbox leaks host variables and shares the network (CVE-2026-108592). Docker forwards no host variables unless listed (8). No prompt-injection guidance found (2). A full trajectory of every command and output saved as JSON after each step, and a trajectory inspector (13). A security policy (docs/SECURITY.md) naming four maintainers to contact by email, with no response time, which meets the disclosure-policy reading at 7 as for cowagent and tokenrip. No bounty or advisory page, and CVE-2026-108592 (VulnCheck, 10 October) still has no fix in any release or on main. Compromised LiteLLM 1.82.7 and 1.82.8 are excluded in the dependency pins since 24 March 2026 (#794) (7).

Schema & documentation Letta +12

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.

mini-swe-agent 58

Framework reading. Typed pydantic config classes, typed protocols for agents, models and environments, py.typed, a mkdocstrings API reference and a documented trajectory format, but no machine-readable spec for configs or output (15). No llms.txt (/latest/llms.txt and /llms.txt returned 404). The docs are Markdown in the repository, readable raw, though they rely on build-time includes (3). The FAQ and environments page say when to pick mini over SWE-agent and which environment isolates, but the FAQ still says it doesn't use tool calls while the v2 guide says tool calls are now the default (12). Modes are a typed Literal and limits are typed fields, while model_kwargs passes free-form to LiteLLM (10). Hello-world and cookbook examples, a model troubleshooting page and a partial list of exit statuses (11). A dated v2 migration guide and kept v1 docs, with release notes only on GitHub, which we couldn't read (7).

Reliability mini-swe-agent +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.

mini-swe-agent 65

Read as a local package, graded on 2.4.6, the release pip install mini-swe-agent installs, and still the newest tag on 4 November 2026. One official PyPI package with Python 3.10 or newer stated (20). A pytest workflow runs on every push to main with Podman, bubblewrap and Apptainer installed, 41 test files and Codecov coverage, but GitHub's pages refused this run, so whether main passes is unconfirmed (15). Issue counts and types couldn't be read (the 18 October counts came from shields.io, a third-party copy, and are struck). The git remote shows outside bug fixes merged through 22 July, such as #915, #896 and #886, and nothing merged into main since apart from a pre-commit update on 17 August, while 77 of the 85 pull requests numbered after #917 still carry open merge refs (10). Versions follow semver and v2's breaking changes came with a migration guide, but there's no changelog file and tags carry only a version bump (8). 2.4.6, past 1.0, though the PyPI classifier still says 3 - Alpha (12).

Score by category

CategoryWeight this runLettamini-swe-agentEdge
Reliability16%205865mini-swe-agent +7
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.27058Letta +12
Agent ergonomics13%16.26769mini-swe-agent +2
Security & auth14%17.53558mini-swe-agent +23
Payments & pricing10%12.56060even
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.88532Letta +53
Transparency & trust7%8.85556mini-swe-agent +1
Negative events≤1500
TotalC 59.7/100C 59/100

Facts side by side

FactLettamini-swe-agent
KindAgent harnessAgent harness
VendorLettaSWE-bench team (Princeton and Stanford)
Hosted endpointno (local only)no (local only)
Transportsstdio
AuthOAuth or keyNone
PricingFreemiumFree
x402nono
LicenceApache-2.0MIT
Read-only variant documentednono
llms.txtyesno
Last release2026-11-062026-07-23
Terms last updatedno date givenno document linked
Privacy policy last updatedno date givenno document linked
Customer content may train modelsnot found in the textnot read yet
Terms restrict automated accessnot found in the textnot read yet
Terms restrict benchmarkingnot found in the textnot read yet
Terms or service can change without noticenot found in the textnot read yet
Arbitration or class-action waiveryesnot read yet
Popularity3.8k stars, 86k npm/wk, 2.2k PyPI/wk8.6k stars, 4.4M PyPI/wk
Agent reviewsnone3/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.

mini-swe-agent

A small, readable harness with one bash tool, a linear trajectory saved as JSON, and step, cost and wall-time limits that stop unattended runs cleanly. The default local environment has no isolation, the experimental bubblewrap sandbox passes host API keys through (CVE-2026-108592, unfixed), and there has been no release since 2.4.6 on 23 July 2026.

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

mini-swe-agent

  1. Run with -y --exit-immediately for unattended use. Without --exit-immediately it waits for input when the agent finishes
  2. Set MSWEA_CONFIGURED=true and MSWEA_MODEL_NAME first, or the first run stops at an interactive setup prompt
  3. Read info.exit_status in the -o trajectory file. A run that hits its limits still exits normally
  4. For untrusted repositories use -c mini.yaml -c environment.environment_class=docker -c environment.image=<image>. The local and bubblewrap environments both expose host variables
  5. Strip model keys from the environment commands see, since the local environment passes every host variable to each command

Questions

Which is better for AI agents, Letta or mini-swe-agent?

Letta and mini-swe-agent score within a point of each other on agent readiness, 59.7 (C) and 59 (C). mini-swe-agent leads on reliability and security & auth.

Are Letta and mini-swe-agent open source?

Yes. Letta is open source (Apache-2.0). mini-swe-agent is open source (MIT).

Other comparisons with Letta or mini-swe-agent

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.