@openma/deepseek-harness-acp

notifytested: passnpmApache-2.0

ACP profile plugin and standalone stdio server for using the full DSH agent from Zed and other ACP clients while sharing DSH credentials and sessions.

下载量 / Downloads
8,014
依赖体积 / node_modules
360.46 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add @openma/deepseek-harness-acp

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

<p align="center">

<img src="assets/acp-x-deepseek.svg" width="520" alt="Agent Client Protocol × DeepSeek Harness" />

</p>

<h1 align="center">deepseek-harness-acp</h1>

<p align="center">

Use <a href="https://github.com/deepseek-ai/deepseek-harness">DeepSeek Harness</a> from

<a href="https://agentclientprotocol.com/">Agent Client Protocol</a> clients such as

<a href="https://zed.dev">Zed</a> and

<a href="https://github.com/openma-ai/backchat">Backchat</a>.

</p>

<p align="center">

<a href="https://www.npmjs.com/package/@openma/deepseek-harness-acp"><img src="https://img.shields.io/npm/v/%40openma%2Fdeepseek-harness-acp?logo=npm&color=cb3837" alt="npm version" /></a>

<a href="https://www.npmjs.com/package/@openma/deepseek-harness-acp"><img src="https://img.shields.io/npm/dm/%40openma%2Fdeepseek-harness-acp" alt="npm downloads" /></a>

<a href="https://github.com/openma-ai/deepseek-harness-acp/actions/workflows/ci.yml"><img src="https://github.com/openma-ai/deepseek-harness-acp/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>

<a href="https://agentclientprotocol.com/"><img src="https://img.shields.io/badge/ACP-protocol%20v1-6f42c1" alt="ACP protocol v1" /></a>

<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue" alt="Apache-2.0" /></a>

<img src="https://img.shields.io/node/v/%40openma%2Fdeepseek-harness-acp" alt="node >= 22.15" />

</p>


The adapter composes the harness in-process and maps its session-event log

onto the full ACP vocabulary: streamed text and reasoning, tool calls with

diffs and display terminals, plans, permission requests, session modes,

config options, slash commands, skills, and MCP servers. Credentials never

touch your editor config — it reuses the key you saved in the dsh Web UI, or

dsh-acp login saves one to the same store.

One package, standalone or plugin

· A · dsh profile plugin (recommended) · B · Standalone server

Best for · Normal installation and upgrades · Connecting an ACP client without managing a dsh profile

Install · dsh plugin --profile acp add @openma/deepseek-harness-acp@latest · npm i -g @openma/deepseek-harness-acp

Zed runs · dsh --profile acp · dsh-acp

Harness · The dsh that owns the profile · Your installed dsh, then the package's locked private runtime

Composition · dsh-base + this bundle + your profile's own patches · dsh-base + this bundle (profile machinery booted in-process)

Both shapes share $DSH_HOME: the same credential store, settings, presets,

and session logs as dsh web — conversations started in the Web UI can be

listed and loaded from the editor.

Other dsh surfaces can mount the transport-independent

@openma/deepseek-harness-acp/plugin on their Base Host tree and own the

transport adapter. The TUI profile uses this path: it starts a separate TUI

Client process and connects ACP over that process's standard stdin/stdout; it

does not start dsh-acp or use an in-process Client stream.

The package is therefore not only a CLI wrapper. It is also the ACP surface

plugin used by other dsh applications: one Host composition can expose the

same sessions, tools, presets, skills, and persistence through a transport

chosen by the surface.

DSH compatibility

This release supports @deepseek-ai/dsh >=0.1.7-rc.2 — a minimum-version

floor declared in engines.dsh (the field dsh's own plugin loader checks, with

prereleases included), never an exact-version list. It is deliberately not a

@deepseek-ai/dsh peer dependency: npm and pnpm match peer ranges without

prereleases, so a peer floor would reject every dsh prerelease. A newer dsh is

always attempted: API differences between dsh generations are feature-detected

where they are used (for example dsh 0.2.1's subagents.drainDescendants

versus 0.2.0's drainContinuableDescendants), and a dsh newer than the newest

tested version (0.2.1-rc.2) only logs a warning. Only a dsh below the floor

is refused. CI exercises the tested profile matrix (runtime/compatibility.json)

plus the next dist-tag. The bundled runtime is

DSH 0.2.0-rc.2, including the upstream cross-process session write lock.

Runtime selection has exactly two rules (Martty issue #157):

  • Standalone (dsh-acp bin): the packaged runtime is always used —

ambient installs in the invoking directory, on PATH, or in global npm are

never consulted. An explicit --dsh-path/DSH_PATH/DSH_ACP_HOST

(or the literal value bundled) selects an installation instead, and is

refused with a message naming the version found, its source, and the

supported range when it falls outside it.

  • Plugin mode (dsh plugin add, Martty launched as a dsh plugin): the

hosting dsh is the runtime, checked against the same range at mount time;

an out-of-range host fails with the same refusal message.

The resolved runtime is always reported: the launcher logs

harness host: @deepseek-ai/dsh <version> via <source> to stderr, and the

initialize response carries agentCapabilities._meta.dsh.runtime

({base, version, source}) for clients to display.

A competing load/resume returns a standard JSON-RPC error. Closing the

session or exiting the owner process allows another process to resume it.

Every process writing shared sessions must use a fixed backend; older hosts

do not participate in this lock.

Restoring historical sessions uses the host's V3 migration, which preserves

the original log. Upgraded sessions cannot be read by older hosts.

Multi-root workspaces remain unsupported.

A · dsh profile plugin (recommended)

npm install -g @deepseek-ai/dsh
dsh web                                                    # save your API key once
dsh plugin --profile acp add @openma/deepseek-harness-acp@latest
// Zed settings.json
{
  "agent_servers": {
    "DeepSeek Harness": { "command": "dsh", "args": ["--profile", "acp"] }
  }
}

The plugin command creates `$DSH_HOME/profi

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::50,最后更新 2026-10-26

Links

GitHub · Homepage · npm

Same category