Back to home

cnctem

dsh-acp

ACP server for DeepSeek Harness — bridges Zed and other IDEs to dsh agents

Stars
1
Language
JavaScript
Created
Aug 15, 2026
Updated
Aug 16, 2026

Introduction

dsh-acp

简体中文 · 技术文档 / Technical notes

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 streamingagent_message_chunk / agent_thought_chunk
  • Tool cardstool_call / tool_call_update with kind, file location and line
  • Structured diffs — edit/write hunks plus before/after snapshots
  • Session historysession/list · session/load · session/delete
  • Session selectors — write permission (3) · model · thinking strength
  • Agent presets — 4 modes injected as a deployment field (DSH_ACP_PRESET)
  • Bash terminal — command output rendered as terminal content with exit code
  • Context-usage ringusage_update (used / size) feeds the IDE's context indicator
  • Slash commands — dsh's / commands advertised via available_commands_update
  • Ask the user — dsh's ask_user_question tool 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.0-rc.6), 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 the acp row in $DSH_HOME/profiles/acp/cordis.patch.yml).
  • Agent preset via DSH_ACP_PRESET; empty → standard. Values: standard / code (PTC) / minimal / cordis.
  • API key reuses dsh credentials ($DSH_HOME/.credentials.yaml or DEEPSEEK_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:

{
  "agent_servers": {
    "dsh-code": {
      "type": "custom",
      "command": "dsh",
      "args": ["--profile", "acp"],
      "env": { "DSH_ACP_PRESET": "code" }
    }
  }
}

Zed also supports multiple entries for the same acp, so different presets can coexist as separate entries in the "+" menu.

Acknowledgements