🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

永久工作树 FlashingChen/dsh-worktree

DeepSeek Harnessv0.1.0
FlashingChen81 天前有提交已提供中文文档扫描:未发现敏感能力

为每个仓库创建跨会话持久存在的 git 工作树

30.7/100
综合分
6
GitHub 星标
68
npm 周下载
—/5
用户评分

数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-worktree
npm 源 · dsh-worktree 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · dev
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 81 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-worktree @ 0.1.0
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 15:06:56

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-commands@deepseek-ai/dsh-subprocess@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 创建持久git工作树

Codex 风格的永久 git worktree,给 DeepSeek Harness 用:worktree_create/list/remove 智能体工具、/worktree 聊天命令,以及按仓库持久保存的清单。

README

由 DeepSeek 最新模型翻译生成
dsh-worktree | English License: MIT 为 DeepSeek Harness 打造的 Codex 同款永久 git 工作树 插件——让 DSH profile 获得与 codex worktree create --permanent 一样的持久工作树工作流。 永久工作树是一个真实的 git worktree add --detach 检出目录,跨会话、跨重启永久存在。你(或 agent)创建一次,之后任何会话都可以在它里面继续之前的工作——完全不碰你的主工作树。 功能一览 | Codex CLI | dsh-worktree 对应能力 | | codex worktree create --permanent [] | agent 工具 worktree_create,或 /worktree create [] | | codex worktree list | agent 工具 worktree_list,或 /worktree / /worktree list | | codex worktree open | /worktree open (注册为 DSH 工作区;在那里开新会话即可) |
展开完整文档(README 剩余 1 节)
dsh-worktree

| English

License: MIT

为 DeepSeek Harness 打造的 Codex 同款永久 git 工作树 插件——让 DSH profile 获得与 codex worktree create --permanent 一样的持久工作树工作流。

永久工作树是一个真实的 git worktree add --detach 检出目录,跨会话、跨重启永久存在。你(或 agent)创建一次,之后任何会话都可以在它里面继续之前的工作——完全不碰你的主工作树。

功能一览

| Codex CLI | dsh-worktree 对应能力 |
| codex worktree create --permanent [] | agent 工具 worktree_create,或 /worktree create [] |
| codex worktree list | agent 工具 worktree_list,或 /worktree / /worktree list |
| codex worktree open | /worktree open (注册为 DSH 工作区;在那里开新会话即可) |
| codex worktree close/delete | agent 工具 worktree_remove,或 /worktree remove |
| 会话中展示工作树信息 | 会话运行在已注册工作树内时,agent 收到一次上下文提示 |

除了 CLI 对齐,模型本身也能使用这些工具:任务进行中就可以自己派生一个永久工作空间——在指定 commit 上创建工作树、用常规文件工具在里面干活、用完清理。

工作原理

- 工作树位于 /.dsh-worktrees/——与 Codex 的 .codex/worktrees/ 相同的隐藏目录模式——因此始终在仓库内部(当会话工作区就是仓库根时,也在会话的 workspace-write 沙箱内)。
- 每个工作树都会写入按仓库持久化的 manifest:/.dsh-worktrees/manifest.json(名称、路径、基线 commit、创建时间、创建者会话)。manifest 就是"永久"的载体:DSH 重启后依然存在,可被工具/命令列出,新会话在其中打开时也能被识别。
- 创建工作树的同时会注册到 ctx.workspaceRegistry,出现在 DSH 工作区列表里——这就是之后"打开"它的原生方式。
- 移除工作树会执行 git worktree remove(可选 --force)、删除 manifest 条目并注销工作区;拒绝删除当前会话正在运行其中的工作树。

环境要求

- git ≥ 2.31(使用 git rev-parse --path-format=absolute --git-common-dir)。
- 带 tools、commands、subprocess 服务的 DSH profile(web profile 通过 dsh-base 三者齐全)。

安装

1. 让 profile 可用该插件(从 npm 安装)
dsh plugin --profile web add dsh-worktree

2. 在 profile 的 patch 层激活在 ~/.dsh/profiles/web/cordis.patch.yml 中加入: #
- insert:
- id: worktree
name: 'dsh-worktree'

3. 重启 profile(例如重启 dsh web 进程)

从源码安装(开发调试,或用于匹配不同版本的 Harness):

git clone https://github.com/FlashingChen/dsh-worktree.git
cd dsh-worktree
npm install # 自带依赖,与 Harness 版本对齐
dsh plugin --profile web add "$PWD"
... 然后同上加激活行并重启

插件依赖锁定在构建时对应的 Harness 版本(@deepseek-ai/* 0.1.0-rc.6)。如果你的 DSH 安装版本不同,请从源码安装,并在插件目录执行 npm install (或修改 package.json),确保插件能对你的 Harness 正常加载。

配置(全部可选):

- insert:
- id: worktree
name: 'dsh-worktree'
config:
dirName: .dsh-worktrees # 每个仓库根内的工作树目录名(默认值)

使用方法

Agent 工具

- worktree_create {name, baseCommit?} —— 在当前会话所在仓库创建永久分离工作树(默认基线:当前 HEAD)。返回工作树路径、仓库根和基线 commit。
- worktree_list —— 列出已注册工作树及其实时 git 状态(是否存在、HEAD、分支)。
- worktree_remove {name, force?} —— 移除已注册工作树(--force 会连同未提交改动一起丢弃)。拒绝删除当前会话所在的工作树。

聊天命令

/worktree # 列出(同 /worktree list) /worktree list /worktree create [] /worktree open # 打印路径/状态 + 注册为工作区 /worktree remove # (close/delete 也接受)

会话上下文

当会话的工作区位于已注册的永久工作树内时,agent 会收到一次提示:在哪个工作树、属于哪个仓库、基线 commit 是什么,以及管理命令。

沙箱说明

git 操作走 DSH 自己的 ctx.subprocess 通道(而非 agent 的 bash 工具),与其他 Harness 托管的进程一致。默认 workspace-write 权限模式下,只要工作树位于会话工作区根之下(会话在仓库根启动即是如此,属常规场景),agent 即可写入工作树文件。如果会话从仓库子目录启动,.dsh-worktrees 会落在该会话工作区之外;把工作树作为工作区开一个新会话即可在其中工作。

开发

- node test/smoke.js —— 针对临时仓库的 git 逻辑端到端冒烟测试(无需启动 DSH)。
- 激活检查:用 profile 的 node_modules 最小化启动 cordis 树(system-prompt、tools、commands、subprocess、dsh-worktree),断言注册成功并完成一次真实的 create/list/remove 往返。

目录结构

lib/manager.js WorktreeManager:仓库发现、git 工作树生命周期、按仓库持久化的 manifest(基于 ctx.subprocess 的纯逻辑) lib/index.js Cordis 插件:Config、工具、/worktree 命令、一次性会话上下文提示、ctx.worktree 服务 test/smoke.js 独立冒烟测试

许可证

MIT —— 见 LICENSE。
预览分享卡片长什么样 ↓FlashingChen/dsh-worktree
分享 · DeepSeek Harness Hub
FlashingChen/dsh-worktree

为每个仓库创建跨会话持久存在的 git 工作树

回到顶部