在标签页内一键启停本机 AI 编码助手网页
29.6/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/hyci3/obsidian-dsh-tab.git按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 60 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/5) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包obsidian-dsh-tab(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 22:17:32
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 23 处,展示前 23 条)
- 发起网络请求dist/main.js:259
fetch(`http://127.0.0.1:${port}/`, { mode: "no-cors", signal: controller.signal }).then(() => resolve(true)).catch(() => resolve(false)).finally(() => - 发起网络请求plugin/main.js:259
fetch(`http://127.0.0.1:${port}/`, { mode: "no-cors", signal: controller.signal }).then(() => resolve(true)).catch(() => resolve(false)).finally(() => - 读取本地文件plugin/src/dshHome.ts:76
if (existsSync(file)) { - 读取本地文件plugin/src/dshHome.ts:78
data = JSON.parse(readFileSync(file, "utf8")) as WorkspaceRegistryFile; - 写入本地文件plugin/src/dshHome.ts:108
mkdirSync(join(dshHome, "storages"), { recursive: true }); - 写入本地文件plugin/src/dshHome.ts:109
writeFileSync(file, JSON.stringify(data, null, 2), "utf8"); - 写入本地文件plugin/src/dshHome.ts:119
mkdirSync(target, { recursive: true }); - 读取本地文件plugin/src/dshHome.ts:125
if (existsSync(src) && !existsSync(dst)) { - 写入本地文件plugin/src/dshHome.ts:126
copyFileSync(src, dst); - 发起网络请求plugin/src/processManager.ts:91
fetch(`http://127.0.0.1:${port}/`, { mode: "no-cors", signal: controller.signal }) - 执行外部命令来自配置/变量plugin/src/processManager.ts:100
const res = realSpawnSync(probe.executable, probe.args, { - 执行外部命令来自配置/变量plugin/src/processManager.ts:110
const res = realSpawnSync(probe.executable, probe.args, { - 执行外部命令来自配置/变量plugin/src/processManager.ts:123
const res = realSpawnSync(process.env.ComSpec ?? "cmd.exe", ["/c", "npm cache ls @deepseek-ai/dsh"], { - 执行外部命令来自配置/变量plugin/src/processManager.ts:149
const res = realSpawnSync(process.env.ComSpec ?? "cmd.exe", ["/c", `netstat -ano`], { - 执行外部命令来自配置/变量plugin/src/processManager.ts:158
return realSpawn(executable, args, opts as never) as unknown as ChildLike; - 读取本地文件plugin/src/processManager.ts:180
const parsed = JSON.parse(readFileSync(statePath, "utf8")) as { ownedPid?: unknown }; - 写入本地文件plugin/src/processManager.ts:189
mkdirSync(logDir, { recursive: true }); - 写入本地文件plugin/src/processManager.ts:190
writeFileSync(statePath, JSON.stringify({ ownedPid: pid }, null, 2), "utf8"); - 执行外部命令来自配置/变量plugin/src/processManager.ts:226
spawnSync: (exe, args, opts) => realSpawnSync(exe, args, opts as never), - 读取本地文件plugin/src/processManager.ts:632
if (!existsSync(this.deps.logDir)) { - 写入本地文件plugin/src/processManager.ts:633
mkdirSync(this.deps.logDir, { recursive: true }); - 删除本地文件plugin/src/processManager.ts:637
rmSync(this.stderrPath(), { force: true }); - 读取本地文件plugin/src/processManager.ts:657
return readFileSync(this.stderrPath(), "utf8");
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 标签页内打开本机网页
- 自动启动与检测
- 自动关闭服务
在 Obsidian 标签页中打开本机 DSH(DeepSeek Harness)网页,自动管理其启动、检测与关闭。
README
由 DeepSeek 最新模型翻译生成DSH Tab — 在 Obsidian 中打开本机 DSH
在 Obsidian 标签页中直接打开本机运行的 DSH(DeepSeek Harness) 网页界面,并自动管理 DSH 的启动、检测与关闭。插件以当前 Obsidian 库作为 DSH 的工作目录,所有数据保存在本机,不上传云端。
平台:Windows 电脑版 Obsidian(1.10+)| 版本:0.1.0| License:MIT
项目介绍
DSH(DeepSeek Harness)是一个本地运行的 AI 编码助手网页服务,通常通过 dsh web --port 3080 在浏览器中打开。每次手动启动、关停、切换终端窗口都很麻烦。
本插件把 DSH 网页界面嵌入 Obsidian 的标签页:
- 点一下左侧功能区图标,DSH 没启动就自动拉起,启动了就直接显示界面
- 标签标题实时显示「DSH · 运行中 / 启动中 / 已停止…」等状态,动作按钮随状态切换
- 关闭 Obsidian 时 DSH 自动一起退出,无残留进程、无黑窗闪现
- 每个库有独立的 DSH 数据目录,会话与工作区互不干扰
无需全局安装 DSH:优先使用本机全局 dsh 命令;未安装时自动回退 npx --yes @deepseek-ai/dsh(首次运行由 npx 自动下载,之后走缓存)。
展开完整文档(README 剩余 1 节)
DSH Tab — 在 Obsidian 中打开本机 DSH 在 Obsidian 标签页中直接打开本机运行的 DSH(DeepSeek Harness) 网页界面,并自动管理 DSH 的启动、检测与关闭。插件以当前 Obsidian 库作为 DSH 的工作目录,所有数据保存在本机,不上传云端。 平台:Windows 电脑版 Obsidian(1.10+)| 版本:0.1.0| License:MIT 项目介绍 DSH(DeepSeek Harness)是一个本地运行的 AI 编码助手网页服务,通常通过 dsh web --port 3080 在浏览器中打开。每次手动启动、关停、切换终端窗口都很麻烦。 本插件把 DSH 网页界面嵌入 Obsidian 的标签页: - 点一下左侧功能区图标,DSH 没启动就自动拉起,启动了就直接显示界面 - 标签标题实时显示「DSH · 运行中 / 启动中 / 已停止…」等状态,动作按钮随状态切换 - 关闭 Obsidian 时 DSH 自动一起退出,无残留进程、无黑窗闪现 - 每个库有独立的 DSH 数据目录,会话与工作区互不干扰 无需全局安装 DSH:优先使用本机全局 dsh 命令;未安装时自动回退 npx --yes @deepseek-ai/dsh(首次运行由 npx 自动下载,之后走缓存)。 功能特性 - 功能区一键打开:左侧功能区按钮 → 打开 DSH 标签页;DSH 未运行时自动启动 - 六种状态视图:未运行 / 启动中(转圈)/ 运行中(内嵌网页)/ 关闭中(转圈)/ 已停止(可重启)/ 出错(可重试) - 库即工作区:以当前库文件夹为 DSH 工作目录,DSH 产生的文件落在库里 - 智能生命周期: - 关闭标签页不影响 DSH 运行,再打开直接显示界面 - 关闭 Obsidian 时自动关闭 DSH(可在设置中关闭) - 插件加载时自动检测 DSH 是否已在运行 - 体验优化: - 按钮点击动画(功能区图标 / 头部按钮 / 大按钮按压缩放反馈) - 关闭过渡界面:点「关闭 dsh」立即显示「正在关闭 dsh…」,完成后再变「已关闭」 - 启动即时应答:点图标立即显示「正在打开 dsh…」,检测放后台 - 每库独立配置:每个库有独立的 DSH 数据目录,会话/工作区互不干扰,首次运行自动继承本机 ~/.dsh 的模型配置 - 外部进程隔离:只接管本插件启动的 DSH;端口被外部 DSH/程序占用时提示「端口被占用」,不进入、不接管、不杀 - 首次启动检查:启动前自动检查——dsh --version 可用则用 dsh 启动;不可用则查本地 npx 缓存(npm cache ls,纯本地、不触发下载),缓存中有 @deepseek-ai/dsh 则用 npx 启动;两者都不可用时显示错误页「没安装 dsh」并附官网下载链接();手动填写的自定义命令则严格按填写值执行 - 秒退:DSH 运行中退出 Obsidian 时的清理约 1ms(原生 kill 端口进程,外层 cmd 自然退出),退出不卡顿、无黑窗闪现、无残留进程 - 设置页:插件版本号、端口(默认 3080)、启动命令、随 Obsidian 关闭开关 安装 方式一:直接安装(无需构建) 1. 下载 latest release。 2. 将 main.js、manifest.json 和 styles.css 复制到 .obsidian/plugins/obsidian-dsh-tab/。 3. 重启 Obsidian。 4. 在 设置 → 第三方插件 中启用 DSH Tab。 方式二:从源码构建 git clone cd plugin npm install npm run build # 类型检查 + 生成 main.js 构建完成后按方式一的步骤 2、3 安装 main.js / manifest.json / styles.css。 说明:main.js 构建产物已随仓库提交(clone 即装),仅在改动源码后需要重新构建。 使用示例 首次使用 1. 打开 Obsidian,进入任意一个库,点击左侧功能区的 DSH 图标 2. 首次点击:标签页立即显示「正在打开 dsh…」(后台自动检测/启动),就绪后显示 DSH 网页 3. 插件会自动创建该库专属的 DSH 数据目录(库/.obsidian/plugins/obsidian-dsh-tab/.dsh-home/),首次运行继承本机 ~/.dsh 的模型配置 无需提前安装 DSH:插件会自动检查——dsh --version 可用则直接启动;不可用则查本地 npx 缓存(npm cache ls,不触发下载),缓存中有则用 npx 启动;两者都不可用时显示「没安装 dsh」错误页,附官网下载链接(),装好后点「重试」即可。 关闭标签页 vs 关闭 DSH | 操作 | 结果 | | 点标签页的 × | 只关闭标签页,DSH 继续在后台运行 | | 点标签行头部的关闭按钮 | 停止 DSH(先显示「正在关闭 dsh…」,完成后再变「已关闭」) | | 关闭 Obsidian | 自动一起关闭 DSH(可在设置中改为保留) | 之后想再次使用:再点一次功能区图标,若 DSH 仍在运行则直接显示界面,无需等待。 端口被外部占用时 若你在终端手动启动过 DSH(如 dsh web --port 3080),插件检测到端口被占用时会显示「端口被占用」错误页: - 插件不会进入、接管或杀掉外部进程 - 请自行关闭外部 DSH 进程,或在插件设置中更换端口后重启 Obsidian 修改端口 / 启动命令 设置页支持修改端口(默认 3080)与启动命令(默认 dsh),修改后需重启 Obsidian 生效。 开发与测试 cd plugin npm install # 安装依赖 npm run dev # 监听模式编译(main.js) npm run build # 类型检查 + 生产构建 npm test # 运行全部测试(单元 + 真实进程集成) npm run verify # 构建 + 全部测试 npm run sync # 把产物同步到本地 test-vault(测试库) npm run package # 打发布安装包到 ../dist/ 测试说明:共 119 个测试,覆盖状态机(含关闭中)、进程管理(启动/停止/崩溃/超时/端口占用/命令回退)、界面渲染、设置、styles.css 约束、外部进程隔离、退出关闭速度与幂等、退出零弹窗零残留、DSH 真实进程生命周期等。集成测试通过 DSH_HOME 环境变量把数据重定向到工作区目录,不会触碰本机真实 ~/.dsh 数据,也不会占用 3080 端口。 仓库结构 ├── docs/ # 项目文档(PRD、设计、开发计划、优化需求、验收记录、问题清单) ├── plugin/ # 插件源码与测试 │ ├── src/ # 源码(进程管理、状态机、视图、设置等) │ ├── tests/ # 单元测试 + 真实进程集成测试 │ ├── scripts/ # 同步 / 打包脚本 │ ├── main.js # 构建产物(已入库,clone 即装) │ └── manifest.json # 插件声明 └── dist/ # 发布用安装包(zip,含 main.js / manifest.json / styles.css) 文档索引 | 文档 | 说明 | | docs/PRD.md | 产品需求文档(目标、功能、验收标准) | | docs/01-页面结构与交互设计.md | 页面结构与交互设计 | | docs/02-开发计划.md | 详细开发计划 | | docs/03-M1验证记录.md | 技术验证记录 | | docs/04-验收记录.md | 自动化验收记录 | | docs/05-手动验收清单.md | 手动 GUI 验收清单 | | docs/06-优化需求.md | v0.2 优化需求(O1-O4) | | docs/07-优化开发计划.md | v0.2 优化开发计划 | | docs/08-待修复问题清单.md | 问题清单与修复记录(FIX-01 ~ FIX-08) | 注意事项 - 仅支持电脑版 Obsidian(桌面端),手机版不支持(isDesktopOnly) - 启动方式:自动检查 dsh --version 可用则用 dsh 启动;不可用则查本地 npx 缓存(npm cache ls,不触发下载),缓存中有 @deepseek-ai/dsh 则用 npx 启动;两者都不可用则显示错误页并附官网下载链接 - 若在设置里手动填写「启动命令」,插件严格按填写值执行(含空格路径请用引号包裹),不再自动回退 - 当前版本支持单标签页、单端口;修改设置后需重启 Obsidian 生效 - 插件的 DSH 数据目录位于 库/.obsidian/plugins/obsidian-dsh-tab/.dsh-home/,随库一起保存在本机 - 目前未发布到 Obsidian 社区插件市场,请按上方「安装」手动安装 许可证 MIT 致谢 本项目由 DeepSeek Harness(DSH) 开发完成 —— 一个本地运行的开源 AI 编码助手(npm 包:@deepseek-ai/dsh)。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
hyci3/obsidian-dsh-tab
在标签页内一键启停本机 AI 编码助手网页
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这是你的仓库?认领条目