{
  "data": {
    "a": {
      "slug": "kimi-code-cli",
      "name": "Kimi Code CLI",
      "vendor": "Moonshot AI",
      "vendorUrl": "https://moonshotai.github.io/kimi-code/en/",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Open-source terminal coding agent from Moonshot AI that replaced the archived Python Kimi CLI. It runs Kimi, Anthropic, OpenAI or Gemini models, headless with `kimi -p`, as an ACP server, or behind a local REST server.",
      "url": "https://www.anchorterminal.com/tools/kimi-code-cli",
      "markdownUrl": "https://www.anchorterminal.com/tools/kimi-code-cli.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/kimi-code-cli.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/kimi-code-cli.json",
      "dns": "kimi-code-cli.grade.anchorterminal.com",
      "repo": "https://github.com/MoonshotAI/kimi-code",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@moonshot-ai/kimi-code"
        }
      ],
      "auth": "mixed",
      "authNotes": "Kimi Code OAuth (RFC 8628 device code through `/login` or `kimi login`) for a Kimi Code subscription, or a Kimi Platform API key. Anthropic, OpenAI, Gemini, Vertex AI and OpenAI-compatible providers take a key in `config.toml`. Provider keys in the shell are not read unless named through `api_key_env` or the `KIMI_MODEL_*` variables. OAuth tokens are stored in `~/.kimi-code/credentials/` with 0600 permissions.",
      "pricing": "free",
      "pricingNotes": "Free and MIT-licensed, with nothing to buy for the CLI. The owner pays the model provider. Kimi Platform API keys are billed pay-as-you-go per million tokens, and the Kimi Code subscription is sold as a Kimi membership plan whose prices render only with JavaScript and weren't read on 18 October 2026.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the 2.2.0 npm package (checked 2026-10-18).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 36761,
        "pypiWeekly": null,
        "asOf": "2026-10-18"
      },
      "docsUrl": "https://moonshotai.github.io/kimi-code/en/",
      "llmsTxt": "https://moonshotai.github.io/kimi-code/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "official",
        "harness",
        "coding-agent",
        "cli",
        "open-source",
        "typescript",
        "mcp",
        "acp",
        "llms-txt",
        "telemetry-default-on",
        "no-sandbox",
        "free",
        "no-card",
        "local"
      ],
      "lastRelease": "2026-10-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.1,
        "grade": "C",
        "agentReady": false,
        "rank": 759,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 22,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 71,
          "maintenance": 72,
          "payments": 60,
          "reliability": 68,
          "schema": 85,
          "security": 45,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": -8,
        "negativeNotes": [
          "2026-09-04. Version 0.41.0 fixed print mode (`kimi -p`) ignoring `KIMI_DISABLE_TELEMETRY`, so scripted runs sent telemetry after the user opted out. Fixed and stated in the changelog, -2. https://moonshotai.github.io/kimi-code/en/release-notes/changelog",
          "2026-09-23. Version 2.1.0 fixed file tools reaching outside the working directory through symlinks, repository git configuration running commands during background git operations, and project config applied before the workspace was trusted. Released fixes of the CLI's own described flaws with no advisory (none in OSV on 2 November 2026), -3, the value spree-commerce and terraform-mcp take for the same pattern (-2 on 18 October). https://moonshotai.github.io/kimi-code/en/release-notes/changelog",
          "2026-10-14 to 2026-10-25. Breaking changes in 2.x releases with no notice found and no breaking-change label. 2.2.0 (a minor) made configs with `executor = \"kaos\"` fail validation, 2.3.0 (a minor, 21 October) stopped plugin skills answering to their bare names, and 2.3.2 (a patch, 25 October) made swarms unavailable in `kimi -p` and ACP clients. No canary carried them ahead. One folded -3. https://moonshotai.github.io/kimi-code/en/release-notes/changelog"
        ],
        "verdict": "MIT-licensed, with 30 releases from 4 August to 30 October 2026, `kimi -p` with stream-json output, an ACP server and a local REST API. Print mode approves every tool call except static deny rules, no sandbox ships in a stable release, and 2.x minor releases changed behaviour without notice.",
        "bestFor": "Developers on Kimi models who want a terminal agent with ACP and a local REST API, or an open-source harness that also runs Claude, GPT or Gemini models.",
        "strengths": [
          "MIT-licensed, with a single-binary installer, npm and Homebrew core packages at 2.4.1",
          "`kimi -p` with `stream-json` output, plus `kimi acp` covering the full ACP core and session surface",
          "`kimi web` serves a REST and WebSocket API with live OpenAPI and AsyncAPI documents behind a bearer token",
          "30 stable releases from 4 August to 30 October 2026, with a dated changelog in the docs",
          "Anthropic, OpenAI, Gemini, Vertex AI and OpenAI-compatible providers alongside Kimi"
        ],
        "weaknesses": [
          "Print mode approves every tool call under Never Ask, where the dangerous-command guard is off",
          "No sandbox or network control in the stable release",
          "Breaking changes in 2.3.0 and 2.3.2 shipped as a minor and a patch with no notice or breaking-change label",
          "Telemetry is on by default, the docs don't say what it sends, and print mode ignored the opt-out before 0.41.0",
          "No privacy page for the CLI, and the Kimi terms use content for training unless the user opts out by email"
        ],
        "agentNotes": [
          "`kimi -p` approves every tool call. Add `[[permission.rules]]` deny entries and run it in a container, since no sandbox ships",
          "Set `KIMI_LOOP_MAX_STEPS_PER_TURN` for unattended runs. Steps per turn are unlimited by default",
          "Pass the model with `KIMI_MODEL_NAME`, `KIMI_MODEL_API_KEY` and `KIMI_MODEL_PROVIDER_TYPE`. `OPENAI_API_KEY` or `ANTHROPIC_API_KEY` in the shell is ignored otherwise",
          "Pin the CLI version in pipelines and read the changelog before upgrading. Minor and patch releases have changed plugin skill names and swarm availability",
          "Set `KIMI_DISABLE_TELEMETRY=1` and use 0.41.0 or later, since earlier print-mode runs ignored it"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.1
          }
        ],
        "editorialScores": {
          "ergonomics": 71,
          "maintenance": 72,
          "payments": 60,
          "reliability": 68,
          "schema": 85,
          "security": 45,
          "transparency": 64
        },
        "provenanceScore": 59,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash   # or: npm install -g @moonshot-ai/kimi-code, or: brew install kimi-code",
        "headless": {
          "command": "kimi -p \"$TASK\" --output-format stream-json",
          "env": {
            "KIMI_DISABLE_TELEMETRY": "1",
            "KIMI_LOOP_MAX_STEPS_PER_TURN": "50",
            "KIMI_MODEL_API_KEY": "\u003ckey\u003e",
            "KIMI_MODEL_NAME": "\u003cmodel\u003e",
            "KIMI_MODEL_PROVIDER_TYPE": "kimi"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/kimi-code-cli"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Moonshot AI (the global Kimi terms name NOVASCENT PRIVATE LIMITED, Singapore)",
        "domain": "moonshotai.github.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "https://www.kimi.ai/user/agreement/modelUse?version=v2",
        "privacy": "https://www.kimi.ai/user/agreement/userPrivacy?version=v2",
        "statusPage": "",
        "changelog": "https://moonshotai.github.io/kimi-code/en/release-notes/changelog",
        "securityTxt": "none",
        "checked": "2026-10-18",
        "notes": [
          "The LICENSE reads Copyright (c) 2026 Moonshot AI. The Kimi terms (effective 13 August 2026) and privacy policy (last updated 13 August 2026), linked from the Kimi Code page on kimi.ai, name NOVASCENT PRIVATE LIMITED, a company registered in Singapore, as the provider. Neither names the CLI.",
          "The docs are on GitHub Pages and carry no terms or privacy page of their own. The Kimi Platform has separate terms and a privacy policy for API keys at platform.kimi.ai/docs/agreement.",
          "kimi.com, kimi.ai and moonshot.ai each answered /.well-known/security.txt with an HTML page, so no security.txt was found. SECURITY.md names private GitHub advisories and code@moonshot.ai."
        ],
        "score": 59
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/kimi-code-cli.json",
      "live": {
        "slug": "kimi-code-cli",
        "versions": [
          {
            "registry": "github",
            "name": "MoonshotAI/kimi-code",
            "version": "@moonshot-ai/kimi-code@2.5.2",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:37:00.257935182Z"
          },
          {
            "registry": "npm",
            "name": "@moonshot-ai/kimi-code",
            "version": "2.5.2",
            "seenAt": "2026-11-06T23:37:00.038854487Z"
          }
        ],
        "githubStars": 8155,
        "npmWeekly": 72577,
        "securityTxt": {
          "url": "https://moonshotai.github.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:02:03.268020017Z"
        },
        "llmsTxt": {
          "url": "https://moonshotai.github.io/kimi-code/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:49.016974755Z"
        },
        "domain": {
          "domain": "github.io",
          "checkedAt": "2026-11-01T14:18:40.30630652Z"
        },
        "pages": [
          {
            "url": "https://moonshotai.github.io/kimi-code/en/release-notes/changelog",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-11-07T14:14:36.878437649Z",
            "changedAt": "2026-11-06T13:36:30.010468862Z",
            "fingerprint": "d0943276e0d3"
          },
          {
            "url": "https://www.kimi.ai/user/agreement/userPrivacy?version=v2",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:30:35.616776315Z",
            "changedAt": "2026-11-06T13:51:13.054475113Z",
            "fingerprint": "3bea1f2562b9"
          },
          {
            "url": "https://www.kimi.ai/user/agreement/modelUse?version=v2",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:30:31.086198927Z",
            "changedAt": "2026-11-06T13:51:09.702572286Z",
            "fingerprint": "fcea5ef5657f"
          }
        ],
        "github": {
          "repo": "moonshotai/kimi-code",
          "checkedAt": "2026-11-02T09:08:39.421062969Z",
          "stars": 8104,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-02T09:08:09Z",
          "openIssues": 1216,
          "openPRs": 517,
          "issuesOpened90d": 804,
          "issuesClosed90d": 141,
          "prsMerged90d": 789,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 42,
            "failure": 6,
            "other": 2,
            "latest": "success",
            "latestAt": "2026-11-02T08:06:16Z"
          },
          "replies": {
            "sampled": 18,
            "unanswered": 15,
            "medianDays": 0.5
          }
        },
        "updatedAt": "2026-11-07T16:02:03.268020017Z"
      }
    },
    "answer": "Letta scores 59.7 (C) on agent readiness against Kimi Code CLI's 58.1 (C), and leads in 1 of 7 scored categories. Kimi Code CLI leads on reliability, schema \u0026 documentation, security \u0026 auth and transparency \u0026 trust.",
    "b": {
      "slug": "letta",
      "name": "Letta",
      "vendor": "Letta",
      "vendorUrl": "https://www.letta.com",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "Letta, from the MemGPT team, is an open-source agent harness (formerly Letta Code) for stateful agents that keep memory blocks, skills and conversations across sessions, used from a CLI, chat.letta.com, messaging channels or the Agent SDK, with Letta Cloud.",
      "url": "https://www.anchorterminal.com/tools/letta",
      "markdownUrl": "https://www.anchorterminal.com/tools/letta.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/letta.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/letta.json",
      "dns": "letta.grade.anchorterminal.com",
      "repo": "https://github.com/letta-ai/letta-code",
      "license": "Apache-2.0",
      "transports": [
        "stdio"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@letta-ai/letta-code"
        },
        {
          "registry": "pypi",
          "name": "letta"
        }
      ],
      "auth": "mixed",
      "authNotes": "Local use needs only the user's own model keys or coding-plan logins through `/connect`. Signing in with Letta (`/login`, OAuth in the browser) stores agents in Letta Cloud and enables remote computers and secrets. Developer plans use Letta API keys.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at $0 with bring-your-own keys and limited agents and storage. Pro $20 a month with Letta Auto quotas and up to 20 agents. API plan $20 a month plus $0.10 per active agent a month and $0.00015 a second of tool execution, with LLM usage at token cost.",
      "priceSummary": "$20 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the letta-code source, docs.letta.com's llms.txt or the pricing page (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 3793,
        "npmWeekly": 85863,
        "pypiWeekly": 2225,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.letta.com",
      "llmsTxt": "https://docs.letta.com/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent",
        "memory.store",
        "memory.search"
      ],
      "tags": [
        "open-source",
        "local",
        "hosted",
        "freemium",
        "apache-2.0",
        "typescript",
        "cli",
        "headless",
        "telemetry",
        "llms-txt",
        "memory"
      ],
      "lastRelease": "2026-11-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.7,
        "grade": "C",
        "agentReady": false,
        "rank": 684,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 18,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 85,
          "payments": 60,
          "reliability": 58,
          "schema": 70,
          "security": 35,
          "transparency": 55
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "Long-lived coding agents and assistants that keep memory and identity across sessions and machines.",
        "strengths": [
          "Apache-2.0 harness on npm and PyPI with 0.34.42 released on 6 November 2026, and releases most days",
          "Memory blocks and MemFS keep an agent's context in git, with optional sync to the user's own repository",
          "Headless runs with `-p` and `--output-format json`, plus a TypeScript Agent SDK and a self-hosted App Server",
          "Public prices, a $0 plan with bring-your-own keys, and an API plan at $20 a month plus $0.10 per active agent",
          "Runs locally without signing in, with `letta backend local` or `--backend local`"
        ],
        "weaknesses": [
          "The default permission mode is `unrestricted`, the renamed `bypassPermissions`, so tool calls aren't confirmed unless the user picks another mode",
          "Letta Cloud is the default backend, so agent memory and conversations go to Letta's servers unless the user chooses local",
          "Usage telemetry is on by default, with the LETTA_CODE_TELEM=0 opt-out found only in the source",
          "The Letta V1 Python API server is retired and unsupported, and the letta-ai/letta repository is now a landing page",
          "The privacy policy names no legal entity or date and says hosted message data may train future models"
        ],
        "agentNotes": [
          "Start headless runs with an explicit permission mode such as `standard` or `strict`; the default auto-approves tools",
          "Pass `--backend local` for 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 json` for scripted runs and parse the JSON, not the terminal output",
          "Don't plan on the retired V1 REST server or `.af` AgentFile import; both are gone"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.7
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 85,
          "payments": 60,
          "reliability": 58,
          "schema": 70,
          "security": 35,
          "transparency": 55
        },
        "provenanceScore": 54,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install -g @letta-ai/letta-code",
        "headless": {
          "local": "letta --backend local",
          "run": "letta -p --output-format json \"\u003ctask\u003e\"",
          "server": "letta server"
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/letta"
      },
      "alsoIn": [
        "agent-memory"
      ],
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 20,
          "note": "Letta Auto quotas, up to 20 agents"
        },
        {
          "item": "API plan active agent",
          "unit": "month",
          "usd": 0.1,
          "note": "Plus $20 a month base and $0.00015 a second of tool execution"
        }
      ],
      "provenance": {
        "legalEntity": "",
        "domain": "letta.com",
        "domainRegistered": "1997-10-01",
        "endpointOnVendorDomain": null,
        "terms": "https://www.letta.com/terms-of-service",
        "privacy": "https://www.letta.com/privacy-policy",
        "statusPage": "",
        "changelog": "https://github.com/letta-ai/letta-code/releases",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The privacy policy shows no last-updated date and names no legal entity, only Letta. It says hosted message data may be used to train new models and that basic telemetry can be turned off in settings when supported.",
          "www.letta.com and docs.letta.com robots.txt allow all crawlers.",
          "RDAP gives letta.com a registration date of 1 October 1997, which predates the company, so the domain was bought later.",
          "/.well-known/security.txt returns 404. SECURITY.md in letta-ai/letta asks for reports to support@letta.com.",
          "The terms URL is the conventional path and was not read; the policy reader checks it at landing."
        ],
        "score": 54
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/letta.json",
      "live": {
        "slug": "letta",
        "versions": [
          {
            "registry": "github",
            "name": "letta-ai/letta-code",
            "version": "v0.34.43",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:39:39.434291816Z"
          },
          {
            "registry": "npm",
            "name": "@letta-ai/letta-code",
            "version": "0.34.43",
            "seenAt": "2026-11-06T23:39:38.413416142Z"
          },
          {
            "registry": "pypi",
            "name": "letta",
            "version": "0.34.12",
            "released": "2026-10-12",
            "seenAt": "2026-11-06T23:39:39.241816797Z"
          }
        ],
        "githubStars": 3794,
        "npmWeekly": 85863,
        "pypiWeekly": 2225,
        "securityTxt": {
          "url": "https://letta.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:02.768002207Z"
        },
        "llmsTxt": {
          "url": "https://docs.letta.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:52.28674296Z"
        },
        "pages": [
          {
            "url": "https://www.letta.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:30:46.549817082Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "947a68f3e3a0"
          },
          {
            "url": "https://www.letta.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:30:48.740250784Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "63f31d6ebfb8"
          }
        ],
        "updatedAt": "2026-11-07T16:01:02.768002207Z"
      }
    },
    "edges": [
      {
        "by": 15,
        "category": "schema",
        "leads": "kimi-code-cli",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Framework reading. The `kimi web` server serves `/openapi.json` and `/asyncapi.json`, generated from its runtime validation schemas, but only from a running server behind auth, and the API is marked experimental. The ACP server's methods and capabilities are tabled (20). llms.txt indexes every page and each page is served as Markdown (10). The permission-mode, goal-mode and MCP pages say when to use each mode and what to avoid (16). The config reference gives type and default for each key, with enums for permission modes, output formats and rule decisions (13). Many examples, the server's error-code bands and ACP error codes are documented, but print-mode exit codes are documented only for goal runs (11). A dated changelog in the docs plus the technical changelog in the repository (15). Unchanged on 2 November; llms.txt now indexes 60 pages in two languages.",
          "b": "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."
        },
        "scores": {
          "a": 85,
          "b": 70
        }
      },
      {
        "by": 13,
        "category": "maintenance",
        "leads": "letta",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "2.4.1 on 30 October 2026 (30). 30 stable tags from 0.32.0 on 4 August to 2.4.1 on 30 October, plus canary builds since 29 October (20). The 18 October counts from shields.io badges are struck. The clone shows the pace directly, 95 commits from 13 authors between 18 October and 2 November and pull requests numbered past #4600, with the changelog crediting outside contributors in each release. Issue reply times couldn't be read (11). No published SDK. A TypeScript SDK sits in the repository (`@moonshot-ai/kimi-code-sdk` 0.22.0) marked private, the ACP server and REST API ship inside the CLI, and Homebrew core is current at 2.4.1 (5). CI with a frozen lockfile, lint and a dependency check (sherif), canary and release workflows, no Dependabot or Renovate file, and the pass state unchecked (6). 30 + 20 + 11 + 5 + 6 = 72.",
          "b": "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."
        },
        "scores": {
          "a": 72,
          "b": 85
        }
      },
      {
        "by": 10,
        "category": "reliability",
        "leads": "kimi-code-cli",
        "name": "Reliability",
        "reasons": {
          "a": "Local-package reading. An install script that verifies a checksum, npm `@moonshot-ai/kimi-code` with Node 22.19.0 or newer stated, and Homebrew core at 2.4.1, for macOS, Linux and Windows (20). A public CI workflow runs the build, a smoke test, sharded tests on Linux, tests on Windows, lint and typecheck. GitHub's pages answer 403 in this session, so whether it passes on main wasn't checked (15). The 18 October issue and pull-request counts came from shields.io badges, a third-party copy of GitHub data this run bars, so they are struck. The clone shows 95 commits from 13 authors since 18 October and a changelog that credits merged pull requests up to #4553 in 2.4.1, but which open issues are crashes or regressions, and how fast they're answered, couldn't be read (8). Changesets changelog with Major, Minor and Patch headings and no breaking-change label since 0.28.0. 2.2.0 made `executor = \"kaos\"` configs fail validation, 2.3.0 stopped bare-name plugin skill calls and 2.3.2, a patch, removed swarms from `kimi -p` and ACP (10). 2.4.1, past 1.0 (15). 20 + 15 + 8 + 10 + 15 = 68.",
          "b": "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."
        },
        "scores": {
          "a": 68,
          "b": 58
        }
      },
      {
        "by": 10,
        "category": "security",
        "leads": "kimi-code-cli",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Harness reading of the framework checklist. 30 for credentials and 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. OAuth tokens sit in 0600 files and shell keys aren't read unless named. Telemetry is on by default and, in the 2.2.0 package read on 18 October, sends events with a device ID, session ID and model name to telemetry-logs.kimi.com. Auto-update is on by default (14). Interactive sessions ask before edits and commands, and a dangerous-command guard covers `rm -rf` and similar, but `kimi -p` runs under Never Ask, where everything is approved and the guard is off, with only static deny rules left. No sandbox found, and hooks fail open (7). The MCP page warns about untrusted servers and project `.kimi-code/mcp.json` entries, and since 2.1.0 project config waits for workspace trust, but no prompt-injection guidance was found for fetched web pages (6). Sessions on disk, `kimi export`, the `kimi vis` session visualiser, a diagnostic log and hooks for auditing (11). SECURITY.md names private GitHub advisories and an email, supports only the latest version and gives no response time. No security.txt was found on kimi.com, kimi.ai or moonshot.ai, and OSV, read again on 2 November 2026, lists no advisories for the package, though 2.1.0 shipped security fixes (7).",
          "b": "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."
        },
        "scores": {
          "a": 45,
          "b": 35
        }
      },
      {
        "by": 7,
        "category": "transparency",
        "leads": "kimi-code-cli",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "MIT (30). The docs have no privacy page for the CLI. The Kimi terms (effective 13 August 2026, NOVASCENT PRIVATE LIMITED, Singapore) let Moonshot use content to train its services unless the user opts out by email, prospectively only, and the Kimi privacy policy says content is used for training. The Kimi Platform privacy policy keeps inputs while the account is active. Neither says which applies to CLI sessions (12). The `kimi server` tree prints a deprecation notice until the next major version, a table names each deprecated config key and the version that replaced it, and the Python Kimi CLI was archived with a migration guide, though its notice gives no date for when old installations stop working (13). Telemetry is documented as on, with a config key and an environment variable to turn it off, but what it collects isn't listed, and print mode ignored the opt-out until 0.41.0 (9).",
          "b": "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."
        },
        "scores": {
          "a": 62,
          "b": 55
        }
      }
    ],
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "Moonshot AI",
        "b": "Letta",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-30",
        "b": "2026-11-06",
        "name": "Last release"
      },
      {
        "a": "2026-08-13",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-13",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "37k npm/wk",
        "b": "3.8k stars, 86k npm/wk, 2.2k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "3/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Letta scores 59.7 (C) on agent readiness against Kimi Code CLI's 58.1 (C), and leads in 1 of 7 scored categories. Kimi Code CLI leads on reliability, schema \u0026 documentation, security \u0026 auth and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Kimi Code CLI or Letta?"
      },
      {
        "answer": "Yes. Kimi Code CLI is open source (MIT). Letta is open source (Apache-2.0).",
        "question": "Are Kimi Code CLI and Letta open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 68 against 58",
          "Schema \u0026 documentation, 85 against 70",
          "Security \u0026 auth, 45 against 35",
          "Transparency \u0026 trust, 62 against 55"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Developers on Kimi models who want a terminal agent with ACP and a local REST API, or an open-source harness that also runs Claude, GPT or Gemini models.",
        "slug": "kimi-code-cli",
        "watchFor": "Print mode approves every tool call under Never Ask, where the dangerous-command guard is off"
      },
      {
        "aheadOn": [
          "Maintenance \u0026 community, 85 against 72"
        ],
        "also": [
          "Runs on your own machine",
          "No incidents deducted, where Kimi Code CLI loses 8 points for them"
        ],
        "goodFor": "Long-lived coding agents and assistants that keep memory and identity across sessions and machines.",
        "slug": "letta",
        "watchFor": "The default permission mode is `unrestricted`, the renamed `bypassPermissions`, so tool calls aren't confirmed unless the user picks another mode"
      }
    ],
    "history": {
      "kimi-code-cli": [
        {
          "causes": [
            "event"
          ],
          "date": "2026-11-02",
          "delta": -4,
          "from": 62.1,
          "fromGrade": "B",
          "to": 58.1,
          "toGrade": "C"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-30",
          "delta": 0,
          "from": 62.1,
          "fromGrade": "B",
          "to": 62.1,
          "toGrade": "B"
        },
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-10-27",
          "delta": 0,
          "from": 62.1,
          "fromGrade": "B",
          "to": 62.1,
          "toGrade": "B"
        }
      ],
      "letta": null
    },
    "job": {
      "capability": "agent.harness",
      "name": "Agent harnesses"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-kimi-code-cli.json",
        "title": "Agent Zero vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-letta.json",
        "title": "Agent Zero vs Letta",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-kimi-code-cli.json",
        "title": "Aider vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/aider-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-letta.json",
        "title": "Aider vs Letta",
        "url": "https://www.anchorterminal.com/compare/aider-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-kimi-code-cli.json",
        "title": "Amp vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/amp-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-letta.json",
        "title": "Amp vs Letta",
        "url": "https://www.anchorterminal.com/compare/amp-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-kimi-code-cli.json",
        "title": "Antigravity CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-letta.json",
        "title": "Antigravity CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-kimi-code-cli.json",
        "title": "Auggie CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-letta.json",
        "title": "Auggie CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/axlr-vs-kimi-code-cli.json",
        "title": "AXLR vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/axlr-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/axlr-vs-letta.json",
        "title": "AXLR vs Letta",
        "url": "https://www.anchorterminal.com/compare/axlr-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-kimi-code-cli.json",
        "title": "Claude Code vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-letta.json",
        "title": "Claude Code vs Letta",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-kimi-code-cli.json",
        "title": "Cline vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/cline-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-letta.json",
        "title": "Cline vs Letta",
        "url": "https://www.anchorterminal.com/compare/cline-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/conductor-vs-kimi-code-cli.json",
        "title": "Conductor vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/conductor-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/conductor-vs-letta.json",
        "title": "Conductor vs Letta",
        "url": "https://www.anchorterminal.com/compare/conductor-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-kimi-code-cli.json",
        "title": "Crush vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/crush-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-letta.json",
        "title": "Crush vs Letta",
        "url": "https://www.anchorterminal.com/compare/crush-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-kimi-code-cli.json",
        "title": "Cursor CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-letta.json",
        "title": "Cursor CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-kimi-code-cli.json",
        "title": "DeepSeek Harness (dsh) vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-letta.json",
        "title": "DeepSeek Harness (dsh) vs Letta",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-kimi-code-cli.json",
        "title": "dsh-superagent (DeepSeek) vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-letta.json",
        "title": "dsh-superagent (DeepSeek) vs Letta",
        "url": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/devin-vs-kimi-code-cli.json",
        "title": "Devin vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/devin-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/devin-vs-letta.json",
        "title": "Devin vs Letta",
        "url": "https://www.anchorterminal.com/compare/devin-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-kimi-code-cli.json",
        "title": "Droid CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-letta.json",
        "title": "Droid CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.json",
        "title": "Pi vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-letta.json",
        "title": "Pi vs Letta",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emdash-vs-kimi-code-cli.json",
        "title": "Emdash vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/emdash-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emdash-vs-letta.json",
        "title": "Emdash vs Letta",
        "url": "https://www.anchorterminal.com/compare/emdash-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-kimi-code-cli.json",
        "title": "Gemini CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-letta.json",
        "title": "Gemini CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-kimi-code-cli.json",
        "title": "GitHub Copilot CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-letta.json",
        "title": "GitHub Copilot CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-kimi-code-cli.json",
        "title": "goose vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/goose-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-letta.json",
        "title": "goose vs Letta",
        "url": "https://www.anchorterminal.com/compare/goose-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-kimi-code-cli.json",
        "title": "Harness² vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-letta.json",
        "title": "Harness² vs Letta",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-kimi-code-cli.json",
        "title": "HarnessRouter vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-letta.json",
        "title": "HarnessRouter vs Letta",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-kimi-code-cli.json",
        "title": "Jules vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/jules-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-letta.json",
        "title": "Jules vs Letta",
        "url": "https://www.anchorterminal.com/compare/jules-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-kimi-code-cli.json",
        "title": "Junie CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/junie-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-letta.json",
        "title": "Junie CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/junie-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-kimi-code-cli.json",
        "title": "Kilo Code CLI vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-letta.json",
        "title": "Kilo Code CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-kiro-cli.json",
        "title": "Kimi Code CLI vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-mini-swe-agent.json",
        "title": "Kimi Code CLI vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-minimax-code.json",
        "title": "Kimi Code CLI vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-mistral-vibe-cli.json",
        "title": "Kimi Code CLI vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-muse-code.json",
        "title": "Kimi Code CLI vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-agents-api.json",
        "title": "Kimi Code CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-codex.json",
        "title": "Kimi Code CLI vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-opencode.json",
        "title": "Kimi Code CLI vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openhands.json",
        "title": "Kimi Code CLI vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openmausbot.json",
        "title": "Kimi Code CLI vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-orca.json",
        "title": "Kimi Code CLI vs Orca",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-orca"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-paseo.json",
        "title": "Kimi Code CLI vs Paseo",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-paseo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-prime-agent.json",
        "title": "Kimi Code CLI vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-qoder-cli.json",
        "title": "Kimi Code CLI vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-qwen-code.json",
        "title": "Kimi Code CLI vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-reflection-mirror.json",
        "title": "Kimi Code CLI vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-rovo-dev-cli.json",
        "title": "Kimi Code CLI vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-sculptor.json",
        "title": "Kimi Code CLI vs Sculptor",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-sculptor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-t3-code.json",
        "title": "Kimi Code CLI vs T3 Code",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-t3-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-traycer.json",
        "title": "Kimi Code CLI vs Traycer",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-traycer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-unstoppable.json",
        "title": "Kimi Code CLI vs Unstoppable",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-unstoppable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-verdent.json",
        "title": "Kimi Code CLI vs Verdent",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-verdent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-vibe-trading.json",
        "title": "Kimi Code CLI vs Vibe-Trading",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-vibe-trading"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-warp.json",
        "title": "Kimi Code CLI vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiro-cli-vs-letta.json",
        "title": "Kiro CLI vs Letta",
        "url": "https://www.anchorterminal.com/compare/kiro-cli-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-mini-swe-agent.json",
        "title": "Letta vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/letta-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-minimax-code.json",
        "title": "Letta vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/letta-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-mistral-vibe-cli.json",
        "title": "Letta vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/letta-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-muse-code.json",
        "title": "Letta vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/letta-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-openai-agents-api.json",
        "title": "Letta vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/letta-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-openai-codex.json",
        "title": "Letta vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/letta-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-opencode.json",
        "title": "Letta vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/letta-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-openhands.json",
        "title": "Letta vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/letta-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-openmausbot.json",
        "title": "Letta vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/letta-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-orca.json",
        "title": "Letta vs Orca",
        "url": "https://www.anchorterminal.com/compare/letta-vs-orca"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-paseo.json",
        "title": "Letta vs Paseo",
        "url": "https://www.anchorterminal.com/compare/letta-vs-paseo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-prime-agent.json",
        "title": "Letta vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/letta-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-qoder-cli.json",
        "title": "Letta vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/letta-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-qwen-code.json",
        "title": "Letta vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/letta-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-reflection-mirror.json",
        "title": "Letta vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/letta-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-rovo-dev-cli.json",
        "title": "Letta vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/letta-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-sculptor.json",
        "title": "Letta vs Sculptor",
        "url": "https://www.anchorterminal.com/compare/letta-vs-sculptor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-t3-code.json",
        "title": "Letta vs T3 Code",
        "url": "https://www.anchorterminal.com/compare/letta-vs-t3-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-traycer.json",
        "title": "Letta vs Traycer",
        "url": "https://www.anchorterminal.com/compare/letta-vs-traycer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-unstoppable.json",
        "title": "Letta vs Unstoppable",
        "url": "https://www.anchorterminal.com/compare/letta-vs-unstoppable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-verdent.json",
        "title": "Letta vs Verdent",
        "url": "https://www.anchorterminal.com/compare/letta-vs-verdent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-vibe-trading.json",
        "title": "Letta vs Vibe-Trading",
        "url": "https://www.anchorterminal.com/compare/letta-vs-vibe-trading"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-warp.json",
        "title": "Letta vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/letta-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clawboo-vs-kimi-code-cli.json",
        "title": "Clawboo vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/clawboo-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clawboo-vs-letta.json",
        "title": "Clawboo vs Letta",
        "url": "https://www.anchorterminal.com/compare/clawboo-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-kimi-code-cli.json",
        "title": "CLI Manager vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-letta.json",
        "title": "CLI Manager vs Letta",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-autonomous-vs-kimi-code-cli.json",
        "title": "Harness vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/harness-autonomous-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness-autonomous-vs-letta.json",
        "title": "Harness vs Letta",
        "url": "https://www.anchorterminal.com/compare/harness-autonomous-vs-letta"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-paperclip.json",
        "title": "Kimi Code CLI vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-parallax-agents.json",
        "title": "Kimi Code CLI vs Parallax",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-parallax-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-paperclip.json",
        "title": "Letta vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/letta-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/letta-vs-parallax-agents.json",
        "title": "Letta vs Parallax",
        "url": "https://www.anchorterminal.com/compare/letta-vs-parallax-agents"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 10,
        "edge": "kimi-code-cli",
        "key": "reliability",
        "kimi-code-cli": 68,
        "letta": 58,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "edge": "kimi-code-cli",
        "key": "schema",
        "kimi-code-cli": 85,
        "letta": 70,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 4,
        "edge": "kimi-code-cli",
        "key": "ergonomics",
        "kimi-code-cli": 71,
        "letta": 67,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 10,
        "edge": "kimi-code-cli",
        "key": "security",
        "kimi-code-cli": 45,
        "letta": 35,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "kimi-code-cli": 60,
        "letta": 60,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 13,
        "edge": "letta",
        "key": "maintenance",
        "kimi-code-cli": 72,
        "letta": 85,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 7,
        "edge": "kimi-code-cli",
        "key": "transparency",
        "kimi-code-cli": 62,
        "letta": 55,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Letta scores 59.7 (C) on agent readiness against Kimi Code CLI's 58.1 (C), and leads in 1 of 7 scored categories. Kimi Code CLI leads on reliability, schema \u0026 documentation, security \u0026 auth and transparency \u0026 trust. Both do agent harnesses.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "kimi-code-cli": "MIT-licensed, with 30 releases from 4 August to 30 October 2026, `kimi -p` with stream-json output, an ACP server and a local REST API. Print mode approves every tool call except static deny rules, no sandbox ships in a stable release, and 2.x minor releases changed behaviour without notice.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-letta",
    "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-letta.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-letta.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-letta.min.md"
  },
  "markdown": "Letta scores 59.7 (C) on agent readiness against Kimi Code CLI's 58.1 (C), and leads in 1 of 7 scored categories. Kimi Code CLI leads on reliability, schema \u0026 documentation, security \u0026 auth and transparency \u0026 trust. Both do agent harnesses.\n\n- Kimi Code CLI: grade C, 58.1/100, rank #759 of 1486. Markdown https://www.anchorterminal.com/tools/kimi-code-cli.md · JSON https://www.anchorterminal.com/api/v1/tools/kimi-code-cli.json\n- Letta: grade C, 59.7/100, rank #684 of 1486. Markdown https://www.anchorterminal.com/tools/letta.md · JSON https://www.anchorterminal.com/api/v1/tools/letta.json\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 1500 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md\n- Best memory layers for AI agents: https://www.anchorterminal.com/best/agent-memory/index.md\n- All 353 memory comparisons: https://www.anchorterminal.com/compare/agent-memory/index.md\n\n## Which one, for what\n\n### Kimi Code CLI (C)\n\nGood for: Developers on Kimi models who want a terminal agent with ACP and a local REST API, or an open-source harness that also runs Claude, GPT or Gemini models.\n\nAhead on:\n- Reliability, 68 against 58\n- Schema \u0026 documentation, 85 against 70\n- Security \u0026 auth, 45 against 35\n- Transparency \u0026 trust, 62 against 55\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: Print mode approves every tool call under Never Ask, where the dangerous-command guard is off\n\n### Letta (C)\n\nGood for: Long-lived coding agents and assistants that keep memory and identity across sessions and machines.\n\nAhead on:\n- Maintenance \u0026 community, 85 against 72\n\nAlso in its favour:\n- Runs on your own machine\n- No incidents deducted, where Kimi Code CLI loses 8 points for them\n\nWatch for: The default permission mode is `unrestricted`, the renamed `bypassPermissions`, so tool calls aren't confirmed unless the user picks another mode\n\n\n## Why the edge\n\n### Schema \u0026 documentation: Kimi Code CLI +15\n\n- Kimi Code CLI (85): Framework reading. The `kimi web` server serves `/openapi.json` and `/asyncapi.json`, generated from its runtime validation schemas, but only from a running server behind auth, and the API is marked experimental. The ACP server's methods and capabilities are tabled (20). llms.txt indexes every page and each page is served as Markdown (10). The permission-mode, goal-mode and MCP pages say when to use each mode and what to avoid (16). The config reference gives type and default for each key, with enums for permission modes, output formats and rule decisions (13). Many examples, the server's error-code bands and ACP error codes are documented, but print-mode exit codes are documented only for goal runs (11). A dated changelog in the docs plus the technical changelog in the repository (15). Unchanged on 2 November; llms.txt now indexes 60 pages in two languages.\n- 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.\n\n### Maintenance \u0026 community: Letta +13\n\n- Kimi Code CLI (72): 2.4.1 on 30 October 2026 (30). 30 stable tags from 0.32.0 on 4 August to 2.4.1 on 30 October, plus canary builds since 29 October (20). The 18 October counts from shields.io badges are struck. The clone shows the pace directly, 95 commits from 13 authors between 18 October and 2 November and pull requests numbered past #4600, with the changelog crediting outside contributors in each release. Issue reply times couldn't be read (11). No published SDK. A TypeScript SDK sits in the repository (`@moonshot-ai/kimi-code-sdk` 0.22.0) marked private, the ACP server and REST API ship inside the CLI, and Homebrew core is current at 2.4.1 (5). CI with a frozen lockfile, lint and a dependency check (sherif), canary and release workflows, no Dependabot or Renovate file, and the pass state unchecked (6). 30 + 20 + 11 + 5 + 6 = 72.\n- 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.\n\n### Reliability: Kimi Code CLI +10\n\n- Kimi Code CLI (68): Local-package reading. An install script that verifies a checksum, npm `@moonshot-ai/kimi-code` with Node 22.19.0 or newer stated, and Homebrew core at 2.4.1, for macOS, Linux and Windows (20). A public CI workflow runs the build, a smoke test, sharded tests on Linux, tests on Windows, lint and typecheck. GitHub's pages answer 403 in this session, so whether it passes on main wasn't checked (15). The 18 October issue and pull-request counts came from shields.io badges, a third-party copy of GitHub data this run bars, so they are struck. The clone shows 95 commits from 13 authors since 18 October and a changelog that credits merged pull requests up to #4553 in 2.4.1, but which open issues are crashes or regressions, and how fast they're answered, couldn't be read (8). Changesets changelog with Major, Minor and Patch headings and no breaking-change label since 0.28.0. 2.2.0 made `executor = \"kaos\"` configs fail validation, 2.3.0 stopped bare-name plugin skill calls and 2.3.2, a patch, removed swarms from `kimi -p` and ACP (10). 2.4.1, past 1.0 (15). 20 + 15 + 8 + 10 + 15 = 68.\n- 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.\n\n### Security \u0026 auth: Kimi Code CLI +10\n\n- Kimi Code CLI (45): Harness reading of the framework checklist. 30 for credentials and 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. OAuth tokens sit in 0600 files and shell keys aren't read unless named. Telemetry is on by default and, in the 2.2.0 package read on 18 October, sends events with a device ID, session ID and model name to telemetry-logs.kimi.com. Auto-update is on by default (14). Interactive sessions ask before edits and commands, and a dangerous-command guard covers `rm -rf` and similar, but `kimi -p` runs under Never Ask, where everything is approved and the guard is off, with only static deny rules left. No sandbox found, and hooks fail open (7). The MCP page warns about untrusted servers and project `.kimi-code/mcp.json` entries, and since 2.1.0 project config waits for workspace trust, but no prompt-injection guidance was found for fetched web pages (6). Sessions on disk, `kimi export`, the `kimi vis` session visualiser, a diagnostic log and hooks for auditing (11). SECURITY.md names private GitHub advisories and an email, supports only the latest version and gives no response time. No security.txt was found on kimi.com, kimi.ai or moonshot.ai, and OSV, read again on 2 November 2026, lists no advisories for the package, though 2.1.0 shipped security fixes (7).\n- 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.\n\n### Transparency \u0026 trust: Kimi Code CLI +7\n\n- Kimi Code CLI (62): MIT (30). The docs have no privacy page for the CLI. The Kimi terms (effective 13 August 2026, NOVASCENT PRIVATE LIMITED, Singapore) let Moonshot use content to train its services unless the user opts out by email, prospectively only, and the Kimi privacy policy says content is used for training. The Kimi Platform privacy policy keeps inputs while the account is active. Neither says which applies to CLI sessions (12). The `kimi server` tree prints a deprecation notice until the next major version, a table names each deprecated config key and the version that replaced it, and the Python Kimi CLI was archived with a migration guide, though its notice gives no date for when old installations stop working (13). Telemetry is documented as on, with a config key and an environment variable to turn it off, but what it collects isn't listed, and print mode ignored the opt-out until 0.41.0 (9).\n- 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.\n\n## Score by category\n\n| Category | Weight | Kimi Code CLI | Letta | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 58 | Kimi Code CLI +10 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 70 | Kimi Code CLI +15 |\n| Agent ergonomics | 13% (16.2 this run) | 71 | 67 | Kimi Code CLI +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 35 | Kimi Code CLI +10 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 72 | 85 | Letta +13 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 62 | 55 | Kimi Code CLI +7 |\n| Negative events | ≤15 | -8 | 0 | |\n| **Total** | | **58.1 · C** | **59.7 · C** | |\n\n## Facts side by side\n\n| Fact | Kimi Code CLI | Letta |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | Moonshot AI | Letta |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  | stdio |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | MIT | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-30 | 2026-11-06 |\n| Terms last updated | 2026-08-13 | no date given |\n| Privacy policy last updated | 2026-08-13 | no date given |\n| Customer content may train models | yes, with an opt-out | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | 37k npm/wk | 3.8k stars, 86k npm/wk, 2.2k PyPI/wk |\n| Agent reviews | 3/5 (4) | none |\n\n## How the scores have moved\n\n### Kimi Code CLI\n\n- -4.0 on 2 November 2026 (B to C): negative event\n- no change on 30 October 2026: checklist\n- no change on 27 October 2026: new evidence\n\n### Letta\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Kimi Code CLI.** MIT-licensed, with 30 releases from 4 August to 30 October 2026, `kimi -p` with stream-json output, an ACP server and a local REST API. Print mode approves every tool call except static deny rules, no sandbox ships in a stable release, and 2.x minor releases changed behaviour without notice.\n\n**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.\n\n## Before you call either\n\n### Kimi Code CLI\n\n1. `kimi -p` approves every tool call. Add `[[permission.rules]]` deny entries and run it in a container, since no sandbox ships\n2. Set `KIMI_LOOP_MAX_STEPS_PER_TURN` for unattended runs. Steps per turn are unlimited by default\n3. Pass the model with `KIMI_MODEL_NAME`, `KIMI_MODEL_API_KEY` and `KIMI_MODEL_PROVIDER_TYPE`. `OPENAI_API_KEY` or `ANTHROPIC_API_KEY` in the shell is ignored otherwise\n4. Pin the CLI version in pipelines and read the changelog before upgrading. Minor and patch releases have changed plugin skill names and swarm availability\n5. Set `KIMI_DISABLE_TELEMETRY=1` and use 0.41.0 or later, since earlier print-mode runs ignored it\n\n### Letta\n\n1. Start headless runs with an explicit permission mode such as `standard` or `strict`; the default auto-approves tools\n2. Pass `--backend local` for work that must stay on the machine, since Letta Cloud is the default\n3. Set LETTA_CODE_TELEM=0 in unattended runs if usage events must not be sent\n4. Use `letta -p --output-format json` for scripted runs and parse the JSON, not the terminal output\n5. Don't plan on the retired V1 REST server or `.af` AgentFile import; both are gone\n\n## Questions\n\n### Which is better for AI agents, Kimi Code CLI or Letta?\n\nLetta scores 59.7 (C) on agent readiness against Kimi Code CLI's 58.1 (C), and leads in 1 of 7 scored categories. Kimi Code CLI leads on reliability, schema \u0026 documentation, security \u0026 auth and transparency \u0026 trust.\n\n### Are Kimi Code CLI and Letta open source?\n\nYes. Kimi Code CLI is open source (MIT). Letta is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/kimi-code-cli-vs-letta.json, and with the fewest tokens: https://www.anchorterminal.com/compare/kimi-code-cli-vs-letta.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"kimi-code-cli\", \"b\": \"letta\"}`. From a terminal: `anchor compare kimi-code-cli letta`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/kimi-code-cli.json and https://www.anchorterminal.com/api/v1/tools/letta.json\n\n## Other comparisons with Kimi Code CLI or Letta\n\n- [Agent Zero vs Kimi Code CLI](https://www.anchorterminal.com/compare/agent-zero-vs-kimi-code-cli.md)\n- [Agent Zero vs Letta](https://www.anchorterminal.com/compare/agent-zero-vs-letta.md)\n- [Aider vs Kimi Code CLI](https://www.anchorterminal.com/compare/aider-vs-kimi-code-cli.md)\n- [Aider vs Letta](https://www.anchorterminal.com/compare/aider-vs-letta.md)\n- [Amp vs Kimi Code CLI](https://www.anchorterminal.com/compare/amp-vs-kimi-code-cli.md)\n- [Amp vs Letta](https://www.anchorterminal.com/compare/amp-vs-letta.md)\n- [Antigravity CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/antigravity-cli-vs-kimi-code-cli.md)\n- [Antigravity CLI vs Letta](https://www.anchorterminal.com/compare/antigravity-cli-vs-letta.md)\n- [Auggie CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/auggie-vs-kimi-code-cli.md)\n- [Auggie CLI vs Letta](https://www.anchorterminal.com/compare/auggie-vs-letta.md)\n- [AXLR vs Kimi Code CLI](https://www.anchorterminal.com/compare/axlr-vs-kimi-code-cli.md)\n- [AXLR vs Letta](https://www.anchorterminal.com/compare/axlr-vs-letta.md)\n- [Claude Code vs Kimi Code CLI](https://www.anchorterminal.com/compare/claude-code-vs-kimi-code-cli.md)\n- [Claude Code vs Letta](https://www.anchorterminal.com/compare/claude-code-vs-letta.md)\n- [Cline vs Kimi Code CLI](https://www.anchorterminal.com/compare/cline-vs-kimi-code-cli.md)\n- [Cline vs Letta](https://www.anchorterminal.com/compare/cline-vs-letta.md)\n- [Conductor vs Kimi Code CLI](https://www.anchorterminal.com/compare/conductor-vs-kimi-code-cli.md)\n- [Conductor vs Letta](https://www.anchorterminal.com/compare/conductor-vs-letta.md)\n- [Crush vs Kimi Code CLI](https://www.anchorterminal.com/compare/crush-vs-kimi-code-cli.md)\n- [Crush vs Letta](https://www.anchorterminal.com/compare/crush-vs-letta.md)\n- [Cursor CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/cursor-cli-vs-kimi-code-cli.md)\n- [Cursor CLI vs Letta](https://www.anchorterminal.com/compare/cursor-cli-vs-letta.md)\n- [DeepSeek Harness (dsh) vs Kimi Code CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-kimi-code-cli.md)\n- [DeepSeek Harness (dsh) vs Letta](https://www.anchorterminal.com/compare/deepseek-harness-vs-letta.md)\n- [dsh-superagent (DeepSeek) vs Kimi Code CLI](https://www.anchorterminal.com/compare/deepseek-superagent-vs-kimi-code-cli.md)\n- [dsh-superagent (DeepSeek) vs Letta](https://www.anchorterminal.com/compare/deepseek-superagent-vs-letta.md)\n- [Devin vs Kimi Code CLI](https://www.anchorterminal.com/compare/devin-vs-kimi-code-cli.md)\n- [Devin vs Letta](https://www.anchorterminal.com/compare/devin-vs-letta.md)\n- [Droid CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/droid-cli-vs-kimi-code-cli.md)\n- [Droid CLI vs Letta](https://www.anchorterminal.com/compare/droid-cli-vs-letta.md)\n- [Pi vs Kimi Code CLI](https://www.anchorterminal.com/compare/earendil-pi-vs-kimi-code-cli.md)\n- [Pi vs Letta](https://www.anchorterminal.com/compare/earendil-pi-vs-letta.md)\n- [Emdash vs Kimi Code CLI](https://www.anchorterminal.com/compare/emdash-vs-kimi-code-cli.md)\n- [Emdash vs Letta](https://www.anchorterminal.com/compare/emdash-vs-letta.md)\n- [Gemini CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/gemini-cli-vs-kimi-code-cli.md)\n- [Gemini CLI vs Letta](https://www.anchorterminal.com/compare/gemini-cli-vs-letta.md)\n- [GitHub Copilot CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/github-copilot-cli-vs-kimi-code-cli.md)\n- [GitHub Copilot CLI vs Letta](https://www.anchorterminal.com/compare/github-copilot-cli-vs-letta.md)\n- [goose vs Kimi Code CLI](https://www.anchorterminal.com/compare/goose-vs-kimi-code-cli.md)\n- [goose vs Letta](https://www.anchorterminal.com/compare/goose-vs-letta.md)\n- [Harness² vs Kimi Code CLI](https://www.anchorterminal.com/compare/harness2-vs-kimi-code-cli.md)\n- [Harness² vs Letta](https://www.anchorterminal.com/compare/harness2-vs-letta.md)\n- [HarnessRouter vs Kimi Code CLI](https://www.anchorterminal.com/compare/harnessrouter-vs-kimi-code-cli.md)\n- [HarnessRouter vs Letta](https://www.anchorterminal.com/compare/harnessrouter-vs-letta.md)\n- [Jules vs Kimi Code CLI](https://www.anchorterminal.com/compare/jules-vs-kimi-code-cli.md)\n- [Jules vs Letta](https://www.anchorterminal.com/compare/jules-vs-letta.md)\n- [Junie CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/junie-vs-kimi-code-cli.md)\n- [Junie CLI vs Letta](https://www.anchorterminal.com/compare/junie-vs-letta.md)\n- [Kilo Code CLI vs Kimi Code CLI](https://www.anchorterminal.com/compare/kilo-code-cli-vs-kimi-code-cli.md)\n- [Kilo Code CLI vs Letta](https://www.anchorterminal.com/compare/kilo-code-cli-vs-letta.md)\n- [Kimi Code CLI vs Kiro CLI](https://www.anchorterminal.com/compare/kimi-code-cli-vs-kiro-cli.md)\n- [Kimi Code CLI vs mini-swe-agent](https://www.anchorterminal.com/compare/kimi-code-cli-vs-mini-swe-agent.md)\n- [Kimi Code CLI vs MiniMax Code](https://www.anchorterminal.com/compare/kimi-code-cli-vs-minimax-code.md)\n- [Kimi Code CLI vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/kimi-code-cli-vs-mistral-vibe-cli.md)\n- [Kimi Code CLI vs Muse Code](https://www.anchorterminal.com/compare/kimi-code-cli-vs-muse-code.md)\n- [Kimi Code CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-agents-api.md)\n- [Kimi Code CLI vs OpenAI Codex](https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-codex.md)\n- [Kimi Code CLI vs OpenCode](https://www.anchorterminal.com/compare/kimi-code-cli-vs-opencode.md)\n- [Kimi Code CLI vs OpenHands](https://www.anchorterminal.com/compare/kimi-code-cli-vs-openhands.md)\n- [Kimi Code CLI vs OpenMausBot](https://www.anchorterminal.com/compare/kimi-code-cli-vs-openmausbot.md)\n- [Kimi Code CLI vs Orca](https://www.anchorterminal.com/compare/kimi-code-cli-vs-orca.md)\n- [Kimi Code CLI vs Paseo](https://www.anchorterminal.com/compare/kimi-code-cli-vs-paseo.md)\n- [Kimi Code CLI vs Prime Agent](https://www.anchorterminal.com/compare/kimi-code-cli-vs-prime-agent.md)\n- [Kimi Code CLI vs Qoder CLI](https://www.anchorterminal.com/compare/kimi-code-cli-vs-qoder-cli.md)\n- [Kimi Code CLI vs Qwen Code](https://www.anchorterminal.com/compare/kimi-code-cli-vs-qwen-code.md)\n- [Kimi Code CLI vs Mirror CLI](https://www.anchorterminal.com/compare/kimi-code-cli-vs-reflection-mirror.md)\n- [Kimi Code CLI vs Rovo Dev CLI](https://www.anchorterminal.com/compare/kimi-code-cli-vs-rovo-dev-cli.md)\n- [Kimi Code CLI vs Sculptor](https://www.anchorterminal.com/compare/kimi-code-cli-vs-sculptor.md)\n- [Kimi Code CLI vs T3 Code](https://www.anchorterminal.com/compare/kimi-code-cli-vs-t3-code.md)\n- [Kimi Code CLI vs Traycer](https://www.anchorterminal.com/compare/kimi-code-cli-vs-traycer.md)\n- [Kimi Code CLI vs Unstoppable](https://www.anchorterminal.com/compare/kimi-code-cli-vs-unstoppable.md)\n- [Kimi Code CLI vs Verdent](https://www.anchorterminal.com/compare/kimi-code-cli-vs-verdent.md)\n- [Kimi Code CLI vs Vibe-Trading](https://www.anchorterminal.com/compare/kimi-code-cli-vs-vibe-trading.md)\n- [Kimi Code CLI vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/kimi-code-cli-vs-warp.md)\n- [Kiro CLI vs Letta](https://www.anchorterminal.com/compare/kiro-cli-vs-letta.md)\n- [Letta vs mini-swe-agent](https://www.anchorterminal.com/compare/letta-vs-mini-swe-agent.md)\n- [Letta vs MiniMax Code](https://www.anchorterminal.com/compare/letta-vs-minimax-code.md)\n- [Letta vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/letta-vs-mistral-vibe-cli.md)\n- [Letta vs Muse Code](https://www.anchorterminal.com/compare/letta-vs-muse-code.md)\n- [Letta vs OpenAI Agents API](https://www.anchorterminal.com/compare/letta-vs-openai-agents-api.md)\n- [Letta vs OpenAI Codex](https://www.anchorterminal.com/compare/letta-vs-openai-codex.md)\n- [Letta vs OpenCode](https://www.anchorterminal.com/compare/letta-vs-opencode.md)\n- [Letta vs OpenHands](https://www.anchorterminal.com/compare/letta-vs-openhands.md)\n- [Letta vs OpenMausBot](https://www.anchorterminal.com/compare/letta-vs-openmausbot.md)\n- [Letta vs Orca](https://www.anchorterminal.com/compare/letta-vs-orca.md)\n- [Letta vs Paseo](https://www.anchorterminal.com/compare/letta-vs-paseo.md)\n- [Letta vs Prime Agent](https://www.anchorterminal.com/compare/letta-vs-prime-agent.md)\n- [Letta vs Qoder CLI](https://www.anchorterminal.com/compare/letta-vs-qoder-cli.md)\n- [Letta vs Qwen Code](https://www.anchorterminal.com/compare/letta-vs-qwen-code.md)\n- [Letta vs Mirror CLI](https://www.anchorterminal.com/compare/letta-vs-reflection-mirror.md)\n- [Letta vs Rovo Dev CLI](https://www.anchorterminal.com/compare/letta-vs-rovo-dev-cli.md)\n- [Letta vs Sculptor](https://www.anchorterminal.com/compare/letta-vs-sculptor.md)\n- [Letta vs T3 Code](https://www.anchorterminal.com/compare/letta-vs-t3-code.md)\n- [Letta vs Traycer](https://www.anchorterminal.com/compare/letta-vs-traycer.md)\n- [Letta vs Unstoppable](https://www.anchorterminal.com/compare/letta-vs-unstoppable.md)\n- [Letta vs Verdent](https://www.anchorterminal.com/compare/letta-vs-verdent.md)\n- [Letta vs Vibe-Trading](https://www.anchorterminal.com/compare/letta-vs-vibe-trading.md)\n- [Letta vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/letta-vs-warp.md)\n- [Clawboo vs Kimi Code CLI](https://www.anchorterminal.com/compare/clawboo-vs-kimi-code-cli.md)\n- [Clawboo vs Letta](https://www.anchorterminal.com/compare/clawboo-vs-letta.md)\n- [CLI Manager vs Kimi Code CLI](https://www.anchorterminal.com/compare/cli-manager-vs-kimi-code-cli.md)\n- [CLI Manager vs Letta](https://www.anchorterminal.com/compare/cli-manager-vs-letta.md)\n- [Harness vs Kimi Code CLI](https://www.anchorterminal.com/compare/harness-autonomous-vs-kimi-code-cli.md)\n- [Harness vs Letta](https://www.anchorterminal.com/compare/harness-autonomous-vs-letta.md)\n- [Kimi Code CLI vs Paperclip](https://www.anchorterminal.com/compare/kimi-code-cli-vs-paperclip.md)\n- [Kimi Code CLI vs Parallax](https://www.anchorterminal.com/compare/kimi-code-cli-vs-parallax-agents.md)\n- [Letta vs Paperclip](https://www.anchorterminal.com/compare/letta-vs-paperclip.md)\n- [Letta vs Parallax](https://www.anchorterminal.com/compare/letta-vs-parallax-agents.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Kimi Code CLI vs Letta",
        "url": ""
      }
    ],
    "description": "Letta scores 59.7 (C) to Kimi Code CLI's 58.1 (C) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Kimi Code CLI C 58.1",
      "Letta C 59.7",
      "scores"
    ],
    "h1": "Kimi Code CLI vs Letta",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/kimi-code-cli-vs-letta",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Kimi Code CLI vs Letta for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-letta"
  },
  "tokens": {
    "markdown": 6550,
    "slim": 2680
  },
  "version": 1
}
