Introduction¶
DeepSeek Harness (DSH) supports capability extension through plugins. The official dsh-subagent-codex plugin implements a “true gateway” architecture, allowing local command-line programs to connect directly to DSH sessions. dsh-subagent-pi-plus is a port based on this architecture. It switches the direct-connection proxy from Codex to Pi, making Pi a first-class citizen in DSH. It provides a single Pi subagent provider and true gateway functionality through the Pi RPC protocol, suitable for scenarios that require running Pi sessions locally.
Plugin Overview¶
This plugin is maintained by february2015 and is an open-source workflow plugin (MIT License). It is forked from the official @deepseek-ai/dsh-subagent-codex plugin. It only changes the direct-connection proxy to Pi, while preserving the complete “true gateway” core logic.
Core Features¶
-
True Gateway Direct Connection
Bind the current DSH session to a persistent Pi session through a local command. DSH no longer runs an intermediate model and only works as a message pass-through channel. -
Continuous Conversation: Queue + Direct Insertion
When Pi is busy, new messages automatically enter the queue and are executed in order. You can view, promote (bypass the queue), insert, edit, or delete messages in the queue through a floating panel. -
Real-Time Intermediate Output
Pi execution progress (message increments, tool calls, and status events) is displayed in the DSH session with near real-time latency. By default, it is only displayed and not included in the model context. -
Status Display
After a successful binding, the session title bar displays aPI-xxxxbadge (status dot + the first four characters of the session ID), and the input field displays a status line. Unbound sessions keep the interface clean. -
Image/Attachment Pass-through
Supports pasting or uploading images directly. Images are passed to Pi as-is. Vision understanding relies on the TeamAI skillocgw-vision; this plugin itself does not have vision understanding capabilities. -
Delegation and Gateway Coexistence
A single DSH session can use both model-triggered one-shot Pi delegation and a user-mounted gateway session simultaneously, without interfering with each other.
Installation and Enabling¶
Before installation, ensure that the pi command-line tool is installed and configured on the current machine (including login and model settings).
1. Install the Plugin¶
Use the DSH plugin management command to add a local path:
dsh plugin --profile <name> add /path/to/dsh-subagent-pi
2. Start DSH¶
After installation, start DSH with the corresponding profile:
dsh --profile <name>
Typical Usage¶
- Open any DSH session (it is recommended that the cwd be your project directory).
- Enter
/pi-lock. After successful binding, aPI-xxxxbadge appears in the title bar. Subsequent input is sent directly to Pi. - When Pi is processing messages, subsequent input is automatically queued. Use the floating panel to view the queue; you can manually promote message priority or directly insert new content.
- Enter
/pi-unlockto disconnect. Pi session data is retained, and you can rebind by specifying a session ID with/pi-lock <piSessionId>.
Notes¶
- npm Package Name Difference: The npm package name
dsh-subagent-pibelongs to an earlier third-party project and is not this plugin. The npm package name for this plugin isdsh-subagent-pi-plus. - Prerequisite Dependency: You must install and configure the
pitool locally. - Binding Limitation: A single Pi session can be bound to only one DSH session.
- Vision Capability: The plugin does not directly provide vision understanding capabilities. After image pass-through, external skills (such as
ocgw-vision) handle the processing. - Unbound State: Unbound sessions do not display any content and simply run as regular DSH sessions.
Conclusion¶
This plugin provides a standardized direct-connection solution for using Pi in DSH, resolving the fragmentation between remote invocation and local orchestration. For more implementation details, consult the GitHub repository documentation.