dsh-acp
Manifest valid★ 5ACP server for DeepSeek Harness — bridges Zed and other IDEs to dsh agents
dsh-acp

An Agent Client Protocol (ACP) server for DeepSeek Harness (dsh) that lets Zed and other IDEs drive dsh agents over JSON-RPC 2.0 stdio.
Built on the official @deepseek-ai/dsh-acp skeleton as a dsh profile bundle over dsh-base, and extended with the editor experience of pi-acp.
Introduction
dsh-acp mounts an ACP server on dsh's stdin/stdout. Zed launches dsh --profile acp and speaks ACP JSON-RPC over stdio; the plugin translates session/* requests into dsh agent lifecycles. No dsh modification required.
Features
- Token & thinking streaming —
agent_message_chunk/agent_thought_chunk - Tool cards —
tool_call/tool_call_updatewith kind, file location and line - Structured diffs — edit/write hunks plus before/after snapshots
- Session history —
session/list·session/load·session/delete - Session selectors — write permission (3) · model · thinking strength
- Agent presets — deployment-wide preset selection via
DSH_ACP_PRESET: the built-instandard/minimalmodes (other modes need global mounting in the profile, see Configuration), plus any preset you author under$DSH_HOME/.agent-presets/ - Bash terminal — command output rendered as terminal content with exit code
- Context-usage ring —
usage_update(used / size) feeds the IDE's context indicator - Todo list — dsh's
todo_writesnapshots rendered as the IDE's plan checklist (planupdate), cleared when a new turn begins - Image understanding — ACP
imageprompt blocks (e.g. screenshots) admitted through dsh 0.1.1's durable attachment seam (dsh-attachment) and fed to the model asImageBlocks, with a capability advertisement that lets Zed send images - Slash commands — dsh's
/commands advertised viaavailable_commands_update, executed in the command plane (images handed to commands that accept them) - Ask the user — dsh's
ask_user_questiontool answered through ACP form elicitation (options, multi-select, free text), with a self-explaining fallback for clients without the elicitation capability
Installation
Prerequisites: Node.js ≥ 20, dsh (developed against dsh@0.1.1-rc.2), pnpm.
dsh plugin --profile acp add github:cnctem/dsh-acp
From source:
git clone https://github.com/cnctem/dsh-acp.git
dsh plugin --profile acp add ./dsh-acp
Configuration
- Model/provider defaults to dsh's default model; override via
DSH_ACP_PROVIDER/DSH_ACP_MODEL(or edit theacprow in$DSH_HOME/profiles/acp/cordis.patch.yml). - Agent preset via
DSH_ACP_PRESET— an optional field whose value directly names the preset mounted for every session: the value is the preset id, no roster constraint on your side. Unset or empty →standard; a value naming no existing preset fails session creation with an error. Valid ids are the shippedstandard/minimalpresets, plus any preset you author under$DSH_HOME/.agent-presets/<id>/(the user root is a preset root by default). - The
code(PTC) andcordis(creation) presets are not indsh-base. They need thecode-runtimeandcordis-host-runnerplugins installed globally (in the profile'scordis.patch.yml), after which you can pickcode/cordisviaDSH_ACP_PRESETlike any other preset. - API key reuses dsh credentials (
$DSH_HOME/.credentials.yamlorDEEPSEEK_API_KEY).
Integration
Add to Zed's settings.json:
{
"agent_servers": {
"dsh": {
"type": "custom",
"command": "dsh",
"args": ["--profile", "acp"],
"env": {}
}
}
}
Restart Zed and pick dsh. Fix a model or preset via env (DSH_ACP_PRESET directly names the preset to mount — empty → standard, unknown id → session error; standard / minimal work out of the box, and globally installed presets are supported too):
{
"agent_servers": {
"dsh-minimal": {
"type": "custom",
"command": "dsh",
"args": ["--profile", "acp"],
"env": { "DSH_ACP_PRESET": "minimal" }
}
}
}
Zed also supports multiple entries for the same acp, so different presets can coexist as separate entries in the "+" menu.
Acknowledgements
- DeepSeek Harness and its
@deepseek-ai/dsh-acpexample pi-acp— the reference for the richer editor experience- Agent Client Protocol and Zed
Compatibility
Versions
| Latest version | Published | Size |
|---|---|---|
| 0.1.6 | — | — |
| 0.1.7 | — | — |
| 0.1.8 | — | — |
| 0.1.9 | — | — |
| 0.1.10 | — | — |
| 0.1.11 | — | — |
| 0.1.12 | — | — |
| 0.1.13 | — | — |
| 0.1.14 | — | — |
| 0.1.15 | — | — |
| 0.1.16 | — | — |
| 0.1.17 | — | — |
| 0.1.18 | — | — |
| 0.1.19 | — | — |
| 0.1.20 | — | — |
| 0.1.21 | — | — |
| 0.1.22 | — | — |
| 0.1.23 | — | — |
| 0.1.24 | — | — |
| 0.1.25 | — | — |
Comments
Loading…
Similar plugins
by openma-ai
ACP server implementation for DeepSeek harness. dsh-acp
★ 17
↓ 1.6k/wk
NOASSERTION
TypeScript
Aug 24, 2026
dsh plugin --profile web add @openma/deepseek-harness-acpby dushaobindoudou
Agent Client Protocol (ACP) server plugin for the DeepSeek Harness (dsh) - drive dsh agents from Zed, any ACP v1 client, or the built-in web UI over stdio / HTTP+SSE, with sessions, jobs, goals, skill
★ 10
↓ 135/wk
MIT
TypeScript
Oct 14, 2026
dsh plugin --profile web add dsh-acp-serverby grunmin
Enhanced ACP (Agent Client Protocol) server for DeepSeek Harness (dsh) — drop-in bridge for the Zed editor: block-level streaming, usage/stat telemetry, model & reasoning-effort switching, permission
★ 7
↓ 801/wk
MIT
JavaScript
Oct 22, 2026
dsh plugin --profile web add dsh-acp-enhancedby SilenZerOrz
ACP adapter to drive DeepSeek Harness from Obsidian Agent Client (and other ACP clients): list, resume and fork sessions, run the harness, and archive conversations.
★ 4
↓ 374/wk
MIT
JavaScript
Oct 19, 2026
dsh plugin --profile web add obsidian-dsh-acpby AndPuQing
Extended Agent Client Protocol server bundle for DeepSeek Harness (dsh)
★ 0
TypeScript
Oct 17, 2026
dsh plugin --profile web add dsh-acp-plusby wangqingdhuo
Run opencode as an ACP subagent in DeepSeek Harness — delegation tool, settings page, run history.
★ 1
MIT
JavaScript
Oct 26, 2026
dsh plugin --profile web add dsh-opencode-acp