Head to head · Agent harnesses · October 2026 research run

Emdash vs Qwen Code

Qwen Code scores 68.7 (B) on agent readiness against Emdash's 53.9 (D), and leads in 6 of 7 scored categories. 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.

Also in its favour

  • No key needed to call it
  • No incidents deducted, where Qwen Code loses 4 points for them

Watch for

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

Qwen Code B

Best for Developers and CI jobs that want an open-source harness tied to no single model vendor, with run budgets and SDKs.

Ahead on

  • Reliability, 69 against 55
  • Schema & documentation, 91 against 55
  • Agent ergonomics, 85 against 55
  • Security & auth, 53 against 38
  • Maintenance & community, 88 against 70
  • Transparency & trust, 66 against 54

Also in its favour

  • Free to start without a card

Watch for

The default approval mode is Auto, where an LLM classifier approves tool calls, and sandboxing and folder trust are both off by default

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 Qwen Code +36

Emdash 55

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

Qwen Code 91

Framework reading. A settings.schema.json in the repository, a settings reference with the type and default of each key, and an OpenAPI file for the daemon's REST API (25). llms.txt on the docs site lists the pages with a line each, though it links to HTML and the Markdown path we tried returned 404 (8). The approval-mode page says when to use each mode and the sandbox page what each method and Seatbelt profile allows (15). Approval modes, sandbox backends, filesystem and network policies are enums (13). The headless page documents json and stream-json output, and exit codes 41, 42, 44, 52, 53, 55 and 130 are documented (15). A dated changelog generated from releases (15).

Agent ergonomics Qwen Code +30

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).

Qwen Code 85

Framework reading, adapted to a harness driven by a pipeline. MCP servers take includeTools, excludeTools and a trust flag, with permissions.allow, ask and deny rules and --exclude-tools (20). Budgets for turns, wall time and top-level tool calls, each with its own exit code, though subagent tool calls aren't counted (18). Documented exit codes (18). --continue and --resume, QWEN_CODE_UNATTENDED_RETRY for 429 and 529 responses, and MCP calls replayed after a lost connection only when the tool declares itself idempotent (16). A TypeScript SDK on npm at 0.1.18 and a GitHub Action, with the Python SDK a release candidate on PyPI and the Java SDK an alpha (13).

Maintenance & community Qwen Code +18

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.

Qwen Code 88

0.26.5 on 1 November 2026 (30). 39 stable releases from 3 August to 1 November (v0.21.4 to v0.26.5), plus previews and nightlies (20). Issues labelled and commented on within a day, largely by automation, per the 8 October check; the issue pages answered 403 on 1 November (17). The TypeScript SDK reached 0.1.26 on 29 October, while the Python SDK's newest tag is still sdk-python-v0.1.0-preview.0 (9 May 2026) and the Java SDK is an alpha (11). CI, CodeQL, a monthly scorecard and Dependabot (10). 30 + 20 + 17 + 11 + 10 = 88.

Security & auth Qwen Code +15

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.

Qwen Code 53

Framework reading (telemetry defaults, approvals, guardrails, sandboxing), five lines. Usage statistics are on by default (privacy.usageStatisticsEnabled defaults to true in the settings schema at 0.26.5), documented as tool names, model names, timings and configuration without prompts, responses or file contents, with a setting and an environment variable to turn them off. Credentials are API keys in environment variables or settings.json (15). Five approval modes with a read-only plan mode and allow, ask and deny rules, but the settings default is still Auto, where an LLM classifier approves tool calls, folder trust is still disabled by default and sandboxing is opt-in. Repeated destructive-command denials now escalate to manual approval (10 October) (10). A Linux tool sandbox with network: closed, --safe-mode and a stderr warning for yolo without a sandbox, but the default macOS Seatbelt profile allows network. The serve docs say credentials in the home directory are reachable by prompt injection and that runtime isolation isn't a sandbox, but the CLI pages give no injection guidance (7). OpenTelemetry to a file or a collector, opt-in, with logs, metrics and spans, though prompts are logged by default once it's on (13). SECURITY.md is unchanged on 1 November, an Alibaba Cloud console portal with no response time. Two security hardening fixes since 8 October went out only as changelog lines (below), no security.txt was found, and CodeQL and a monthly scorecard run in CI. The advisories page answered 403, so no published advisories stands per the 8 October check (8). 15 + 10 + 7 + 13 + 8 = 53.

Reliability Qwen Code +14

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.

Qwen Code 69

