Head to head · Agent harnesses · October 2026 research run
Kiro CLI vs Letta
Kiro CLI and Letta score within a point of each other on agent readiness, 59.8 (C) and 59.7 (C). Letta leads on payments & pricing and maintenance & community. 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
Kiro CLI C
Best for Teams on AWS that want one agent configuration across terminal, IDE and web, with central permission policy, prompt logging to their own S3 bucket and IAM Identity Centre sign-in.
Ahead on
- Schema & documentation, 79 against 70
- Security & auth, 69 against 35
- Transparency & trust, 71 against 55
Also in its favour
- Free to start without a card
Watch for
Free and individual paid accounts have content used for service improvement, including model training, unless they opt out
Letta C
Best for Long-lived coding agents and assistants that keep memory and identity across sessions and machines.
Ahead on
- Payments & pricing, 60 against 40
- Maintenance & community, 85 against 73
Also in its favour
- Runs on your own machine
- Open source
- No incidents deducted, where Kiro 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.
Security & auth Kiro CLI +34
Kiro CLI 69
Framework reading (telemetry defaults, approvals, guardrails, sandboxing), five lines. Telemetry and content collection are on by default for Free and individual accounts, each with a documented opt-out, and enterprise users are opted out. API keys are long-lived and revocable with no scopes, and administrators must switch key generation on (14). Deny over ask over allow across six scopes, hard-coded denies on Kiro's own settings paths, workspace trust and a managed policy that fails closed. V3 is the default since 3.0.0 (3 November 2026), interactive V3 sessions ask before loading a folder's hooks, agents and MCP servers since 2.33.0, and /sandbox puts agent shell commands and local stdio MCP servers in an operating-system sandbox. The sandbox is off unless chosen and doesn't cover the agent, built-in file tools or remote MCP servers, and AWS says managed policies are client-enforced and can be circumvented (17). An untrusted workspace doesn't load its agents, steering, MCP configuration or skills, compound shell commands are split before matching, and the MCP page warns that servers run outside any sandbox (11). Enterprise prompt logging to the customer's S3 bucket covers the CLI, with daily activity reports and OpenTelemetry export, and individuals have local logs only (11). AWS vulnerability reporting through a HackerOne disclosure programme with no paid bounty, CVEs published in security bulletins with credit to reporters, ISO/IEC 27001:2022 scope and HIPAA eligibility. The aws.amazon.com security.txt is valid (Expires 2027-10-16) and kiro.dev/.well-known/security.txt answers 404, so 2 are held back for that and 2 for no bounty (16). 14+17+11+11+16 = 69.
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.
Payments & pricing Letta +20
Kiro CLI 40
Harness reading of the published rubric, scored on the Kiro subscription the CLI needs. No payment protocol (0). Plan prices, the $0.04 credit price and per-model credit multipliers are public without a login (20). Kiro Free has 50 credits a month, and the pricing page asks for a card only on upgrade (20). A person signs in through a browser or device flow, and the API key for headless runs is created by hand at app.kiro.dev on a paid plan (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.
Transparency & trust Kiro CLI +16
Kiro CLI 71
Proprietary, with clear terms. The licence page puts the CLI under the AWS Customer Agreement and the AWS Intellectual Property Licence, where the Amazon Q Developer CLI it replaced was Apache 2.0, per the 8 October check (15). The data protection page (updated 23 October 2026) says what is stored for Free, individual and enterprise users, names US East (N. Virginia) for storage, and gives 60 days for Free Tier abuse detection and 30 days for some models. It agrees with sections 50.3 and 50.14 of the AWS Service Terms, read on 8 October. No general retention period for stored content was found (22). The models page has a model lifecycle section with Experimental, Active and EOL stages and dates, and Claude Sonnet 4 ended on 14 October 2026. 3.0.0 made V3 the default as 2.30.0 announced and retired the Classic interface 34 days after the 2.26.0 deprecation notice, but the desktop app and inline autocomplete were retired in the same release with no earlier notice found, and no minimum notice period is stated (14). Telemetry types are listed and kiro-cli settings telemetry.enabled turns them off, with collection on by default. The data protection page's CLI steps still point to the desktop app's Preferences, which 3.0.0 retired (15). 15+22+14+15 = 66.
Letta 55
Apache-2.0 (30). The privacy policy has no date, no legal entity and no retention periods, and says hosted message data may train future models (8 of 30). The README and docs mark AgentFile, the Electron app and the V1 server as deprecated or retired, without dated notice periods (12 of 20). Telemetry is described in the privacy policy only as basic and opt-out when supported; the LETTA_CODE_TELEM=0 switch appears only in the source (5 of 20). Total 55.
Maintenance & community Letta +12
Kiro CLI 73
3.0.0 on 3 November 2026, after 2.37.1 on 31 October (30). 25 dated releases from 2.17.0 on 11 August to 3.0.0 on 3 November, plus five patches, read from the first three changelog pages back to 9 July (20). A public issue tracker with area labels and triage automation, 69 cli issues closed against 96 opened in the 30 days to 8 October, and a Discord server, per the 8 October check, not re-read on 3 November. We didn't establish how many replies come from staff (14). No SDK and no registry entry. The ACP server is kept current, with ACP sign-in added in 2.37.0 and a migration guide for clients moving to V3 (6). Closed source, so no CI or dependency health to read. The installer verifies checksums (3). 30+20+14+6+3 = 73.
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.
Schema & documentation Kiro CLI +9
Kiro CLI 79
Framework reading. A command reference, a settings reference, an exit-code page and a documented rule format for permissions, plus the Agent Client Protocol methods the CLI implements. No published schema for the stream-json events was found (14). kiro.dev/llms.txt indexes every docs page and each has a Markdown twin, though robots.txt disallows both for crawlers (10). The permissions page states the defaults, what each preset allows and when to pick it, and that headless runs treat ask as deny (16). Rules are validated, an unknown preset rejects the session request, and a malformed managed policy fails closed (12). CI examples, exit codes 0, 1, 3 and 4 and hook exit codes are documented, but code 1 covers every other failure (12). Versioned releases with a dated changelog and a 2.x reference kept beside V3 (15).
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.
Score by category
| Category | Weight this run | Kiro CLI | Letta | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 57 | 58 | Letta +1 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 79 | 70 | Kiro CLI +9 |
| Agent ergonomics | 13%16.2 | 67 | 67 | even |
| Security & auth | 14%17.5 | 69 | 35 | Kiro CLI +34 |
| Payments & pricing | 10%12.5 | 40 | 60 | Letta +20 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 73 | 85 | Letta +12 |
| Transparency & trust | 7%8.8 | 71 | 55 | Kiro CLI +16 |
| Negative events | ≤15 | -5 | 0 | |
| Total | C 59.8/100 | C 59.7/100 |
Facts side by side
| Fact | Kiro CLI | Letta |
|---|---|---|
| Kind | Agent harness | Agent harness |
| Vendor | Amazon Web Services | 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. Licensed as AWS Content under the AWS Customer Agreement and the AWS Intellectual Property Licence (https://kiro.dev/license/). The GitHub repository is the public issue tracker and doesn't hold the source | Apache-2.0 |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| Last release | 2026-11-03 | 2026-11-06 |
| Terms last updated | 2026-08-14 | no date given |
| Privacy policy last updated | 2026-05-18 | no date given |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | not found in the text | not found in the text |
| Terms restrict benchmarking | not found in the text | not found in the text |
| 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 | 4.4k stars | 3.8k stars, 86k npm/wk, 2.2k PyPI/wk |
| Agent reviews | 2.8/5 (4) | none |
How the scores have moved
Verdicts
Kiro CLI
Permission rules follow deny over ask over allow, and since 3.0.0 (3 November 2026) the V3 engine with workspace trust is the default. Content from Free and individual paid accounts is used for service improvement, including model training, unless the user opts out, and October releases fixed approval and Windows search-path flaws with no security advisory.
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
Kiro CLI
- Set
KIRO_API_KEYand pass--no-interactivewith--trust-tools=<list>in pipelines. Keep--trust-all-toolsfor disposable environments - Pass
--require-mcp-startupwhen a run depends on MCP tools. Without it a failed server is logged and the run continues - Run 2.34.0 or later. Earlier V3 headless runs could approve requests naming no trusted tool, and Windows hooks could run a planted program
- Run
kiro-cli settings telemetry.enabled falseand turn off content collection on Free and individual plans. Both are on by default - Remove
autocomplete,inline,translate,themeanddashboardfrom scripts, which 3.0.0 retired. Pass--v2to keep the V2 agent
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, Kiro CLI or Letta?
Kiro CLI and Letta score within a point of each other on agent readiness, 59.8 (C) and 59.7 (C). Letta leads on payments & pricing and maintenance & community.
Are Kiro CLI and Letta open source?
No open-source release is listed for Kiro CLI. Letta is open source (Apache-2.0).
Other comparisons with Kiro CLI or Letta
- Agent Zero vs Kiro CLI
- Agent Zero vs Letta
- Aider vs Kiro CLI
- Aider vs Letta
- Amp vs Kiro CLI
- Amp vs Letta
- Antigravity CLI vs Kiro CLI
- Antigravity CLI vs Letta
- Auggie CLI vs Kiro CLI
- Auggie CLI vs Letta
- AXLR vs Kiro CLI
- AXLR vs Letta
- Claude Code vs Kiro CLI
- Claude Code vs Letta
- Cline vs Kiro CLI
- Cline vs Letta
- Conductor vs Kiro CLI
- Conductor vs Letta
- Crush vs Kiro CLI
- Crush vs Letta
- Cursor CLI vs Kiro CLI
- Cursor CLI vs Letta
- DeepSeek Harness (dsh) vs Kiro CLI
- DeepSeek Harness (dsh) vs Letta
- dsh-superagent (DeepSeek) vs Kiro CLI
- dsh-superagent (DeepSeek) vs Letta
- Devin vs Kiro CLI
- Devin vs Letta
- Droid CLI vs Kiro CLI
- Droid CLI vs Letta
- Pi vs Kiro CLI
- Pi vs Letta
- Emdash vs Kiro CLI
- Emdash vs Letta
- Gemini CLI vs Kiro CLI
- Gemini CLI vs Letta
- GitHub Copilot CLI vs Kiro CLI
- GitHub Copilot CLI vs Letta
- goose vs Kiro CLI
- goose vs Letta
- Harness² vs Kiro CLI
- Harness² vs Letta
- HarnessRouter vs Kiro CLI
- HarnessRouter vs Letta
- Jules vs Kiro CLI
- Jules vs Letta
- Junie CLI vs Kiro CLI
- Junie CLI vs Letta
- Kilo Code CLI vs Kiro CLI
- Kilo Code CLI vs Letta
- Kimi Code CLI vs Kiro CLI
- Kimi Code CLI vs Letta
- Kiro CLI vs mini-swe-agent
- Kiro CLI vs MiniMax Code
- Kiro CLI vs Mistral Vibe CLI
- Kiro CLI vs Muse Code
- Kiro CLI vs OpenAI Agents API
- Kiro CLI vs OpenAI Codex
- Kiro CLI vs OpenCode
- Kiro CLI vs OpenHands
- Kiro CLI vs OpenMausBot
- Kiro CLI vs Orca
- Kiro CLI vs Paseo
- Kiro CLI vs Prime Agent
- Kiro CLI vs Qoder CLI
- Kiro CLI vs Qwen Code
- Kiro CLI vs Mirror CLI
- Kiro CLI vs Rovo Dev CLI
- Kiro CLI vs Sculptor
- Kiro CLI vs T3 Code
- Kiro CLI vs Traycer
- Kiro CLI vs Unstoppable
- Kiro CLI vs Verdent
- Kiro CLI vs Vibe-Trading
- Kiro CLI vs Warp (Warp Agent CLI and the Oz Agent API)
- 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 Kiro CLI
- Clawboo vs Letta
- CLI Manager vs Kiro CLI
- CLI Manager vs Letta
- Harness vs Kiro CLI
- Harness vs Letta
- Kiro CLI vs Paperclip
- Kiro CLI vs Parallax
- Letta vs Paperclip
- Letta vs Parallax
Machine-readable
- This page as Markdown
/compare/kiro-cli-vs-letta.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/kiro-cli.json·/api/v1/tools/letta.json - From a terminal
anchor compare kiro-cli letta(the CLI) - Over MCP
compare_tools {"a": "kiro-cli", "b": "letta"}at/mcp, no key