
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
dsh-ui-tools
Advanced tools
dsh web 插件:项目文件查看器(可预览/编辑/提及文件)、多终端(快捷命令)、Git 面板(变更列表/推送拉取/分支切换)。功能移植自 pi-web-ui。
DeepSeek Harness (dsh) web 开发者工具面板 —— 文件浏览 / 多终端 / Git / 后台任务,样式 1:1 移植 pi-web-ui。
右侧嵌入对话页的开发者工具面板,默认展开、可拖拽调整宽度(360–900px)、可收起;所有视图随当前工作区/会话自动切换。
<工作区>/.dsh-ui-tools/commands.json,${pwd} 自动展开为会话工作区;npm run dev &、python -m http.server)——每次 shell 工具执行前后对比 LISTENING 端口,发现新服务即记录;参照 pi-marker-tools,把模型侧的 todo_write 工具替换为「写在回答正文里的 [[todo:...]] 行内标记」:
[[todo:new:写单元测试]] 新建、[[todo:set:2,completed]] 改状态、[[todo:remove:2]] 删除、[[todo:dep:2,blocks=1,3]] 声明依赖、[[todo:title:2:新标题]] 重命名;todo/write 事件持久化(随分支跟随,resume 恢复;旧日志兼容读取 marker/todos 快照) —— 现有 TodoDock 任务条零改动直接生效;todo_write 工具、不再解析标记)+ 每个内联标记插件独立开关(如 todo,停用后该插件的标记不再执行、恢复原生行为,其他插件不受影响;第三方注册的插件也会出现在列表里)。切换即时生效,持久化到 ~/.dsh-ui-tools/settings.json,对所有工作区生效;markers_list 工具;todo_write 已从模型可见工具中移除(不会出现 unknown tool 提示),旧调用也会被本插件接管、绝不报错;[[todo:title:<id>:<新标题>]] 支持冒号语法,持久化前做无损 JSON 清洗(杜绝 exotic 值导致 todo/write 写入失败)。通用内联标记系统以 Cordis Service inlineMarkers 发布 —— 任何 dsh bundle 插件都能用官方格式注册新的 [[tool:...]] 标记,与内置 todo 完全同权(解析、持久化、错误处理一致):
// 你的插件 dsh/index.js(官方 bundle 插件格式)
export const name = 'my-inline-tool'
export const inject = ['inlineMarkers']
export function apply(ctx) {
ctx.inlineMarkers.register('note', {
// state: 当前会话共享富状态(含 todo 的 tasks/nextId,JSON 安全字段自动透传持久化)
// token: { tool, op, args, kwargs, raw }
applyOp(state, token) {
const text = (token.args[0] || '').trim()
if (!text) return { applied: false, error: 'note:add 需要文本' }
state.notes = state.notes || []
state.notes.push({ text, at: Date.now() })
return { applied: true, feedback: `Note added: ${text}` }
},
})
}
applyOp 返回 { applied: true, feedback? } 表示状态已变(触发持久化);{ applied: false, error? } 表示忽略(不报错、不落库);[[note:add:...]] 即自动触发,与 [[todo:...]] 完全一致;examples/inline-note/,安装方式与任何 bundle 插件相同(dsh plugin --profile web add <你的包> 或本地路径 patch)。sounds.ts + SoundSettings.tsx 一一对应。--dsw-alias-* token(body / body[data-ds-dark-theme] 上定义),随 shell 的主题切换(亮/暗/跟随系统、第三方注册主题)自动级联,无需 JS 参与;body[data-ds-dark-theme] 实时重绘画布配色(背景/前景/光标读 shell token,ANSI 16 色用亮暗两套调色板)。| 文件面板 + 文件提及 | Git 面板 |
|---|---|
![]() | ![]() |
| 多终端(快捷命令一键运行) | 文件面板(目录浏览) |
![]() | ![]() |
# 从 npm 安装(推荐)
dsh plugin --profile web add dsh-ui-tools
# 或从 GitHub 安装
dsh plugin --profile web add github:xing-shuyin/dsh-ui-tools
把 dsh-ui-tools 加进 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles:
{
"dependencies": { "dsh-ui-tools": "^0.1.1" },
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-ui-tools"
]
}
}
}
重启 dsh web 并刷新页面。右侧工具面板默认展开;收起后点击右侧边缘的悬浮 🛠️ 按钮即可重新打开。
⚠️ 注意:终端使用
node-pty在 dsh 进程内直接启动 shell,不经过 dsh 的沙箱 —— 与 pi-web-ui 一致。
npm install # 需要允许 esbuild / node-pty 的安装脚本
npm run build # 打包 client → client/client.js
dsh-ui-tools/
├── package.json # 插件包清单 (dsh.bundle.patch / dsh.client)
├── cordis.patch.yml # bundle 层:插入插件行
├── dsh/
│ ├── index.js # Host 端:HTTP 路由 + node-pty 终端 + git + mentions 富化
│ ├── background-servers.js # 后台服务检测(移植自 pi-web-ui):端口 diff + 管理
│ └── marker-todo.js # 通用内联标记系统(发布 inlineMarkers 服务)+ todo 功能
├── client/
│ ├── src/ # Client 端源码 (TSX, esbuild 打包)
│ └── client.js # 构建产物 (window.__ModuleLoader__ 协议)
├── examples/
│ └── inline-note/ # 第三方内联标记工具示例(官方 bundle 格式)
└── scripts/build-client.mjs
| 本插件 | pi-web-ui 来源 |
|---|---|
dsh/index.js 终端管理 | server/terminals.ts(node-pty + 命令文件) |
dsh/index.js 文件读写/预览分类 | server/agent-service.ts(readFile / listFiles / hexDump / workspacePath) |
client/src/TerminalView.tsx | web/src/components/TerminalPanel.tsx + TermXterm.tsx |
client/src/GitView.tsx + git-parse.ts | web/src/components/SCMPanel.tsx |
client/src/FilesView.tsx + FilePreview.tsx | web/src/components/RightPanel.tsx + FilePreview.tsx |
| 提及(随问题发送) | pi-web-ui 的 attachment(inline / reference / lines) |
| 声音提示(Web Audio 合成 + 设置) | web/src/sounds.ts + web/src/components/SoundSettings.tsx |
MIT
FAQs
dsh web 插件:项目文件查看器(可预览/编辑/提及文件)、多终端(快捷命令)、Git 面板(变更列表/推送拉取/分支切换)。功能移植自 pi-web-ui。
We found that dsh-ui-tools demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.