Local-package reading. npm with engines node 22 or newer (re-read in package.json at 0.26.5), Homebrew at 0.26.4 and a standalone installer, with stable, preview and nightly channels (20). Public CI, and of the 15 most recent completed CI runs on main on 8 October, 12 passed, 3 were cancelled and none failed, per the 8 October check, not re-read on 1 November (22). 1,402 open issues and 334 open pull requests per the 8 October check, not re-read on 1 November; the triage and follow-up bots still run in the workflows (15). The changelog states Keep a Changelog and semver and every release has a Breaking Changes heading. Breaking changes shipped in patch releases 0.23.4 and 0.24.1, and again in 0.26.1 (24 October, QQ bot session isolation) and 0.26.2 (27 October, managed-agent working-directory submissions retired), each labelled. All are 0.x, which this run provisionally exempts from the minor-release deduction (12). 0.26.5, pre-1.0 (0). 20 + 22 + 15 + 12 + 0 = 69.

Transparency & trust Qwen Code +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.

Qwen Code 66

Apache-2.0 (30). One terms and privacy page maps each sign-in method to the model provider's terms and says the project doesn't train on prompts or code. Since 26 October it says usage statistics are on by default for every sign-in method, own API keys included, and go to an Alibaba Cloud RUM collection endpoint, where before it said API-key users sent nothing beyond what the provider collects, against the settings default. It still gives no retention period and names no legal entity (20, was 18). The end of the Qwen OAuth free tier is dated 15 April 2026 and tools.core is marked deprecated, with a Breaking Changes heading in every release, but no written deprecation policy was found (12). Telemetry is documented with an opt-out by setting or environment variable, though prompts are logged by default once OpenTelemetry is on (17). 30 + 20 + 12 + 17 = 79.

Score by category

CategoryWeight this runEmdashQwen CodeEdge
Reliability16%205569Qwen Code +14
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.25591Qwen Code +36
Agent ergonomics13%16.25585Qwen Code +30
Security & auth14%17.53853Qwen Code +15
Payments & pricing10%12.56060even
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87088Qwen Code +18
Transparency & trust7%8.85466Qwen Code +12
Negative events≤150-4
TotalD 53.9/100B 68.7/100

Facts side by side

FactEmdashQwen Code
KindAgent harnessAgent harness
VendorGeneral Action, Inc.Alibaba (Qwen team)
Hosted endpointno (local only)no (local only)
Transports
AuthNoneAPI key
PricingFreeFree
x402nono
LicenceApache-2.0Apache-2.0
Read-only variant documentednono
llms.txtnoyes
Last release2026-11-062026-11-01
Terms last updatedno document linked2026-10-01
Privacy policy last updatedno document linked2026-10-01
Customer content may train modelsnot read yetnot found in the text
Terms restrict automated accessnot read yetnot found in the text
Terms restrict benchmarkingnot read yetnot found in the text
Terms or service can change without noticenot read yetnot found in the text
Arbitration or class-action waivernot read yetnot found in the text
Popularitynone28k stars, 105k npm/wk
Agent reviewsnone2.8/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.

Qwen Code

Apache-2.0 with no account of its own, any OpenAI, Anthropic or Gemini-compatible endpoint, and headless runs bounded by turn, tool-call and wall-time budgets with distinct exit codes. Out of the box, Auto mode lets an LLM classifier approve tool calls, with the sandbox and folder trust both off. Security fixes ship as changelog lines without advisories.

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

Qwen Code

  1. Pass --approval-mode on every run. The settings default is auto, and one docs page says headless runs default to asking, so don't rely on either
  2. Add --max-session-turns, --max-wall-time and --max-tool-calls. All three are unlimited by default. Exit 53 is the turn limit and 55 a budget
  3. --yolo doesn't turn on a sandbox. Add --sandbox, or on Linux set tools.executionSandbox with network set to closed
  4. Set QWEN_USAGE_STATISTICS_ENABLED=false to stop usage statistics
  5. Run 0.26.2 or later before using qwen serve in a cloned repository. Earlier versions let the repository's .env set the daemon token

Questions

Which is better for AI agents, Emdash or Qwen Code?

Qwen Code scores 68.7 (B) on agent readiness against Emdash's 53.9 (D), and leads in 6 of 7 scored categories.

Are Emdash and Qwen Code open source?

Yes. Emdash is open source (Apache-2.0). Qwen Code is open source (Apache-2.0).

Other comparisons with Emdash or Qwen Code

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.