DeepSeek Harness (DSH) follows the “everything is a plugin” philosophy, allowing developers to extend functionality through standalone bundles. guoxinshan/dsh-yzj is a plugin bundle that integrates Yunzhijia into DSH. It provides an yzj-cli bridge, 41 model-surface tools, and a floating workspace panel with drag-and-drop and @ mention chips.
Core Features¶
Bridge and Model-Surface Tools¶
The plugin communicates with the Yunzhijia system through an yzj-cli bridge and provides six-domain model-surface tools (including a write-confirmation flow).
IM Shell (Product Law v3.0)¶
This is the plugin’s core interaction layer. According to Product Law v3.0:
* Assistant definition: An assistant is a user-defined set of 1..N special direct chats (a built-in “Assistant”), not “one group, one bot.”
* Default surface: The default surface is IM (“Messages”), not a cage. The sidebar always retains the “Messages / Sessions” tab.
* Session state: Session state returns to the official local workbench (folder tree / session list / Chat + InputBar / trace / session log).
* Message state: In message state, users cannot see workspace / folder tree / New Session / DSH session id. IM only renders present bubbles produced by the model and existing yzj write-confirmation cards.
Group Chat Interaction¶
In group chat, @Assistant is not sent to Yunzhijia; instead, it is anchored under the replied msgId (visible only to you).
Installation and Activation¶
The installation commands are as follows:
pnpm dsh plugin --profile web add -w link:<本仓库路径>
dsh plugin --profile web add github:GuoxinShan/dsh-yzj#v0.1.0
Restart the GUI after installation. By default, the sidebar workspaces area is the IM inbox (“Messages”); switch to “Sessions” at the top to restore official DSH.
Typical Usage¶
- Send to assistant: After sending to the assistant, hidden session serial follow-ups occur;
presentbubbles + write-confirmation cards are displayed. - Group message send:
home-sendsends a group message as yourself (no confirmation card). - Reply to @assistant: Reply +
@assistant= local thread; it is not sent to Yunzhijia.
Package Structure and Notes¶
The plugin includes standalone bundles installed via dsh plugin --profile <name> add, without modifying the harness core.
The package structure is as follows:
* packages/bridge: @dsh-yzj/bridge → ctx.yzjBridge, a bounded subprocess channel.
* packages/tool-yzj: @dsh-yzj/tool-yzj, six-domain yzj_* tools + present.
* packages/ui-yzj: @dsh-yzj/ui-yzj, browser IM shell.
* packages/model-yzj: @dsh-yzj/model-yzj, plugin-level default model routing.
Notes:
* Todos and AI-driven progress have been removed from this public repository.
* yzj-cli 0.1.6 returns {success, identity, data}; do not assume a top-level openId.
* After UI changes, rebuild the bundle (it must be copied to the root lib/client.js, see pitfall-051) and restart the GUI.