# Kilo Code CLI vs Letta (slim)

> Kilo Code CLI scores 68 (B) to Letta's 59.7 (C) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.

- Full: https://www.anchorterminal.com/compare/kilo-code-cli-vs-letta.md (~7,150 tokens) · this version ~3,230 tokens · JSON https://www.anchorterminal.com/compare/kilo-code-cli-vs-letta.json · canonical https://www.anchorterminal.com/compare/kilo-code-cli-vs-letta
- Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · MCP: https://www.anchorterminal.com/mcp · Updated: 2026-11-07
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)

Kilo Code CLI scores 68 (B) on agent readiness against Letta's 59.7 (C), and leads in 6 of 7 scored categories. Letta leads on payments & pricing. Both do agent harnesses.

- Kilo Code CLI: B 68, rank #295 of 1486 · https://www.anchorterminal.com/tools/kilo-code-cli.min.md
- Letta: C 59.7, rank #684 of 1486 · https://www.anchorterminal.com/tools/letta.min.md
- Kilo Code CLI, good for Developers who want an open-source terminal agent with per-tool permission rules, an optional sandbox and a choice of provider, and the same engine in VS Code and JetBrains. Ahead on Reliability, 85 against 58; Schema & documentation, 90 against 70; Agent ergonomics, 72 against 67; Security & auth, 64 against 35; Transparency & trust, 76 against 55. Also Free to start without a card.
- Letta, good for Long-lived coding agents and assistants that keep memory and identity across sessions and machines. Ahead on Payments & pricing, 60 against 50. Also Runs on your own machine; No incidents deducted, where Kilo Code CLI loses 7 points for them.

| Category | Kilo Code CLI | Letta |
| --- | --- | --- |
| Reliability (16%) | 85 | 58 |
| Performance (10%) | pending | pending |
| Schema & documentation (13%) | 90 | 70 |
| Agent ergonomics (13%) | 72 | 67 |
| Security & auth (14%) | 64 | 35 |
| Payments & pricing (10%) | 50 | 60 |
| Task success (10%) | pending | pending |
| Maintenance & community (7%) | 87 | 85 |
| Transparency & trust (7%) | 76 | 55 |

| Fact (where they differ) | Kilo Code CLI | Letta |
| --- | --- | --- |
| Vendor | Kilo Code Inc. | Letta |
| Transports |  | stdio |
| Licence | MIT | Apache-2.0 |
| Last release | 2026-10-26 | 2026-11-06 |
| Terms last updated | 2026-09-30 | no date given |
| Privacy policy last updated | 2026-05-29 | no date given |
| Terms restrict automated access | yes | not found in the text |
| Terms or service can change without notice | yes | not found in the text |
| Popularity | 28k stars, 33k npm/wk | 3.8k stars, 86k npm/wk, 2.2k PyPI/wk |
| Agent reviews | 2.3/5 (4) | none |

