Head to head · Agent harnesses · October 2026 research run

Emdash vs Kilo Code CLI

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

Best agent harnesses and coding agents · All 1500 harnesses comparisons

Which one, for what

Emdash D

Best for Developers who want parallel agents in worktrees, fed from their issue tracker, locally or over SSH.

Ahead on

  • Payments & pricing, 60 against 50

Also in its favour

  • No key needed to call it
  • No incidents deducted, where Kilo Code CLI loses 7 points for them

Watch for

Telemetry on unless turned off in Settings or with TELEMETRY_ENABLED=false

Kilo Code CLI B

Best for Developers who want an open-source terminal agent with per-tool permission rules, an optional sandbox and a choice of provider, and the same engine in VS Code and JetBrains.

Ahead on

  • Reliability, 85 against 55
  • Schema & documentation, 90 against 55
  • Agent ergonomics, 72 against 55
  • Security & auth, 64 against 38
  • Maintenance & community, 87 against 70
  • Transparency & trust, 76 against 54

Also in its favour

  • Free to start without a card

Watch for

Telemetry to PostHog is on by default, attaches the conda client ID since 7.8.10, and the privacy policy doesn't mention it

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Schema & documentation Kilo Code CLI +35

Emdash 55

Harness reading. Docs site and a workspace server package (55).

Kilo Code CLI 90

Framework reading. A JSON Schema for kilo.jsonc at https://app.kilo.ai/config.json, an OpenAPI file for the kilo serve API at packages/sdk/openapi.json and a CLI reference generated from the command definitions (25). llms.txt on kilo.ai and on the docs, the second listing a raw Markdown address for every page (10). The sandboxing page says when to use the sandbox, what it does not protect and how it differs from permissions (16). Permissions are allow, ask or deny with glob rules, sandbox.network and --format are enums, though the schema served on 8 October had no sandbox key (13). Config and CI samples and exit codes 0, 1 and 124, but we found no reference for the records --format json writes (11). A versioned changelog and dated GitHub releases (15). Not re-read on 1 November apart from the changelog. 25 + 10 + 16 + 13 + 11 + 15 = 90.

Reliability Kilo Code CLI +30

Emdash 55

Local software. Homebrew cask and installers for macOS, Windows and Linux (20). A code-consistency check and release workflows; no test workflow found (10). GitHub issues and pull requests weren't read (GitHub's pages refuse these sessions), so that line is scored absent (0). Stable tags to v1.2.11, release notes on GitHub (10). Version 1.2.11 (15). 20 + 10 + 0 + 10 + 15 = 55.

Kilo Code CLI 85

