Introduction¶
DeepSeek Harness (dsh) typically delivers agent capabilities as plugins and processes. For developers already using dsh, the common need isn’t to start a new agent, but to connect existing dsh agents to external clients, such as Zed or other clients supporting the Agent Client Protocol (ACP).
The dsh-acp-server solves this problem: it runs dsh as an ACP server, allowing external clients to create sessions, send prompts, receive streaming output, view plan updates, tool calls, and approval requests. Below, we introduce its capabilities, installation methods, and several typical use cases.
What It Is¶
dsh-acp-server is a DSH plugin maintained by dushaobindoudou, licensed under MIT.
It exposes a DSH agent as an ACP server, enabling control of the dsh agent from Zed and any ACP client. It can run as a standalone process or coexist with dsh web in the same process and port, providing both GUI and ACP interfaces.
Core Capabilities¶
The capabilities listed below are derived from the plugin description and verified ACP method support.
Sessions and Messages¶
Common ACP methods include:
initialize
session/new
session/prompt
session/list
session/resume
session/load
session/set_mode
available_commands_update
session/request_permission
session/cancel
session/close
Corresponding capabilities:
initialize: Declares full capabilities, includingloadSession,promptCapabilities.image, andsessionCapabilities.list/resume/close.session/new: Creates a durabledshagent and announces modes and slash commands.session/prompt: Supports streamingagent_message_chunk/agent_thought_chunk,planupdates, full tool-call lifecycle, image blocks, and/commandrouting.session/list,session/resume,session/load: Handles persisted and live sessions.session/set_mode: Switches betweendefaultandplanmodes, pushingcurrent_mode_update.available_commands_update: Announces thedshcommand registry per session, refreshing each turn.session/request_permission: Bridgesdshapproval decisions to the client.session/cancel: Aborts the current turn, ending the prompt withcancelled.session/close: Cancels, flushes, and disposes the agent.
Runtime Forms¶
dsh-acp-server supports two common forms:
dsh-acp-server
dsh web
dsh-acp-server: Can run as a standalone ACP server on stdio or provide a remote HTTP+SSE endpoint viaserve.dsh web: Can provide both GUI and ACP in a single process and port.
Additionally, dsh/* vendor methods expose read-only data for sessions, jobs, goals, skills, and the agent tree.
Installation and Enabling¶
The runtime environment requires Node.js >= 22 and the dsh CLI installed.
First, install dsh:
npm i -g @deepseek-ai/dsh
Then add the plugin to the acp profile:
dsh plugin --profile acp add dsh-acp-server
If installing from source, the prepare script may trigger a build of lib/. In environments with pnpm >= 10, you need to allow builds before re-executing add. The configuration is as follows:
allowBuilds:
dsh-acp-server: true
To avoid build authorization, consider using the prebuilt npm package or tarball installation.
Using in Zed¶
dsh-acp-server can start as a stdio ACP server:
dsh-acp-server
Configure agent_servers in Zed’s Settings, for example:
{
"agent_servers": {
"dsh": {
"type": "custom",
"command": "dsh-acp-server",
"args": []
}
}
}
After configuration, Zed can drive this dsh agent via ACP.
Providing GUI and ACP Simultaneously with dsh web¶
If you want GUI and ACP to start in the same process, use dsh web.
First, run the setup script:
node bin/setup-webacp.mjs
Then start:
dsh web
dsh web will provide the GUI at http://127.0.0.1:3080 and the ACP endpoint at /acp.
You can access this ACP endpoint using the following example script:
node bin/acp-chat.mjs --url http://127.0.0.1:3080
Providing Remote ACP with serve¶
If you need to access from a remote machine, shared agent scenarios, or via an HTTP client, use serve to start a long-lived HTTP+SSE endpoint.
Start locally:
dsh --profile acp serve --port 7800
serve binds to 127.0.0.1 by default. For remote access, you must explicitly configure the host and token:
dsh --profile acp serve --host 0.0.0.0 --port 7800 --token s3cret
HTTP routes include:
POST /acp
GET /acp/stream
DELETE /acp
GET /acp/healthz
dsh/* Read-Only Extensions¶
The ACP standard primarily describes the protocol capabilities of a session. Host-side data surrounding the session, such as sessions, jobs, goals, skills, and the agent tree, can be exposed via dsh/* vendor methods.
These methods are read-only and suitable for viewing current DSH host-side data for sessions, tasks, goals, skills, and the agent tree.
Use Cases and Notes¶
This plugin is suitable for the following scenarios:
- You are already using
dshand want to drive thedshagent from Zed or other ACP clients. - You want your editor to receive streaming output, plan updates, tool calls, and approval requests.
- You want to host
dsh web’s GUI and ACP in the same process and port. - You need a remote HTTP+SSE ACP endpoint.
Before use, note the following:
- The plugin runs with the current
dshprocess permissions; review the source code and license before installation. - Requires Node.js
>= 22and thedshCLI. servebinds to the local address by default; remote access requires explicit configuration of host and token.session/forkand elicitation are currently on the roadmap and remain UNSTABLE in the ACP SDK.dsh/*vendor methods are read-only interfaces.
Links¶
Directory page:
https://www.skillhub.cn/plugins/dushaobindoudou/dsh-acp
GitHub:
https://github.com/dushaobindoudou/dsh-acp