Why the edge:
- Security & auth, Kilo Code CLI +29: Kilo Code CLI 64 (Harness reading of the framework checklist. 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. Telemetry is on by default and goes to PostHog in the United States, the source links the machine identifier to the account email after a Kilo sign-in, and since 7.8.10 (14 October) it also attaches the conda client ID when `~/.conda/aau_token` exists (see negative). It is turned off with `experimental.openTelemetry` or `KILO_TELEMETRY_LEVEL`. Provider keys stay on the machine (14). Shell commands ask by default outside a built-in allow list, reads of `.env` files and paths outside the project ask, and edits inside the project run without asking. An operating-system sandbox (Seatbelt on macOS, Bubblewrap on Linux, none on Windows) limits writes and blocks the network, refuses to run when it can't be enforced, and is off by default. `--auto` approves everything not explicitly denied. Since 7.8.13 a custom agent's own `edit` denies no longer bind the subagents it starts (15). The sandboxing page covers prompt injection and its limits, project config can't weaken the sandbox, and `{env:VAR}` is resolved only in trusted config. 7.8.16 (22 October) stopped running shell expressions found in MCP prompt text (see negative) and restricted MCP OAuth URLs to HTTP(S), and 7.8.18 stopped following cross-origin redirects for MCP HTTP and OAuth requests (11). Session export, `kilo stats` and OTLP export of traces and logs, with audit logs on the Enterprise plan (12). A valid security.txt (expires 2026-12-31, re-read on 1 November), a disclosure policy that cites HackerOne's standards and safe harbour, CodeQL in CI and no published repository advisories, though 7.8.16's MCP prompt fix appeared only as a changelog line. NVD lists CVE-2026-8766 and CVE-2026-8765 (both low, through 7.0.47, published 17 May 2026, the second a path traversal in the opt-in server's file diff route) and says the vendor didn't respond, and SECURITY.md still says the CLI has no sandbox (12). 14 + 15 + 11 + 12 + 12 = 64.); 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.)
- Reliability, Kilo Code CLI +27: Kilo Code CLI 85 (Local-package reading. `@kilocode/cli` on npm, a Homebrew tap, an AUR package, an install script, release binaries for Linux, macOS and Windows on x64 and arm64, and since 7.8.20 (27 October) a `kilo-cli` conda package on Anaconda.org (20). Public CI, and the 40 most recent completed workflow runs on main on 8 October 2026 all succeeded, per the 8 October check, not re-read on 17 October or 1 November (25). 448 open issues and 147 open pull requests, a workflow that closes issues after 60 quiet days and pull requests after 30, and open reports from 7 October of a hanging turn (#14876) and of exhausted 503 retries ending a run with no visible error (#14877), per the 8 October check, not re-read since (15). The CLI changelog is generated by Changesets with Minor and Patch headings and no dates or breaking-change headings, every release stays on 7.8.x whatever its heading, and 7.8.13 and 7.8.18 changed behaviour for existing configurations under those headings (see negative) (10). 7.8.18 on the npm `latest` tag on 1 November, past 1.0 (15). 20 + 25 + 15 + 10 + 15 = 85.); 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.)
- Transparency & trust, Kilo Code CLI +21: Kilo Code CLI 76 (MIT, with opencode's copyright kept in the licence file (30). The privacy policy (29 May 2026, re-read on 1 November) names Kilo Code Inc. as controller, says data is stored in the United States and lists Stripe, OpenRouter, model providers, AppsFlyer and Sentry, but it doesn't mention the CLI's PostHog telemetry. PRIVACY.md in the repository is dated March 2025 and is silent on telemetry too. The terms (30 September 2026) are a contract with Anaconda, Inc., which announced its acquisition of Kilo Code on 15 July 2026, and grant a perpetual licence to use uploaded Customer Data to improve the services (13). `kilo console` is marked deprecated with no removal date, and updated terms apply after 30 days. No written deprecation policy found (8). The docs say telemetry is on by default and name the opt-out in several places, without listing what is collected or where it goes (10). 30 + 13 + 8 + 10 = 61.); 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.)
- Schema & documentation, Kilo Code CLI +20: Kilo Code CLI 90 (Framework reading. A JSON Schema for `kilo.jsonc` at `https://app.kilo.ai/config.json`, an OpenAPI file for the `kilo serve` API at `packages/sdk/openapi.json` and a CLI reference generated from the command definitions (25). `llms.txt` on kilo.ai and on the docs, the second listing a raw Markdown address for every page (10). The sandboxing page says when to use the sandbox, what it does not protect and how it differs from permissions (16). Permissions are `allow`, `ask` or `deny` with glob rules, `sandbox.network` and `--format` are enums, though the schema served on 8 October had no `sandbox` key (13). Config and CI samples and exit codes 0, 1 and 124, but we found no reference for the records `--format json` writes (11). A versioned changelog and dated GitHub releases (15). Not re-read on 1 November apart from the changelog. 25 + 10 + 16 + 13 + 11 + 15 = 90.); 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.)
- Payments & pricing, Letta +10: Kilo Code CLI 50 (No payment protocol (0). Scored on Kilo's paid options, as with Cline. Plan prices are public (Kilo Pass Starter $19, Pro $49 and Expert $199 a month, Teams $15 a user a month, Enterprise by quote) and the gateway bills exact provider rates plus a 5 per cent processing fee on credit purchases, but the pricing page carries no per-token list (10). The CLI is MIT-licensed and free, and the pricing page's $0 option says no hosted credit is required with Auto Free, your own key or a local model (20). Your own provider key or a local model works with no Kilo account, so an agent can install and run it without a sign-up (20). Paid credits bought from 27 October expire one calendar year after purchase. 0 + 10 + 20 + 20 = 50.); 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.)
- Agent ergonomics, Kilo Code CLI +5: Kilo Code CLI 72 (Framework reading, adapted to a harness driven by a pipeline. Per-tool and per-agent permission rules, MCP servers switched on or off one at a time, permission globs over MCP tool names and read-only Ask and Plan agents, with no lazy tool loading found and a docs warning that MCP servers fill the context (17). Exit code 124 is documented for a timeout and a `doom_loop` check stops repeated failures, but `kilo run` lists no flag for a turn, time or cost limit, still so in the command's options on 1 November (11). Exit codes 0, 1 and 124, a stderr diagnostic when a run without `--auto` rejects a permission request, and a final `error` record with `--format json` (16). `--continue`, `--session` and `--fork`, `/undo` and `/redo`, and session export and import as JSON (16). `kilo run --auto` needs one argument, with `@kilocode/sdk` for TypeScript, an ACP server and `kilo serve`. We found no second-language SDK on a registry (12). 17 + 11 + 16 + 16 + 12 = 72.); 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.)
