@xiaoxie-ide/dsh-devflow
Manifest validDevFlow multi-agent workflow orchestration plugin for DeepSeek Harness
DevFlow
Version 1.5.1 · 2026-10-11
A multi-agent workflow orchestration plugin for DeepSeek Harness (dsh).
DevFlow turns a dsh session into a small delivery organisation with a visible control plane:
- Roles — a Commander (总指挥) that plans and dispatches, fixed employees (architect / backend / frontend / code-auditor), and temporary sub-agents created per task.
- State machine — dispatch → execution → audit → rework → acceptance. Every step is a persisted business entity under
<workspace>/.devflow, with an append-only journal. - Dispatch plane —
devflow_*tools (task / scope / assignment / dispatch / transition / roster), concurrency-capped at 5 with queueing, and a dispatch diagnostic for every hand-off. - Visual panel — a canvas with one edge per dispatch, a roster bar (
fixed / temporary, liveconcurrency N/5), and a per-node inspector, mounted in the dsh right sidebar.
Requirements
| Node | ^22.19.0 or >=24 |
| pnpm | any recent version |
| dsh | installed, with a profile you can edit (e.g. ~/.dsh/profiles/web) · target range >=0.1.7-rc.1 <0.3.0 (dsh 0.1.5 is no longer supported) |
| OS | Windows is the tested platform (the preset wires tool-pwsh on win32 / tool-bash elsewhere) |
Install (one command)
Windows (PowerShell) — copy this single line:
git clone https://github.com/BinXie-lixiangdehua/dsh-devflow.git "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow"; & "$env:USERPROFILE\.dsh\local-plugins\dsh-devflow\install.cmd"
Or, if you already have the folder, install.cmd on its own (double-clickable — it just calls install.ps1).
Useful switches:
# see what would change, touch nothing
.\install.ps1 -DryRun
# install into a different dsh home / profile, or skip the preset step
.\install.ps1 -DshHome 'C:\Users\me\.dsh' -Profile 'web'
.\install.ps1 -SkipPreset
# install a specific tag/branch
.\install.ps1 -Ref 'v1.5.1'
What the installer actually changes
It touches exactly five things, and backs up every file it rewrites:
-
Puts the plugin on disk — clones (or copies) into
~/.dsh/local-plugins/dsh-devflowby default. -
Installs the plugin's own dependencies — runs
pnpm installinside the plugin directory.lib/index.jsis ESM and every@deepseek-ai/*package is a peer dependency, so installing only the profile leaves them unresolvable and the host fails to import the plugin (ERR_MODULE_NOT_FOUND: Cannot find package '@deepseek-ai/cordis') while older hosts report only a barefailed to import. This step runs before the profile is touched: a bad install fails loudly here instead of leaving a rewritten profile behind. Pass-SkipPluginDepsto skip it deliberately. -
Registers the profile bundle — in
~/.dsh/profiles/<profile>/package.json: adds"@xiaoxie-ide/dsh-devflow": "link:<install-dir>"todependenciesand the package name todsh.profile.bundles. The original file is saved aspackage.json.bak-devflow-<timestamp>. -
Links dependencies — runs
pnpm installinside the profile so thelink:symlink really exists. -
Deploys the agent preset — both forms, because the two dsh generations read different ones —
- legacy (dsh
0.1.5): copiespresets/devflow/{agent.cordis.yml, preset.yml}to~/.dsh/.agent-presets/devflow/, rewriting the activation row from the checkout-relative path to an absolutefile:///.../lib/host/preset-activation.js?rev=<sha>URL; - declaration (dsh
0.1.7+): rewrites the path in this plugin's owncordis.patch.ymlpreset-devflowdeclaration row to the same absolute URL and flips that row'sdisabledtofalse. The row shipsdisabled: trueon purpose:0.1.5's loader hard-fails on a loader entry it cannot resolve (failed to import loader entry preset-devflow (@deepseek-ai/dsh-agent-preset): Cannot find package …), so only a disabled row can ship in one artifact that serves both generations.0.1.7+no longer reads~/.dsh/.agent-presetsat all, which is why the installer enables the declaration for it.
The target version is decided by detection, in this order:
-DshVersion→ the running dsh host (its process working directory is read; no admin rights, no unsigned binaries — filtered byDSH_HOME) → thedshcommand onPATH→ the profile's@deepseek-ai/dshsymlink. It always prints the detection source path and warns when the profile's symlink and the running host disagree;-PresetDeclaration on|offoverrides.-DryRunwrites nothing (it reports which files it would touch). - legacy (dsh
Then restart dsh, open a session, and pick the DevFlow preset. That is the whole install.
Why the
?rev=token: a standing mount re-imports a row only when its stamp changes, and an unchanged URL is served from the ESM module cache. Bumpingrevafter a rebuild is what lets the running host pick up a newlib/without a restart.
Manual install
If you prefer doing it by hand:
# 1. get the code where you want it
git clone https://github.com/BinXie-lixiangdehua/dsh-devflow.git D:\plugins\dsh-devflow
# 2. register it in the profile (edit ~/.dsh/profiles/web/package.json)
# dependencies: "@xiaoxie-ide/dsh-devflow": "link:D:\\plugins\\dsh-devflow"
# dsh.profile.bundles: add "@xiaoxie-ide/dsh-devflow"
# 3. materialise the link
pnpm install --dir "$env:USERPROFILE\.dsh\profiles\web"
# 4. deploy the preset, pointing row 1 at the checkout you just cloned
# copy presets\devflow\*.yml -> ~/.dsh/.agent-presets/devflow/
# in agent.cordis.yml replace: ../../lib/host/preset-activation.js
# with: 'file:///D:/plugins/dsh-devflow/lib/host/preset-activation.js?rev=local'
Build from source
lib/ is committed on purpose so that installing needs no toolchain. If you change src/, rebuild and re-commit the artefacts:
pnpm install
pnpm typecheck # tsc, both projects
pnpm build # tsc + tsdown -> lib/index.js, lib/client.js
pnpm check # node --check on both bundles
pnpm test # vitest
Gate order matters: typecheck → build → check → test (check inspects lib/, so running it before build checks a stale bundle).
After a rebuild, bump the ?rev= token in the deployed preset, or restart dsh, to make the host load the new module.
Uninstall
- Remove
~/.dsh/.agent-presets/devflow/. - Undo step 2 above: drop the dependency line and the
dsh.profile.bundlesentry (or restorepackage.json.bak-devflow-<timestamp>). pnpm installin the profile again, then delete the plugin folder.
.devflow directories live inside your project workspaces, not in this repository. They are your project state — remove them yourself if you want a clean slate.
Layout
src/host/ plugin host plane: tools, state machine, storage, journal, guards
src/client/ the panel: canvas, projection, roster, sidebar slot
presets/devflow/ the dsh agent preset (activation row + capability rows)
tests/ vitest suites (unit + guard/isolation)
lib/ built bundles — committed for zero-build installs
cordis.patch.yml the dsh bundle patch
install.ps1/.cmd the one-command installer described above
Versioning
Releases follow semver. Every published snapshot gets an annotated tag (v1.1.0, v1.1.1, …) and the version field in package.json matches that tag, so git checkout v1.1.0 and a pinned install both mean the same thing.
License
MIT — see LICENSE.
Comments
Loading…
From the same category
by ccch1mneyyy
DSH 官方公众号收录的 TUI 补位插件:Claude Code 风,鲸鱼顶栏/实时状态/流式思考/双击 Esc 回滚/上下文进度+TPS。npm 一键装。 DSH official WeChat featured TUI plugin — Claude Code style: whale bar, live status, streaming thoughts, double-Esc rol
★ 4.6k
↓ 11.6k/wk
MIT
TypeScript
Oct 14, 2026
dsh plugin --profile terminal add @deepseek-harness-tui/dsh-tuiby strukto-ai
The World's First Virtual Terminal for AI Agents
★ 3.7k
↓ 374/wk
Apache-2.0
TypeScript
Oct 14, 2026
dsh plugin --profile agent add @struktoai/mirage-dshby bowenliang123
The best DeepSeek Harness plugin for context insight and management, with context dashboard / browser / sidebar and context command, for context statistics, composition, breakdown, evolution details,
★ 2.1k
↓ 44k/wk
Apache-2.0
TypeScript
Oct 13, 2026
dsh plugin --profile web add dsh-contextby huiliyi37
官方 DeepSeek Harness 的交互式终端 UI 插件:自研 ANSI 极简交互渲染、流式 Markdown/工具卡、16+ 主题、slash 命令与选择器、输入历史与本地偏好持久化、LSP 诊断、memory记忆,很丝滑的开发体验。
★ 285
↓ 486/wk
Apache-2.0
TypeScript
Sep 30, 2026
dsh plugin --profile terminal add @huiliyi37/dsh-tianshu-tuiby Hilbert-beinghappy
面向 DeepSeek Harness 的 Claude Code 风格终端界面,支持 Windows、macOS 与 Linux,兼容透明终端、VS Code 主题和自定义配色。
★ 196
↓ 108/wk
MIT
TypeScript
Oct 13, 2026
dsh plugin --profile web add seekttyby T-Auto
deepseek-harness Plugin Access and Implementation Standards / deepseek-harness交互生态插件规范与实施标准
★ 83
MIT
JavaScript
Oct 10, 2026