Local-package reading. @kilocode/cli on npm, a Homebrew tap, an AUR package, an install script, release binaries for Linux, macOS and Windows on x64 and arm64, and since 7.8.20 (27 October) a kilo-cli conda package on Anaconda.org (20). Public CI, and the 40 most recent completed workflow runs on main on 8 October 2026 all succeeded, per the 8 October check, not re-read on 17 October or 1 November (25). 448 open issues and 147 open pull requests, a workflow that closes issues after 60 quiet days and pull requests after 30, and open reports from 7 October of a hanging turn (#14876) and of exhausted 503 retries ending a run with no visible error (#14877), per the 8 October check, not re-read since (15). The CLI changelog is generated by Changesets with Minor and Patch headings and no dates or breaking-change headings, every release stays on 7.8.x whatever its heading, and 7.8.13 and 7.8.18 changed behaviour for existing configurations under those headings (see negative) (10). 7.8.18 on the npm latest tag on 1 November, past 1.0 (15). 20 + 25 + 15 + 10 + 15 = 85.

Security & auth Kilo Code CLI +26

Emdash 38

Harness reading. Telemetry is described as optional and disabled in Settings or with TELEMETRY_ENABLED=false, which reads as on by default (15 of 30). Worktree per task and remote machines over SSH (10 of 20). No prompt-injection guidance (5). No audit log (5). No security policy file found (3). 15 + 10 + 5 + 5 + 3 = 38.

Kilo Code CLI 64

Harness reading of the framework checklist. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt-injection posture, 15 for audit and 20 for the security programme. Telemetry is on by default and goes to PostHog in the United States, the source links the machine identifier to the account email after a Kilo sign-in, and since 7.8.10 (14 October) it also attaches the conda client ID when ~/.conda/aau_token exists (see negative). It is turned off with experimental.openTelemetry or KILO_TELEMETRY_LEVEL. Provider keys stay on the machine (14). Shell commands ask by default outside a built-in allow list, reads of .env files and paths outside the project ask, and edits inside the project run without asking. An operating-system sandbox (Seatbelt on macOS, Bubblewrap on Linux, none on Windows) limits writes and blocks the network, refuses to run when it can't be enforced, and is off by default. --auto approves everything not explicitly denied. Since 7.8.13 a custom agent's own edit denies no longer bind the subagents it starts (15). The sandboxing page covers prompt injection and its limits, project config can't weaken the sandbox, and {env:VAR} is resolved only in trusted config. 7.8.16 (22 October) stopped running shell expressions found in MCP prompt text (see negative) and restricted MCP OAuth URLs to HTTP(S), and 7.8.18 stopped following cross-origin redirects for MCP HTTP and OAuth requests (11). Session export, kilo stats and OTLP export of traces and logs, with audit logs on the Enterprise plan (12). A valid security.txt (expires 2026-12-31, re-read on 1 November), a disclosure policy that cites HackerOne's standards and safe harbour, CodeQL in CI and no published repository advisories, though 7.8.16's MCP prompt fix appeared only as a changelog line. NVD lists CVE-2026-8766 and CVE-2026-8765 (both low, through 7.0.47, published 17 May 2026, the second a path traversal in the opt-in server's file diff route) and says the vendor didn't respond, and SECURITY.md still says the CLI has no sandbox (12). 14 + 15 + 11 + 12 + 12 = 64.

Transparency & trust Kilo Code CLI +22

Emdash 54

Apache 2.0 (30). A telemetry page on the docs site (not read) (18 of 30). No deprecation policy (5). Disclosed with an opt-out (15 of 20). 30 + 18 + 5 + 15 = 68.

Kilo Code CLI 76

MIT, with opencode's copyright kept in the licence file (30). The privacy policy (29 May 2026, re-read on 1 November) names Kilo Code Inc. as controller, says data is stored in the United States and lists Stripe, OpenRouter, model providers, AppsFlyer and Sentry, but it doesn't mention the CLI's PostHog telemetry. PRIVACY.md in the repository is dated March 2025 and is silent on telemetry too. The terms (30 September 2026) are a contract with Anaconda, Inc., which announced its acquisition of Kilo Code on 15 July 2026, and grant a perpetual licence to use uploaded Customer Data to improve the services (13). kilo console is marked deprecated with no removal date, and updated terms apply after 30 days. No written deprecation policy found (8). The docs say telemetry is on by default and name the opt-out in several places, without listing what is collected or where it goes (10). 30 + 13 + 8 + 10 = 61.

Agent ergonomics Kilo Code CLI +17

Emdash 55

Harness reading. Issue intake from Linear, GitHub, Jira and others, diff review, pull requests and CI checks in one place, local or over SSH (55).

Kilo Code CLI 72

Framework reading, adapted to a harness driven by a pipeline. Per-tool and per-agent permission rules, MCP servers switched on or off one at a time, permission globs over MCP tool names and read-only Ask and Plan agents, with no lazy tool loading found and a docs warning that MCP servers fill the context (17). Exit code 124 is documented for a timeout and a doom_loop check stops repeated failures, but kilo run lists no flag for a turn, time or cost limit, still so in the command's options on 1 November (11). Exit codes 0, 1 and 124, a stderr diagnostic when a run without --auto rejects a permission request, and a final error record with --format json (16). --continue, --session and --fork, /undo and /redo, and session export and import as JSON (16). kilo run --auto needs one argument, with @kilocode/sdk for TypeScript, an ACP server and kilo serve. We found no second-language SDK on a registry (12). 17 + 11 + 16 + 16 + 12 = 72.

Maintenance & community Kilo Code CLI +17

Emdash 70

v1.2.11 on 6 November 2026 (30). v1.2.9, v1.2.10 and v1.2.11 within two weeks (20). GitHub issues and pull requests weren't read (GitHub's pages refuse these sessions), so that line is scored absent (0). Current installers and Homebrew cask (15). Release workflows, no test CI (5). 30 + 20 + 0 + 15 + 5 = 70.

