# DeepSeek Harness (dsh) vs Emdash (slim)

> Emdash scores 53.9 (D) to DeepSeek Harness's 48.5 (D) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.

- Full: https://www.anchorterminal.com/compare/deepseek-harness-vs-emdash.md (~5,450 tokens) · this version ~1,580 tokens · JSON https://www.anchorterminal.com/compare/deepseek-harness-vs-emdash.json · canonical https://www.anchorterminal.com/compare/deepseek-harness-vs-emdash
- Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · MCP: https://www.anchorterminal.com/mcp · Updated: 2026-11-07
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)

Emdash scores 53.9 (D) on agent readiness against DeepSeek Harness (dsh)'s 48.5 (D), and leads in 2 of 7 scored categories. DeepSeek Harness (dsh) leads on schema & documentation and agent ergonomics. Both do agent harnesses.

- DeepSeek Harness (dsh): D 48.5, rank #1111 of 1486 · https://www.anchorterminal.com/tools/deepseek-harness.min.md
- Emdash: D 53.9, rank #927 of 1486 · https://www.anchorterminal.com/tools/emdash.min.md
- DeepSeek Harness (dsh), good for Developers who use DeepSeek models and want a scriptable harness with ACP, a JSON event stream and a Python SDK. Ahead on Schema & documentation, 77 against 55; Agent ergonomics, 68 against 55. Also Free to start without a card.
- Emdash, good for Developers who want parallel agents in worktrees, fed from their issue tracker, locally or over SSH. Ahead on Reliability, 55 against 38. Also No key needed to call it; No incidents deducted, where DeepSeek Harness (dsh) loses 8 points for them.

| Category | DeepSeek Harness (dsh) | Emdash |
| --- | --- | --- |
| Reliability (16%) | 38 | 55 |
| Performance (10%) | pending | pending |
| Schema & documentation (13%) | 77 | 55 |
| Agent ergonomics (13%) | 68 | 55 |
| Security & auth (14%) | 40 | 38 |
| Payments & pricing (10%) | 60 | 60 |
| Task success (10%) | pending | pending |
| Maintenance & community (7%) | 71 | 70 |
| Transparency & trust (7%) | 53 | 54 |

| Fact (where they differ) | DeepSeek Harness (dsh) | Emdash |
| --- | --- | --- |
| Vendor | DeepSeek | General Action, Inc. |
| Auth | API key | None |
| Licence | MIT | Apache-2.0 |
| llms.txt | yes | no |
| Last release | 2026-10-17 | 2026-11-06 |
| Popularity | 245k npm/wk | none |
| Agent reviews | 3/5 (4) | none |

Why the edge:
- Schema & documentation, DeepSeek Harness (dsh) +22: DeepSeek Harness (dsh) 77 (Framework reading. `--dump-config-schema` prints a JSON Schema 2020-12 document for the composed configuration and patch layers, the headless `--json` event vocabulary is documented, and ACP v1 and the SDK's JSON-RPC are named protocols, though the reference calls the schema output pre-stable (22). llms.txt on the docs site, with a raw Markdown address for every page (10). Package READMEs have use and avoid sections and known limitations, such as headless being one task per run (17). Permission presets, sandbox modes, approval policies and telemetry modes are closed enums (13). Examples for every mode, exit codes 0 and 1, `dsh: <code>: <message>` on stderr, `error` events in `--json` and startup failure reports under `$DSH_HOME/logs/` (12). Versions are on npm and PyPI, with generated CLI help, but no public changelog was found (3). Per-version upgrade guides since 29 September 2026 name breaking changes, still with no changelog (the versioning line stays partly met). 22 + 10 + 17 + 13 + 12 + 3 = 77.); Emdash 55 (Harness reading. Docs site and a workspace server package (55).)
- Reliability, Emdash +17: DeepSeek Harness (dsh) 38 (Local-package reading, graded on npm `latest`, which the README's `npx @deepseek-ai/dsh` installs (0.2.0-rc.2 per the 18 October check; npm not re-read on 4 November). Official npm package with Node 22.19+ and 24+ stated, and a Python wheel for Python 3.10+ on Linux x64 and arm64, macOS 14+ on arm64 and Windows x64 that bundles the runtime (20). Public CI. ci.yml runs static checks, the coverage gate and consumer tests on every pull request, and ci-master.yml runs `pnpm run check:ci` on every push to master, but run results couldn't be read, so whether master passes is unconfirmed (15, this run's reading for public CI that runs the tests with an unreadable result). CONTRIBUTING.md sends bug reports to GitHub Discussions and refuses external pull requests. Discussions and issues couldn't be read (GitHub's pages answer 403), so crash reports and their handling are unchecked and scored absent (0). Alpha, next and latest dist-tags separate channels. Since 29 September 2026 the repository keeps dated upgrade guides per pre-release under docs/upgrade-guide (12 versions to 0.2.2-alpha.3), each naming breaking changes and migrations, but every version is still an alpha or rc and there is no changelog, so the line stays partly met (3). Developer preview, no 1.0 or stable release (0). 20 + 15 + 0 + 3 + 0 = 38.); 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.)
- Agent ergonomics, DeepSeek Harness (dsh) +13: DeepSeek Harness (dsh) 68 (Harness reading, scored on what a pipeline driving it has to supply. Profiles compose the tool set from plugins, `sdk-minimal` exposes three tools, and no MCP server is enabled by default (18). Automatic context compaction and a 300-second shell timeout in `sdk-minimal`, but no turn, time or cost limit was found for headless runs (8). Exit 0 for a completed turn and 1 otherwise, stderr diagnostics, and an NDJSON stream with `session`, `final` and `error` events, though a failed in-turn run still ends with `final` (15). `--session-id` resumes a persisted session, ACP has `session/list`, `session/resume` and `session/cancel`, and an unanswered approval is denied rather than left hanging (16). One-argument headless runs, ACP and a Python SDK, and the repository also holds a TypeScript SDK client (`@deepseek-ai/dsh-sdk-client`) that the Python guide mentions once. Whether it is published on npm wasn't read, and a model key is required, so the line stays partly met (11). 18 + 8 + 15 + 16 + 11 = 68.); 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).)
