DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Task Worktree — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-task-worktree

Task Worktree

为 DeepSeek Harness 提供完整的 Git worktree 支持:按任务划分的隔离 worktree、按仓库管理的清单、工作区注册、带回主分支、直接提交以及持久化状态。参考:Qoder / Codex / Claude Code worktrees。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-task-worktree@0.4.2
README兼容性版本

兼容性与来源证明

Task Worktree 以 dsh-task-worktree 发布,当前版本为 0.4.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/9/20

版本

0.4.2stable
2026/9/8
0.4.1stable
2026/8/24
0.4.0stable
2026/8/21
查看其余 8 个版本收起版本
0.3.3stable
2026/8/20
0.3.2stable
2026/8/18
0.3.1stable
2026/8/18
0.3.0stable
2026/8/18
0.2.2stable
2026/8/18
0.2.1stable
2026/8/18
0.2.0stable
2026/8/18
0.1.3stable
2026/8/18

相关插件

正在加载相关插件…

最新版
0.4.2
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
121.6 kB
文件数
15
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 2
周下载
115
安全扫描
✓ v0.4.2 扫描通过
最近提交
2026/9/8
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Subagent Codex@deepseek-ai/dsh-subagent-codex基于官方 app-server 协议的一次性 Codex 子代理提供程序

README

dsh-task-worktree

Complete Git worktree support for DeepSeek Harness.

A community plugin that gives DSH the task-scoped worktree workflow of Qoder / Codex / Claude Code: each task gets its own isolated git worktree checkout on its own branch, recorded in a per-repo manifest so it survives sessions and restarts. The main workspace stays untouched; conversations that use a worktree are marked with a branch badge on the session header (no workspace entry is created), and the changes can be brought back (Move to local) or committed directly on the worktree branch — always under explicit human control.

It follows the design of Qoder's Worktree execution environment, Codex's codex worktree create --permanent, and Claude Code's --worktree sessions, adapted to DSH's session/workspace model.

Design

Concept (this plugin)QoderCodexClaude Code
Task-scoped isolated checkoutWorktree execution environmentcodex worktree create --permanentclaude --worktree <name>
Worktrees live in <repo>/.dsh-worktrees/background worktree checkout.codex/worktrees/.claude/worktrees/
Durable registry survives restartsper-sessionglobal indexsession binding
Own branch per taskbranch selector—worktree-<name>
Open as a DSH workspace from the GUIpanel selectorcodex worktree openlaunches into the worktree
Mark the conversation using the worktreesession badge——
Bring changes back to mainMove to local—exit/cleanup prompt
Direct commit on the worktree branchReview & commit panelcommit in the worktree sessioncommit in the worktree
Carry uncommitted main changes inInclude uncommitted changes toggle—.worktreeinclude
Auto-ignore the worktree directory——.gitignore tip

How it works

Blank conversation: pick "Worktree mode" in the dock dropdown (before the
conversation starts) → optional branch name (auto-prefixed "worktree/")
   │  send the first message → the host injects an instructions context block
   ▼  the model calls worktree_create on that same turn
   │  git worktree add -b worktree/<name> <repo>/.dsh-worktrees/worktree/worktree/<name>
   │  NO workspace is registered, NO conversation switch — the session header
   │  badge marks the worktree this conversation uses
   ▼  work continues in the same conversation (the model uses absolute paths
      inside the checkout); when done the model reminds you how to clean up
   │
   ├─ /worktree bring-back worktree/<name>   → merge the branch into the main branch
   │                                            (requires a clean main workspace)
   ├─ /worktree finish worktree/<name> <msg>  → commit on the worktree branch, keep it
   └─ /worktree remove worktree/<name> --force→ delete the worktree + branch
                                                (--force also deletes uncommitted changes)
  1. Start in worktree mode: on a blank conversation the dock selector shows 「Branch:」 before you send anything — picking "Worktree mode" ARMS the session, and the branch-name field is optional (typed names are auto-prefixed worktree/, blank lets the model propose one). The mode selector disappears once the conversation starts; the session-header badge takes over the indication.
  2. Send your first message — the host injects one instructions context block (shown as 上下文注入) right before your message: create the worktree with a worktree/-prefixed branch, work inside the checkout path, and at the end remind the user with copy-paste cleanup commands (bring-back or remove --force).
  3. Or skip the mode and ask the agent directly: "用 worktree 隔离干活,任务叫 xxx" — the model calls worktree_create; the name is both the branch and the relative path (slashes allowed).
  4. No workspace entry is created, so the sidebar stays uncluttered. The badge on the session header shows the branch name while the conversation is in worktree mode.
  5. When done: bring-back / finish / remove (all human-only, as above); /worktree list / status / prune inspect and clean up (prune also drops stale workspace registrations for removed checkouts).

Install

dsh plugin --profile web add dsh-task-worktree

Requires: DeepSeek Harness 0.1.0-rc.7 package line, Git 2.31+, Node 20+.

Model tools

ToolPurpose
worktree_create {name, baseCommit?, includeUncommitted?}Create a task worktree (name = branch and relative path, slashes allowed); optionally carry uncommitted main-workspace changes in
worktree_listList the repository's managed worktrees (state / dirty / branch)
worktree_status {name?}Status of one worktree, or the one the current session is inside

Delivery and cleanup actions (finish / bring-back / remove) stay human-only — the model never reaches them.

Human commands

/worktree mode-on [<name>]     arm worktree mode (injection with the next message)
/worktree mode-off             disarm worktree mode
/worktree create <name> [<base>] [--carry]
/worktree list
/worktree status [<name>]
/worktree finish <name> <message>
/worktree bring-back <name> [<message>]
/worktree remove <name> [--force]
/worktree prune

Safety model

  • @deepseek-ai/* are peerDependencies only — the host supplies them; the plugin never installs infrastructure copies into a profile (a second instance breaks TOOL_RUNTIME_SCHEDULER's unique symbol and kills tool calls).
  • bring-back requires a clean main workspace (MAIN_DIRTY) and refuses to run from inside the worktree.
  • remove refuses the worktree the current session is working inside (IN_USE).
  • All git operations go through ctx.subprocess (harness-managed); the test path uses a child_process runner.
  • Manifest writes are atomic (tmp + rename); prune drops records whose checkout no longer exists.

Local development

npm test              # smoke test: full lifecycle on a scratch repository
npm pack --dry-run    # inspect the tarball before publishing

License

MIT — see LICENSE