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

工作区增强 ds-hu/dsh-better-workspaces

DeepSeek 客户端v0.3.0
ds-hu7 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

在 DeepSeek Harness Web GUI 中原生集成 Git Worktree、文件差异对比、GitHub…

33.6/100
综合分
5
GitHub 星标
25
npm 周下载
—/5
用户评分

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

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/ds-hu/dsh-better-workspaces.git

状态速览

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

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

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

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

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/28 20:43:41

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

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

可执行外部命令读写/删除本地文件
查看扫描证据(共 112 处,展示前 50 条)
  • 读取本地文件
    lib/api.js:242
    const [file, anchoredRoot] = await Promise.all([realpath(anchoredLexical), realpath(resolutionRoot)]);
  • 读取本地文件
    lib/api.js:256
    const rebound = await realpath(lexical);
  • 读取本地文件
    lib/api.js:258
    const [openedStat, reboundStat] = await Promise.all([handle.stat(), stat(rebound)]);
  • 读取本地文件
    lib/api.js:296
    const rebound = await realpath(lexicalParent);
  • 读取本地文件
    lib/api.js:298
    const [canonicalInfo, reboundInfo] = await Promise.all([stat(canonicalParent), stat(rebound)]);
  • 读取本地文件
    lib/api.js:347
    if ((await realpath(anchor)) !== canonicalParent) throw new ApiError(409, 'file path changed during save');
  • 删除本地文件
    lib/api.js:392
    await rm(path, { force: true });
  • 执行外部命令固定命令
    lib/api.js:405
    const child = spawn(
  • 写入本地文件
    lib/api.js:1721
    await rename(tempPath, file);
  • 读取本地文件
    lib/cleanup.js:81
    canonicalCwd = await realpath(cwd);
  • 读取本地文件
    lib/cleanup.js:102
    const [info, canonical] = await Promise.all([lstat(path), realpath(path)]);
  • 读取本地文件
    lib/cleanup.js:102
    const [info, canonical] = await Promise.all([lstat(path), realpath(path)]);
  • 读取本地文件
    lib/cleanup.js:119
    hashes = await readdir(root);
  • 读取本地文件
    lib/cleanup.js:131
    entries = await readdir(group.root);
  • 读取本地文件
    lib/cleanup.js:178
    const scoped = await realpath(opts.cwd).catch(() => null);
  • 读取本地文件
    lib/worktree.js:122
    const [info, canonical] = await Promise.all([lstat(path), realpath(path)]);
  • 读取本地文件
    lib/worktree.js:122
    const [info, canonical] = await Promise.all([lstat(path), realpath(path)]);
  • 读取本地文件
    lib/worktree.js:141
    const canonicalMain = await realpath(mainRoot);
  • 写入本地文件
    lib/worktree.js:153
    const createdGlobal = await mkdir(globalRoot, { recursive: true });
  • 读取本地文件
    lib/worktree.js:166
    canonical = await realpath(globalRoot);
  • 写入本地文件
    lib/worktree.js:180
    await mkdir(root);
  • 写入本地文件
    lib/worktree.js:210
    else await rename(temp, file);
  • 删除本地文件
    lib/worktree.js:217
    if (exclusive || !published) await rm(temp, { force: true }).catch(() => {});
  • 删除本地文件
    lib/worktree.js:223
    await rm(file, { force: true });
  • 读取本地文件
    lib/worktree.js:228
    const identity = await stat(mainRoot);
  • 读取本地文件
    lib/worktree.js:233
    try { await lstat(file); exists = true; } catch (error) { if (error?.code !== 'ENOENT') throw error; }
  • 删除本地文件
    lib/worktree.js:880
    await rm(file, { force: true });
  • 写入本地文件
    lib/worktree.js:1187
    const createdMetadataDir = await mkdir(metadataDir, { recursive: true });
  • 写入本地文件
    lib/worktree.js:1201
    await rename(tmp, file);
  • 删除本地文件
    lib/worktree.js:1205
    await rm(tmp, { force: true }).catch(() => {});
  • 读取本地文件
    lib/discovery.js:69
    const canonical = await realpath(path);
  • 读取本地文件
    lib/discovery.js:70
    const info = await stat(canonical);
  • 读取本地文件
    lib/authorize.js:45
    direct = samePath(canonical, path) && !(await lstat(path)).isSymbolicLink();
  • 读取本地文件
    lib/authorize.js:70
    stat(cwd),
  • 读取本地文件
    lib/authorize.js:71
    sourceMainRoot ? stat(sourceMainRoot) : Promise.resolve(null),
  • 读取本地文件
    lib/authorize.js:72
    source.isGit && source.gitDir ? stat(source.gitDir) : Promise.resolve(null),
  • 读取本地文件
    lib/authorize.js:73
    source.isGit && source.gitCommonDir ? stat(source.gitCommonDir) : Promise.resolve(null),
  • 读取本地文件
    lib/authorize.js:108
    stat(cwd), stat(managed.mainRepoRoot), stat(managed.gitDir), stat(managed.gitCommonDir),
  • 读取本地文件
    lib/stable.js:105
    const info = await stat(path);
  • 读取本地文件
    lib/stable.js:120
    await stat(path);
  • 执行外部命令来自配置/变量
    lib/git.js:149
    execFile(
  • 读取本地文件
    lib/git.js:218
    const info = await stat(cwd);
  • 执行外部命令来自配置/变量
    lib/git.js:233
    execFile(
  • 读取本地文件
    lib/git.js:290
    probe = (await stat(path)).isDirectory() ? path : dirname(path);
  • 读取本地文件
    lib/git.js:718
    const s = await stat(file);
  • 读取本地文件
    lib/git.js:739
    const stream = createReadStream(file, { highWaterMark: 64 * 1024 });
  • 读取本地文件
    lib/git.js:835
    return await realpath(p);
  • 执行外部命令固定命令
    lib/forge.js:25
    execFile(
  • 读取本地文件
    lib/actions.js:417
    const identity = await stat(ownerPath);
  • 执行外部命令来自配置/变量
    lib/git-child.js:47
    child = spawn(executable, args, {
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

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

界面预览

6 张 · 点击查看大图

给 DeepSeek Harness(dsh)Web GUI 加 Git 工作区增强:worktree 暂存、侧边栏 Git 标记、文件与 diff 会话视图、paseo 风格 PR 操作

README

由 DeepSeek 最新模型翻译生成
dsh-better-workspaces English · 简体中文 · 日本語 · Français · 한국어 在 DeepSeek Harness Web GUI 中原生集成 Git Worktree、文件差异对比、GitHub PR 与 Issue 联动。每个任务独享独立分支与隔离目录,从首条提示词到提交推送,全流程无需离开当前页面或切换终端。 插件目录中的名称: 工作区增强 · Better Workspaces。 功能特性 1. 输入框就地选择工作模式 输入框上方提供 Local 与 New worktree 快速切换。日常小修改直接在 Local 当前目录进行;独立功能或多任务并行时切换为 New worktree,自动创建专属目录与分支,彻底避免不同会话相互干扰。 输入框上方的 Local 与 New worktree 切换 2. 快速创建隔离工作区 输入分支名或点骰子随机生成,基线支持本地分支、远端分支或已有的 Pull Request。点击 Create 即可自动就绪独立的 worktree 工作区并开启关联会话。 包含分支名、基线与创建按钮的 worktree 表单 3. 会话列表直观掌握 Git 状态 侧边栏会话标题下方实时呈现当前分支与改动行数(+11 −3)。
展开完整文档(README 剩余 1 节)
dsh-better-workspaces

English · 简体中文 · 日本語 · Français · 한국어

在 DeepSeek Harness Web GUI 中原生集成 Git Worktree、文件差异对比、GitHub PR 与 Issue 联动。每个任务独享独立分支与隔离目录,从首条提示词到提交推送,全流程无需离开当前页面或切换终端。

插件目录中的名称: 工作区增强 · Better Workspaces。

功能特性

1. 输入框就地选择工作模式

输入框上方提供 Local 与 New worktree 快速切换。日常小修改直接在 Local 当前目录进行;独立功能或多任务并行时切换为 New worktree,自动创建专属目录与分支,彻底避免不同会话相互干扰。

输入框上方的 Local 与 New worktree 切换

2. 快速创建隔离工作区

输入分支名或点骰子随机生成,基线支持本地分支、远端分支或已有的 Pull Request。点击 Create 即可自动就绪独立的 worktree 工作区并开启关联会话。

包含分支名、基线与创建按钮的 worktree 表单

3. 会话列表直观掌握 Git 状态

侧边栏会话标题下方实时呈现当前分支与改动行数(+11 −3)。已关联的 PR 和 CI 检查状态同步展示在同一行,无需在终端频繁输入 git status。

会话行显示分支与改动量

4. 侧边栏全功能差异评审(Diff)

点击右上角 ± 胶囊按钮展开差异面板。支持在未提交修改、当前会话改动、任务全量改动与对比基线之间无缝切换;可逐行审阅 hunk 差异、就地编辑源码,并随时查看提交历史。

差异页包含范围切换、文件列表、逐行差异和操作按钮

5. 页面内直达提交与分支操作

在差异面板中直接完成 Commit、Pull、Push、创建 PR、合并、从基线同步更新或丢弃更改。对于暂不可用的操作,面板会明确说明缺少的前置条件,避免误操作。

Commit 按钮与包含 Pull、Push、PR、合并、更新、丢弃的 More 菜单

6. 一键将 GitHub PR / Issue 引入提示词

点击输入框旁的 GitHub 按钮,直接浏览并筛选当前仓库的开放 PR 和 Issue,点选后即可将其作为结构化引用加入输入框。

列出开放 Pull Request 和 Issue 的 GitHub 选择器

7. 紧凑的引用标签与完整上下文展开

输入框内仅展示轻巧的引用标签,不挤占编辑视线;点击发送时,标签自动展开为完整的标题、正文、分支信息及 URL,确保大模型获得精确且完整的上下文。

输入框中只显示一个紧凑的 Issue 引用标签和发送按钮

快速上手

1. 新建会话: 在 DeepSeek Harness 中打开任一 Git 工作区并开启会话。
2. 选择模式: 在输入框上方根据任务需要选择 Local 或 New worktree。
3. 开发与评审: 通过 GitHub 按钮引用 Issue,通过侧边栏徽章跟踪进度,点击 ± 细致评审代码改动。
4. 一键交付: 在差异面板内直接完成提交、推送或创建 Pull Request。

安装

通过 npm 一行命令安装:

dsh plugin --profile web add @ds-hu/dsh-better-workspaces

安装后重启一次 dsh --profile web 即可生效。

也可以直接在 DSH Web 界面中安装:

1. 打开侧栏的 插件 页面。
2. 点击 添加插件。
3. 输入 @ds-hu/dsh-better-workspaces,安装源选择 npm 官方源。
4. 点击 安装;安装完成后点击 立即启用。如界面提示需要重启,请重启一次 dsh --profile web。

环境要求

- DeepSeek Harness: ≥ 0.2.0
- Node.js: ≥ 20.19
- 依赖工具: git、pnpm(均需在 PATH 中可用)
- GitHub CLI(可选): 若配置了已登录的 gh,可使用 PR 与 Issue 快速检索和引用功能;未安装时,Worktree、侧边栏徽章和差异评审等全部核心功能均可正常使用。

说明

- 兼容 Linux、macOS 13+ 及 Windows 10+。
- 所有流程均在当前浏览器标签页内完成,无需额外开启客户端或切换应用。

文档

- docs/TECHNICAL.md — 架构解析、安全边界、升级说明与手动维护操作。
- docs/adr/ — 详细架构决策记录(ADR)。

许可证

MIT。第三方组件声明见 NOTICE 与 LICENSES/。
预览分享卡片长什么样 ↓ds-hu/dsh-better-workspaces
分享 · DeepSeek Harness Hub
ds-hu/dsh-better-workspaces

在 DeepSeek Harness Web GUI 中原生集成 Git Worktree、文件差异对比、GitHub…

回到顶部