BeAChanger
dsh-openclaw-acp
DeepSeek Harness bundle for OpenClaw and WeChat over ACP
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 13, 2026
- Updated
- Aug 14, 2026
Introduction
dsh-openclaw-acp
A native DeepSeek Harness bundle that exposes a Harness profile to OpenClaw through the official Agent Client Protocol (ACP) transport.
The integration deliberately has three owners:
- DeepSeek Harness owns the agent, model, tools, workspace sandbox, and session log.
- OpenClaw ACPX owns ACP process lifecycle, dispatch, and conversation routing.
- The OpenClaw channel plugin owns WeChat or any other messaging transport.
This package does not embed a WeChat SDK and does not duplicate Harness. It installs as a dsh.bundle and mounts the official @deepseek-ai/dsh-acp plugin.
Prerequisites
- pnpm 10 and a Node.js release supported by OpenClaw; stable OpenClaw
2026.7.1-2requires Node.js 22.22.3+, 24.15.0+, or 25.9.0+ - DeepSeek Harness
0.1.0-rc.6 - OpenClaw
2026.7.1-2or newer with the official@openclaw/acpxplugin DEEPSEEK_API_KEYavailable to the OpenClaw Gateway process- A configured OpenClaw channel, such as Tencent's
@tencent-weixin/openclaw-weixin
1. Install the Harness bundle
npm install -g @deepseek-ai/dsh@0.1.0-rc.6
dsh plugin --profile openclaw add https://github.com/BeAChanger/dsh-openclaw-acp/releases/download/v0.1.3/dsh-openclaw-acp-0.1.3.tgz
dsh --profile openclaw --dump-config
The command uses the prebuilt release artifact, so installation does not execute a repository build. The release page publishes a SHA-256 checksum asset.
The default route is deepseek-official/deepseek-v4-flash, with thinking enabled, max reasoning effort, a 1,000,000-token context window, and a 384,000-token output cap. Override the model in the Gateway environment when needed:
export DSH_OPENCLAW_PROVIDER=deepseek-official
export DSH_OPENCLAW_MODEL=deepseek-v4-pro
2. Register Harness in OpenClaw
Install and enable OpenClaw's official ACP runtime:
openclaw plugins install @openclaw/acpx@2026.7.1
openclaw config set plugins.entries.acpx.enabled true
For WeChat, install the Tencent channel version verified with this stack. The final login command displays a QR code and must be completed by the operator:
openclaw plugins install @tencent-weixin/openclaw-weixin@2.4.6
openclaw config set plugins.entries.openclaw-weixin.enabled true
openclaw channels login --channel openclaw-weixin
Add this configuration to the OpenClaw config:
{
acp: {
enabled: true,
backend: "acpx",
defaultAgent: "deepseek-harness",
allowedAgents: ["deepseek-harness"]
},
plugins: {
entries: {
acpx: {
enabled: true,
config: {
agents: {
"deepseek-harness": {
command: "dsh",
args: ["--profile", "openclaw"]
}
}
}
},
"openclaw-weixin": {
enabled: true
}
}
}
}
Restart the Gateway, then verify the boundary before testing a channel:
/acp doctor
/acp spawn deepseek-harness --cwd /absolute/path/to/workspace
On channels that support conversation binding, add --bind here. If a channel does not advertise ACP binding, use the unbound one-shot flow and let OpenClaw relay completion to the parent conversation.
3. Call it from WeChat
Once a WeChat channel is connected to the same Gateway, the message path is:
WeChat -> OpenClaw channel -> ACPX -> dsh --profile openclaw -> DeepSeek Harness
For multiple logged-in WeChat accounts, isolate direct-message sessions by account, channel, and sender:
openclaw config set session.dmScope per-account-channel-peer
No WeChat token or user identifier crosses the ACP boundary. OpenClaw resolves the channel sender and session; Harness receives only the selected workspace and prompt content.
Security defaults
- OpenClaw's sandbox does not wrap external ACP processes. Harness enforces its own boundary through
DSH_PERMISSION_MODE. - Keep the Harness default
workspace-writemode unless the deployment explicitly requires more access. - Do not enable OpenClaw's ACPX MCP tool bridges for this target yet. Harness ACP
0.1.0-rc.6rejects non-emptymcpServers. - Run the Gateway and Harness under a dedicated OS account and restrict the allowed workspace roots.
- Treat
danger-full-accessas a break-glass mode, not a production default.
Known limitations
- Harness ACP currently supports new sessions only; it does not advertise load, resume, fork, or session listing.
- It returns committed assistant text, not live reasoning or tool events.
- Channel-level persistent binding depends on the OpenClaw channel adapter. Use one-shot parent relay where binding is unavailable.
- OpenClaw plugin tools are not injected into Harness because the current Harness ACP transport rejects non-empty
mcpServers.
Verification
npm install
npm test
npm run test:acp
npm run pack:check
test:acp installs the bundle into an isolated profile and runs two protocol checks: a direct real-dsh ACP negotiation with JSON-RPC-only stdout, then a custom-agent launch through the published acpx@0.11.2 runtime used by OpenClaw's official ACPX plugin. Both checks complete initialize and session/new. They do not call a model and do not require a real API key.
License
MIT