DeepSeek Harness (DSH) adopts the “everything is a plugin” architectural concept. Integrating external workflow tools (such as Trellis) into DSH usually requires manually filling in missing native capabilities to reach an experience on par with Codex or Claude Code. dsh-trellis is a plugin designed to connect Trellis workflows to DSH and close this experience gap by using DSH’s native capabilities.
Core Features¶
This plugin mainly provides the following capabilities:
- Per-turn workflow-state breadcrumb injection: At each
agent/pre-stepphase, it parses[workflow-state:*]blocks and active task states in the project’s.trellis/workflow.md, then injects the corresponding breadcrumb into the session. - Isolated native session context identity: It generates a managed
DSH_TRELLIS_CONTEXT_IDfrom DSH’s native session header, ensuring thattask.pycan resolve the correct session-level active-task pointer and correctly forwards identity to subagents. - Native subagent synchronization: It supports DSH’s native continuable background subagents. By using
trellis_waitto listen forsubagent/endevents, it returns the final outcome based on lifecycle metadata, avoiding misclassification oferror,max-tokens, etc. as success. /trelliscommands: Provides the/trellis-statuscommand (view active tasks and git status) and the/trellis-finishcommand (read-only checks and a safe wrap-up checklist).- Web configuration menu: In the DSH Web interface, under “Settings → Plugins → Plugin Configuration,” it provides a visual Trellis workflow card, supporting staged configuration editing with changes taking effect in real time.
Installation¶
After the plugin is installed to a specified profile, it takes effect the next time that profile is started. Each profile that is actually used must be installed separately.
# Install to the web profile
dsh plugin --profile web add dsh-trellis
# Install to the headless profile
dsh plugin --profile headless add dsh-trellis
# Install to the tui profile (if used)
dsh plugin --profile tui add dsh-trellis
To upgrade to the latest version on npm:
dsh plugin --profile web update dsh-trellis
dsh plugin --profile headless update dsh-trellis
dsh plugin --profile tui update dsh-trellis
Configuration and Usage¶
Web Profile Configuration¶
For DSH Web profiles that support the Settings provider, you can edit the configuration directly under “Settings → Plugins → Plugin Configuration → Trellis Workflow.” After saving, the content is written to settings.yaml, takes precedence over the profile composition layer, and takes effect immediately.
Headless / Other Profile Configuration¶
For Headless profiles or cases where declarative deployment defaults are required, you can override the configuration in the profile’s cordis.patch.yml. In the Web interface, “Restore configuration file values” clears user-layer fields and re-inherits the values defined here.
- id: dsh-trellis
config:
maxBytes: 4096 # Byte budget for breadcrumb injection (0 = disables injection)
skipKeyword: no-trellis # A standalone word in the prompt can skip injection for the current turn (empty = disabled)
pythonCmd: "" # Empty = automatically use the system default Python
commandsEnabled: true
Typical Usage¶
- Check status: In the main session, use
/trellis-statusto view the current active task and git status. - Synchronize subagents: When using background subagents (
run_in_background: true), the main session can continue with independent work first. When you need to merge the results, calltrellis_wait <subagent_id>to wait for native native completion events. - Safe completion: Use
/trellis-finishfor read-only checks and a wrap-up checklist. The actual session wrap-up is performed by the skill-surface/trellis-finish-workcommand.
Notes and Compatibility¶
- Optional companion plugin:
dsh-trellisis an optional companion plugin for adapting Trellis to DSH and is not a prerequisite for usingtrellis init --dsh. - Dependency requirements: The plugin requires the profile to provide the
sessionProjectionsservice. If the profile has not assembled this service, load@deepseek-ai/dsh-session-projectionfirst. - Version compatibility: The plugin depends on a specific DSH version range (peerDependencies cover
0.1.0-rc.6+through0.1.5-alpha.1+). The development baseline is pinned to0.1.5-rc.2. - Session isolation: In Headless mode, each
dsh --profile headlessinvocation starts a new DSH session. If the active-task pointer must be retained across turns, keep the same session. - License: MIT License.
Summary¶
dsh-trellis provides DeepSeek Harness users with a Trellis workflow experience on par with Codex/Claude Code through native session identity management, subagent synchronization, and a Web configuration menu. It is a practical tool for connecting the DSH ecosystem with Trellis workflow management.
- GitHub repository: https://github.com/SajoLuo/dsh-trellis
- Plugin directory: https://www.skillhub.cn/plugins/SajoLuo/dsh-trellis