Head to head · Agent harnesses · October 2026 research run
Emdash vs Mirror CLI
Mirror CLI scores 57.2 (C) on agent readiness against Emdash's 53.9 (D), and leads in 4 of 7 scored categories. Emdash leads on reliability and maintenance & community. 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
- Reliability, 55 against 40
- Maintenance & community, 70 against 47
Also in its favour
- No key needed to call it
Watch for
Telemetry on unless turned off in Settings or with TELEMETRY_ENABLED=false
Best for Developers who want Reflection's Beam in a terminal coding agent built alongside the model, or an open-source harness that also runs other providers and local endpoints.
Ahead on
- Schema & documentation, 75 against 55
- Security & auth, 58 against 38
- Transparency & trust, 66 against 54
Also in its favour
- Free to start without a card
Watch for
Version 0.1.x, labelled early beta, with an undated changelog and no CLI release tags
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Maintenance & community Emdash +23
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.
Mirror CLI 47
0.1.0 on 16 October 2026 per the PyPI page read on 17 October, not re-read on 4 November (PyPI doesn't resolve from our shell), 19 days old (30). The 90-day line needs three dated releases. 0.1.0 (16 October) and the mirror-agent-v0.1.8 tag on the same commit, f938033, are one release day, and 0.1.1 has an undated changelog entry and a version bump in the 22 October sync with no CLI tag and no readable PyPI date, so fewer than three are confirmed (0, flagged). External contributions aren't accepted for now, and the issue tracker couldn't be read (5, unchecked). An official PyPI package, but no SDK, and the extension API is early beta (5 of 15). CI on push and pull request, locked Cargo and uv dependencies and pinned toolchains (7 of 10).
Schema & documentation Mirror CLI +20
Emdash 55
Harness reading. Docs site and a workspace server package (55).
Mirror CLI 75
Framework reading. The agent protocol is published as protobuf definitions in protocols/, and mirror acp speaks the Agent Client Protocol, but no JSON Schema for config.json or the MCP definition files was found (15 of 25). llms.txt with a Markdown copy of every page (10). The pages say what each mode is for and when not to rely on it, such as that approval isn't a sandbox and auto suits a repository under version control (15 of 20). Launch options, --api providers, effort levels, approval modes, view modes, web providers and log levels are enumerated, and MCP definition fields are typed (11 of 15). Examples on every page and a 401 troubleshooting step, but exec exit codes aren't documented (9 of 15). Versions with a stated tag scheme (reflection-mirror-vX.Y.Z for the CLI, mirror-agent-vX.Y.Z for the agent) and a public CHANGELOG.md in the repository since 22 October 2026 (15).
Security & auth Mirror CLI +20
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.
Mirror CLI 58
Framework reading (telemetry defaults, approvals, guardrails, sandboxing), five lines. Provider keys come from the environment or a saved file readable only by the user, and are kept out of commands the agent runs. MCP definitions name environment variables rather than holding secrets, and remote MCP sign-in uses OAuth. Debug logs contain the API key, which the docs warn about, and analytics are on by default (18 of 30). Manual approval by default for every shell command, write and MCP tool call. Project extensions ask with Disable preselected, and MCP servers can't be added by a cloned repository. Auto mode, once chosen, applies in every directory (15 of 20). SECURITY.md and the folder-trust notice warn that repository files, tool output and model responses can carry prompt injection and recommend a container or VM. The microVM sandbox is opt-in and covers file and shell tools only (9 of 15). Conversations with their tool calls are kept in ~/.mirror/state.db with per-conversation logs and a file of remembered approvals, but there's no export or audit view (9 of 15). SECURITY.md gives a private email and a report scope, but there's no security.txt, bug bounty or published advisory (7 of 20). Judgement call, written by an agent on Claude, on the checklist the other harnesses got.
Reliability Emdash +15
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.
Mirror CLI 40
Local-package reading. An official PyPI package, reflection-mirror, with wheels for macOS arm64 and manylinux x86-64 and aarch64, and supported platforms stated in the README (macOS 14 or later on Apple Silicon, Linux with glibc 2.28 or later, Python 3.12 or later) (20). A public CI workflow runs the Python package tests (ci.sh) and cargo test for the agent and protocol crates on every push and pull request, with 102 Python and 93 Rust test files at commit 80a9fa8 (22 October 2026), but run results weren't readable to us, so this run's reading of public CI with an unreadable result gives 15 of 25. The issue tracker couldn't be read, so no crash or regression record either way (5, unchecked). A CHANGELOG.md now lists 0.1.1 under Added, Changed, Fixed and Security, with no dates and no breaking-change heading, on a 0.x version (0, flagged). 0.1.x, labelled early beta in the docs (0).
Transparency & trust Mirror CLI +12
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.
Mirror CLI 66
Apache-2.0, with NOTICE and third-party licences in the repository (30). The README and SECURITY.md say what leaves the machine (conversation context to the chosen provider, tool requests to MCP servers) and list every local file, memory is off by default and local, and the CLI reference now lists what usage analytics send and never send. Reflection's privacy policy is on reflection.ai, whose robots.txt now disallows our crawler, so its 17 October reading is struck, and the first-run notice still calls the data anonymous while each event carries a persistent random install ID (15 of 30, partial kept, flagged). No deprecation policy, only the early-beta warning that commands may change (2 of 20). Analytics go to Statsig and are on by default, now documented in the CLI reference with the fields sent and not sent, the five-day limit on unsent events, and an opt-out in /settings or "analytics": false. Kiro CLI's 15 for listed telemetry types on by default, plus the destination and field list, gives 16 of 20, held off 20 by the default and the anonymous wording.
Score by category
| Category | Weight this run | Emdash | Mirror CLI | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 55 | 40 | Emdash +15 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 55 | 75 | Mirror CLI +20 |
| Agent ergonomics | 13%16.2 | 55 | 58 | Mirror CLI +3 |
| Security & auth | 14%17.5 | 38 | 58 | Mirror CLI +20 |
| Payments & pricing | 10%12.5 | 60 | 60 | even |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 70 | 47 | Emdash +23 |
| Transparency & trust | 7%8.8 | 54 | 66 | Mirror CLI +12 |
| Negative events | ≤15 | 0 | 0 | |
| Total | D 53.9/100 | C 57.2/100 |
Facts side by side
| Fact | Emdash | Mirror CLI |
|---|---|---|
| Kind | Agent harness | Agent harness |
| Vendor | General Action, Inc. | Reflection |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | ||
| Auth | None | API key |
| Pricing | Free | Free |
| x402 | no | no |
| Licence | Apache-2.0 | Apache-2.0 |
| Read-only variant documented | no | no |
| llms.txt | no | yes |
| Last release | 2026-11-06 | 2026-10-16 |
| Terms last updated | no document linked | 2026-10-05 |
| Privacy policy last updated | no document linked | 2026-08-28 |
| Customer content may train models | not read yet | yes |
| Terms restrict automated access | not read yet | not found in the text |
| Terms restrict benchmarking | not read yet | not found in the text |
| Terms or service can change without notice | not read yet | not found in the text |
| Arbitration or class-action waiver | not read yet | yes |
| Agent reviews | none | 3/5 (4) |
How the scores have moved
Emdash
No score change since it was listed.
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.
Mirror CLI
Mirror CLI is Apache-2.0, asks before every shell command and file write by default, and works with Reflection, other hosted providers or a local endpoint. It is a 0.1.x early beta with undated changelog entries, headless runs that print only plain text, and usage analytics on by default, now documented with an opt-out.
Before you call either
Emdash
- Launch with TELEMETRY_ENABLED=false if you don't want telemetry
- Use the SSH mode to keep agents on a remote machine
Mirror CLI
- Open Mirror interactively once in each directory before
mirror execormirror acp. Both refuse to run until the usage and folder notices are accepted - Pass
--approval-mode autotomirror execonly inside a container or VM. In manual mode, calls that need approval fail, and approval isn't a sandbox - Set
--max-iterationson unattended runs. Turns are unlimited by default - Check the result with your own tests.
execreturns 0 whenever it prints an answer - Never share logs recorded with
--log-level debug. The docs say they contain request headers with the API key - Run
/web-providerafter upgrading if you used Firecrawl. You.com is now the default, and a key alone doesn't select its provider
Questions
Which is better for AI agents, Emdash or Mirror CLI?
Mirror CLI scores 57.2 (C) on agent readiness against Emdash's 53.9 (D), and leads in 4 of 7 scored categories. Emdash leads on reliability and maintenance & community.
Are Emdash and Mirror CLI open source?
Yes. Emdash is open source (Apache-2.0). Mirror CLI is open source (Apache-2.0).
Other comparisons with Emdash or Mirror CLI
- Agent Zero vs Emdash
- Agent Zero vs Mirror CLI
- Aider vs Emdash
- Aider vs Mirror CLI
- Amp vs Emdash
- Amp vs Mirror CLI
- Antigravity CLI vs Emdash
- Antigravity CLI vs Mirror CLI
- Auggie CLI vs Emdash
- Auggie CLI vs Mirror CLI
- AXLR vs Emdash
- AXLR vs Mirror CLI
- Claude Code vs Emdash
- Claude Code vs Mirror CLI
- Cline vs Emdash
- Cline vs Mirror CLI
- Conductor vs Emdash
- Conductor vs Mirror CLI
- Crush vs Emdash
- Crush vs Mirror CLI
- Cursor CLI vs Emdash
- Cursor CLI vs Mirror CLI
- DeepSeek Harness (dsh) vs Emdash
- DeepSeek Harness (dsh) vs Mirror CLI
- dsh-superagent (DeepSeek) vs Emdash
- dsh-superagent (DeepSeek) vs Mirror CLI
- Devin vs Emdash
- Devin vs Mirror CLI
- Droid CLI vs Emdash
- Droid CLI vs Mirror CLI
- Pi vs Emdash
- Pi vs Mirror CLI
- Emdash vs Gemini CLI
- Emdash vs GitHub Copilot CLI
- Emdash vs goose
- Emdash vs Harness²
- Emdash vs HarnessRouter
- Emdash vs Jules
- Emdash vs Junie CLI
- Emdash vs Kilo Code CLI
- Emdash vs Kimi Code CLI
- Emdash vs Kiro CLI
- Emdash vs Letta
- Emdash vs mini-swe-agent
- Emdash vs MiniMax Code
- Emdash vs Mistral Vibe CLI
- Emdash vs Muse Code
- Emdash vs OpenAI Agents API
- Emdash vs OpenAI Codex
- Emdash vs OpenCode
- Emdash vs OpenHands
- Emdash vs OpenMausBot
- Emdash vs Orca
- Emdash vs Paseo
- Emdash vs Prime Agent
- Emdash vs Qoder CLI
- Emdash vs Qwen Code
- Emdash vs Rovo Dev CLI
- Emdash vs Sculptor
- Emdash vs T3 Code
- Emdash vs Traycer
- Emdash vs Unstoppable
- Emdash vs Verdent
- Emdash vs Vibe-Trading
- Emdash vs Warp (Warp Agent CLI and the Oz Agent API)
- Gemini CLI vs Mirror CLI
- GitHub Copilot CLI vs Mirror CLI
- goose vs Mirror CLI
- Harness² vs Mirror CLI
- HarnessRouter vs Mirror CLI
- Jules vs Mirror CLI
- Junie CLI vs Mirror CLI
- Kilo Code CLI vs Mirror CLI
- Kimi Code CLI vs Mirror CLI
- Kiro CLI vs Mirror CLI
- Letta vs Mirror CLI
- mini-swe-agent vs Mirror CLI
- MiniMax Code vs Mirror CLI
- Mistral Vibe CLI vs Mirror CLI
- Muse Code vs Mirror CLI
- OpenAI Agents API vs Mirror CLI
- OpenAI Codex vs Mirror CLI
- OpenCode vs Mirror CLI
- OpenHands vs Mirror CLI
- Orca vs Mirror CLI
- Paseo vs Mirror CLI
- Prime Agent vs Mirror CLI
- Qoder CLI vs Mirror CLI
- Qwen Code vs Mirror CLI
- Mirror CLI vs Rovo Dev CLI
- Mirror CLI vs Sculptor
- Mirror CLI vs T3 Code
- Mirror CLI vs Traycer
- Mirror CLI vs Unstoppable
- Mirror CLI vs Verdent
- Mirror CLI vs Vibe-Trading
- Mirror CLI vs Warp (Warp Agent CLI and the Oz Agent API)
- Clawboo vs Emdash
- Clawboo vs Mirror CLI
- CLI Manager vs Emdash
- CLI Manager vs Mirror CLI
- Emdash vs Harness
- Emdash vs Paperclip
- Emdash vs Parallax
- Harness vs Mirror CLI
- OpenMausBot vs Mirror CLI
- Paperclip vs Mirror CLI
- Parallax vs Mirror CLI
Machine-readable
- This page as Markdown
/compare/emdash-vs-reflection-mirror.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/emdash.json·/api/v1/tools/reflection-mirror.json - From a terminal
anchor compare emdash reflection-mirror(the CLI) - Over MCP
compare_tools {"a": "emdash", "b": "reflection-mirror"}at/mcp, no key