deepseek-harness-acp¶
⭐ 12 · ✅ active · integration · ⬆️ +2 recently
| Type | integration | Category | ACP |
| Stars | ⭐ 12 | Status | ✅ active |
| Author | openma-ai | Updated | 2026-08-21 |
One-liner¶
ACP server implementation for DeepSeek Harness: exposes the full DSH agent to ACP clients while reusing credentials and sessions.
About¶
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.
✨ Key Features¶
- Streaming — assistant text and reasoning deltas; assembled-message fallback.
- Images —
promptCapabilities.imageis advertised when the composition mountsctx.attachments(dsh-base does). ACPimageblocks are validated, stored wi - Tool calls — ACP kinds, human titles, file locations, real diffs from fs-tool hunks, raw input/output; command output on a display terminal when the cli
- Permission presets as session modes —
read-only/workspace-write/danger-full-access, each a named{sandbox, approval}pair recorded as a durable - Agent composition — when the profile mounts
agentPresets, an uncategorized config optionid: "agent"lists the roster (standard/code/minimal/ - Live model catalog — providers × models from the running composition (third-party providers added in the Web UI appear immediately), plus reasoning-effort s
- Slash commands — adapter built-ins (
/status,/model) plus the harness command registry (/compact,/goal,/permission,/plan, …) executed without - Plans & usage —
todo_writesnapshots as ACP plans; token accounting asusage_updateand per-turn usage.
📦 Install¶
npm install -g @deepseek-ai/dsh
dsh web # save your API key once
dsh plugin --profile acp add @openma/deepseek-harness-acp@latest
🚀 Quick Start¶
// Zed settings.json
{
"agent_servers": {
"DeepSeek Harness": { "command": "dsh", "args": ["--profile", "acp"] }
}
}
📚 Learn more¶
Configuration
Flags win over environment variables, which win over defaults. All optional — with no flags, sessions follow your product defaults (settings.yaml). Subcommands: dsh-acp login [api-key] (interactive when omitted; input never echoes), dsh-acp update (self-update via npm).
Architecture
ACP client (Zed, …) │ ACP JSON-RPC over stdio ▼ dsh-acp ├─ src/bin.ts selects one DSH tree before Host imports evaluate ├─ src/profile-boot.ts boots the harness's own profile machinery │ (dsh-base + this bundle + $DSH_HOME layers) ├─ src/harness.ts host discovery (DSH_PATH → cwd → PATH → npm -g → bundled runtime) └─ src/bridge/ the ACP bridge (a cordis plugin) ├─ index.ts sessions, prompts, cancel