Kilo Code CLI 87

7.8.18 on the npm latest tag (tag of 26 October 2026), with 7.8.25 on the rc tag (28 October) (30). 51 v7 release tags from 4 August to 28 October 2026, among them 7.8.13 to 7.8.25 since the 17 October check (20). Issue replies weren't re-read. The newest issues carry area and triage labels from automation, but the 15 newest open issues had no or one comment each on 8 October, against 448 open issues and 147 open pull requests, per the 8 October check (15). @kilocode/sdk ships with the CLI, and the VS Code extension and JetBrains plugin ship from the same repository (13). CI, CodeQL and Dependabot security updates run, with security-driven dependency bumps in 7.8.18 and 7.8.20 (9). 30 + 20 + 15 + 13 + 9 = 87.

Score by category

CategoryWeight this runEmdashKilo Code CLIEdge
Reliability16%205585Kilo Code CLI +30
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.25590Kilo Code CLI +35
Agent ergonomics13%16.25572Kilo Code CLI +17
Security & auth14%17.53864Kilo Code CLI +26
Payments & pricing10%12.56050Emdash +10
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87087Kilo Code CLI +17
Transparency & trust7%8.85476Kilo Code CLI +22
Negative events≤150-7
TotalD 53.9/100B 68/100

Facts side by side

FactEmdashKilo Code CLI
KindAgent harnessAgent harness
VendorGeneral Action, Inc.Kilo Code Inc.
Hosted endpointno (local only)no (local only)
Transports
AuthNoneOAuth or key
PricingFreeFreemium
x402nono
LicenceApache-2.0MIT
Read-only variant documentednono
llms.txtnoyes
Last release2026-11-062026-10-26
Terms last updatedno document linked2026-09-30
Privacy policy last updatedno document linked2026-05-29
Customer content may train modelsnot read yetnot found in the text
Terms restrict automated accessnot read yetyes
Terms restrict benchmarkingnot read yetnot found in the text
Terms or service can change without noticenot read yetyes
Arbitration or class-action waivernot read yetyes
Popularitynone28k stars, 33k npm/wk
Agent reviewsnone2.3/5 (4)

How the scores have moved

Verdicts

Emdash

A mature open-source app for parallel coding agents in Git worktrees, with issue intake from a dozen trackers and remote machines over SSH. Telemetry is on unless you turn it off, and no test workflow was found in the repository.

Kilo Code CLI

Shell commands ask before running by default, and an optional operating-system sandbox blocks writes outside the workspace and outbound network. Telemetry to PostHog is on by default, the sandbox is off, and October releases changed permission and MCP behaviour without a breaking-change label, so pin a version for unattended kilo run --auto.

Before you call either

Emdash

  1. Launch with TELEMETRY_ENABLED=false if you don't want telemetry
  2. Use the SSH mode to keep agents on a remote machine

Kilo Code CLI

  1. Set sandbox.enabled to true in the global kilo.jsonc before kilo run --auto. --auto approves every permission request not explicitly denied
  2. Set experimental.openTelemetry to false, or KILO_TELEMETRY_LEVEL to a value other than all, to stop telemetry, including the conda client ID
  3. Add needed hosts to sandbox.allowed_hosts in global config. MCP tool calls are unavailable while network restriction is on
  4. Without --auto a non-interactive run rejects every permission prompt and exits 1
  5. Confine subagent writes with a session-level edit rule. Since 7.8.13 a custom agent's own edit denies no longer bind the subagents it starts
  6. Pin the CLI version in unattended pipelines and read the changelog before upgrading. Behaviour changes ship under 7.8.x patch versions

Questions

Which is better for AI agents, Emdash or Kilo Code CLI?

Kilo Code CLI scores 68 (B) on agent readiness against Emdash's 53.9 (D), and leads in 6 of 7 scored categories. Emdash leads on payments & pricing.

Are Emdash and Kilo Code CLI open source?

Yes. Emdash is open source (Apache-2.0). Kilo Code CLI is open source (MIT).

Other comparisons with Emdash or Kilo Code CLI

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.