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

右侧文件工作区 lee259/dsh-workbench

DeepSeek Harnessv0.16.1
lee25934 天前有提交已提供中文文档扫描:含敏感能力codeui

DeepSeek Harness Web 的右侧文件工作区。

39.2/100
综合分
9
GitHub 星标
550
npm 周下载
—/5
用户评分

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

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

状态速览

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

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

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

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

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 07:03:21

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

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 34 处,展示前 34 条)
  • 读取本地文件
    lib/host/index.js:59
    const content = await readFile(new URL("../client-editor.js", import.meta.url));
  • 读取本地文件
    lib/host/index.js:136
    const info = await stat(resolved);
  • 读取本地文件
    lib/host/index.js:501
    const info = await stat(located.absolute);
  • 读取本地文件
    lib/host/index.js:506
    const content = await readFile(located.absolute);
  • 读取本地文件
    lib/host/workspace.js:7
    async stat(absolute) {
  • 读取本地文件
    lib/host/workspace.js:8
    const info = await stat(absolute);
  • 读取本地文件
    lib/host/workspace.js:11
    readFile(absolute) {
  • 读取本地文件
    lib/host/workspace.js:12
    return readFile(absolute, "utf8");
  • 读取本地文件
    lib/host/workspace.js:15
    const entries = await readdir(absolute, { withFileTypes: true });
  • 写入本地文件
    lib/host/workspace.js:18
    writeFile(absolute, content) {
  • 写入本地文件
    lib/host/workspace.js:19
    return writeFile(absolute, content, "utf8");
  • 读取本地文件
    lib/host/workspace-watch.js:9
    return readdirSync(root, { withFileTypes: true }).map((entry) => ({
  • 读取本地文件
    lib/host/git-diff.js:25
    return await readFile(join(root, path), "utf8");
  • 执行外部命令来自配置/变量
    lib/host/system-open.js:12
    execFile(target.command, target.args, (error) => error ? reject(error) : resolve());
  • 发起网络请求
    lib/client/store.js:22
    const response = await fetch(`${FILE_API_PATH}?${query}`);
  • 发起网络请求
    lib/client/store.js:32
    const response = await fetch(FILE_API_PATH, {
  • 发起网络请求
    lib/client/store.js:43
    const response = await fetch(`${FILES_API_PATH}?q=${encodeURIComponent(query)}`);
  • 发起网络请求
    lib/client/store.js:50
    const response = await fetch(FILES_API_PATH);
  • 发起网络请求
    lib/client/store.js:57
    const response = await fetch(`${CONTENT_SEARCH_API_PATH}?q=${encodeURIComponent(query)}`);
  • 发起网络请求
    lib/client/workspace-identity.js:44
    await fetch(WORKSPACE_API_PATH, {
  • 写入剪贴板
    lib/client/workbench/native-review-tab.js:236
    if (!await writeClipboard(path))
  • 写入剪贴板
    lib/client/explorer/file-tree.js:345
    void writeClipboard(absolutePath?.(menuPath) ?? menuPath);
  • 写入剪贴板
    lib/client/workbench/header.js:262
    void writeClipboard(absolutePath?.(state.path) ?? state.path).then((copied) => {
  • 发起网络请求
    lib/client/workbench/use-shell.js:151
    const response = await fetch(WORKSPACE_API_PATH);
  • 发起网络请求
    lib/client/review/review-data.js:4
    const response = await fetch(`${REVIEW_API_PATH}?${query}`, { signal });
  • 发起网络请求
    lib/client/review/review-data.js:11
    const response = await fetch(`${REVIEW_API_PATH}?${query}`, { signal });
  • 发起网络请求
    lib/client/review/review-data.js:18
    const response = await fetch(`${REVIEW_API_PATH}${query}`, { signal });
  • 发起网络请求
    lib/client/review/review-data.js:27
    const response = await fetch(`${REVIEW_API_PATH}?${query.toString()}`);
  • 发起网络请求
    lib/client/review/review-data.js:34
    const response = await fetch(`${REVIEW_API_PATH}${query}`, {
  • 发起网络请求
    lib/client/review/review-data.js:44
    const response = await fetch(`${REVIEW_API_PATH}${query}`, {
  • 发起网络请求
    lib/client/review/git-diff-data.js:3
    const response = await fetch(`${GIT_DIFF_API_PATH}?scope=${scope}`);
  • 发起网络请求
    lib/client/review/git-diff-data.js:10
    const response = await fetch(GIT_STATUS_API_PATH);
  • 发起网络请求
    lib/client/preview/system-open.js:3
    const response = await fetch(SYSTEM_OPEN_API_PATH, {
  • 发起网络请求
    lib/client/review/activity-data.js:3
    const response = await fetch(ACTIVITY_API_PATH);
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-api-workspace-controller@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-sidebar-right@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-input-trigger@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-tool@deepseek-ai/dsh-session
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

功能亮点

  • Codex风格审查
v0.16.12026-09-30
· 0.16.1 - 2026-09-30 · 修复 · 恢复 Harness 原生审查差异视图中的语法高亮,支持多种源码语言。
v0.16.02026-09-30
· 0.16.0 - 2026-09-30 · 新功能 · 把 Codex 风格的审查集成到 DeepSeek Harness 原生右侧栏,使用 Harness 的轮次变更和原生 hunk 差异。 · 在 DSH 审查面板里把变更文件列表、差异导航和对话工作流放在一起。 · 修复 · 让差异文件头保持在行号栏上方,横向滚动时固定 hunk 头和折叠上下文控件。 · 在原生文件标签页之间保留会话级文件状态和工作区访问权限。
v0.15.22026-09-08
· 0.15.2 - 2026-09-08 · 新功能 · 评审、文件、新文件和草稿标签页支持拖拽排序,也能拖到标签栏末尾。 · 重新打开工作台面板时,按会话保留标签页顺序。 · 变更 · 调整 Codex 风格的标签页尺寸、间距、圆角、关闭按钮样式,以及更小的新建标签图标。 · 在 README 徽章行加上 DSH Insights 健康徽章。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
DSH Workbench DSH Insights health npm version Awesome DSH Plugin CI License English · 更新日志 · Issues · npm DeepSeek Harness Web 内的 Codex 风格审查。直接审查 Harness 每轮记录的文件变更和原生 Diff。 能做什么 - 按 DSH Session 和 turn 浏览文件变更,并读取 Harness 原生 hunk Diff。 - 主区域显示 Harness Diff,旁边列出变更文件供切换查看。 - 从工具调用、工作区文件树或搜索打开文件;对话里的文件链接会展开对应 diff。 - 文件预览、工作区浏览和路径引用作为审查时的辅助能力保留。 DSH Workbench 在 DeepSeek Harness Web 中运行 read → 源码 write/edit → 捕获到的 DSH diff 细节 右侧面板可常驻、可调整宽度,支持预览和固定标签、Quick Open、文件树搜索、文件内查找/跳行、图片与 Markdown 预览,以及带外部变更保护的工作区编辑;界面跟随 DSH 语言设置。
展开完整文档(README 剩余 1 节)
DSH Workbench

DSH Insights health npm version
Awesome DSH Plugin
CI
License

English · 更新日志 · Issues · npm

DeepSeek Harness Web 内的 Codex 风格审查。直接审查 Harness 每轮记录的文件变更和原生 Diff。

能做什么

- 按 DSH Session 和 turn 浏览文件变更,并读取 Harness 原生 hunk Diff。
- 主区域显示 Harness Diff,旁边列出变更文件供切换查看。
- 从工具调用、工作区文件树或搜索打开文件;对话里的文件链接会展开对应 diff。
- 文件预览、工作区浏览和路径引用作为审查时的辅助能力保留。

DSH Workbench 在 DeepSeek Harness Web 中运行

read → 源码 write/edit → 捕获到的 DSH diff

细节

右侧面板可常驻、可调整宽度,支持预览和固定标签、Quick Open、文件树搜索、文件内查找/跳行、图片与 Markdown 预览,以及带外部变更保护的工作区编辑;界面跟随 DSH 语言设置。

安装

dsh plugin --profile web add dsh-workbench
dsh web

本机没有 dsh 时:

pnpm dlx @deepseek-ai/dsh plugin --profile web add dsh-workbench
pnpm dlx @deepseek-ai/dsh web

本地检出:

git clone https://github.com/lee259/dsh-workbench.git
cd dsh-workbench
pnpm install
pnpm run build
dsh plugin --profile web add "$(pwd)"
dsh web

改完插件后重新 pnpm run build,再重启 dsh web。

本地启动

pnpm start -- /绝对路径/你的项目

构建插件、注册到目标项目,并启动 DSH Web。不传路径时使用当前目录。

预览

| DSH 操作 | 展示 |
| read | 源码;图片和 Markdown 会渲染 |
| write / edit | 捕获到的 DSH diff |
| 文件提及 | 源码;图片和 Markdown 会渲染 |

Host 监听 tool/call、tool/result、tool/code-dispatch。优先使用 dsh-tool-fs 的 meta.diffs。

开发

pnpm install
pnpm test
pnpm start -- /绝对路径/你的项目

可在隔离的 DSH Web 实例中挂载打包后的插件:

pnpm test:mount
DSH_VERSION=0.2.0-rc.2 pnpm test:mount

第一条命令使用当前可安装的 dsh@0.1.7-rc.2;设置 DSH_VERSION 可指定其他版本。
目前 dsh@0.2.0-rc.2 依赖 npm 尚未发布的 dsh-client-ui-settings-account@0.2.0-rc.2,因此全新安装 CLI 可能失败,需等该依赖发布。

- Host:src/index.ts 导出 name、inject、apply(ctx)
- Client:dsh.client、exports["./client"]、window.__ModuleLoader__.load
- 样式:src/client/styles.css
- 第三方 React 组件:使用 DSH 注入的 React 运行时。若组件静态导入 react-dom、依赖尚未桥接的 React API,或注入全局 CSS,需要先加适配层;参见 src/client/react-bridge.ts 与 tsdown.config.ts。
- 文案:src/shared/i18n.ts

Roadmap

在 DeepSeek Harness 内审查 agent 每轮改动。变更列表与 hunk Diff 使用 DSH 原生 workspaceChanges API。

已完成

- read 和文件提及的只读预览
- write / edit 的真实 DSH Diff
- DSH 原生右侧工作区;原生 Sidebar 服务不可用时回退到插件抽屉
- 多文件标签、预览 / 固定、复制路径和桌面快捷键
- 文件内查找 / 跳行,以及对话里的 :line / #Lline 定位
- 跟随 DSH locale 的中英文界面
- Quick Open(⌘/Ctrl+P)和只定位不打开的树搜索
- 工作区文件树:面包屑、键盘导航,以及把路径插入输入框
- 语法高亮、代码折叠,以及磁盘变更后的实时刷新
- 图片预览和渲染后的 Markdown(支持相对图片)
- 代码预览还支持 MATLAB(.m)、R、Julia、Lua、C#、Kotlin、Scala、Swift、Dart、XML 和 Python 类型存根(.pyi)。Vue / Svelte 使用基础 HTML 高亮;MATLAB 使用 Octave 语法高亮,.m 默认按 MATLAB 识别,不支持 .mat 和 .mlx。
- 变更审阅:会话编辑、未提交、未暂存和已暂存 Git 范围,共用 +/− 数据
- 每条捕获写入显示简单操作摘要
- 审查增量更新:保持当前 Tab,大型审查面板仍能流畅响应
- 工作区内容搜索(⌘/Ctrl+⇧+F),结果可直接跳到命中行
- 从文件树和预览选区向输入框引用文件、目录和代码范围
- 可编辑的工作区预览,以及外部变更保护
- 审查工具栏中的 Git 分支/状态与会话工具活动信息

近期计划

目标是在 DeepSeek Harness 内提供接近 Codex 的审查交互:以 Harness turn changes 为审查基准,把对话会话、改动文件和 Diff 放在同一个审查流程里。

1. 以 DSH 原生方式逐步补齐终端与后台任务面板。
2. 收紧审阅到对话的反馈,包括在 diff 中给出内联指导。
3. 持续优化按会话保存的工作区状态和审查性能。

现有的 DSH 事件捕获、meta.diffs、会话 Review、操作摘要和增量审查更新继续作为差异化基础。

近期实施顺序

- 终端和后台任务面板
- 内联审查评论,以及更丰富的审阅到对话反馈

探索方向

- 在编辑器中打开、在文件夹中显示
- 在 Diff 行上写批注并送回对话输入框
- 可插拔工作区面板(Files / Review,以及后续 DSH 工具)

License

MIT
预览分享卡片长什么样 ↓lee259/dsh-workbench
分享 · DeepSeek Harness Hub
lee259/dsh-workbench

DeepSeek Harness Web 的右侧文件工作区。

这是你的仓库?认领条目

回到顶部