前言¶
DeepSeek Harness(DSH)把对话、轨迹和工具调用收进同一套 Web 客户端。智能体改代码时,工作区文件往往只能通过终端或外部编辑器查看;审阅 diff、对照上下文改几行、顺手跑一条命令,需要在多个窗口之间切换。
dsh-code-ide 由 SakalioLabs 维护,以可选插件的形式给 Harness 增加一个浏览器 IDE 工作台。它不替换 Harness 首页、对话、会话、设置或工具界面,只在会话顶部多出一个 IDE 页签;默认仍是 对话。下面介绍它的定位、能力边界,以及安装与日常使用步骤。
这是什么¶
dsh-code-ide(GitHub:SakalioLabs/dsh-code-ide)是面向 DeepSeek Harness Web profile 的客户端插件。当前版本为 v0.1.0-alpha.0(GitHub 预发布版,提供预构建包,不发布到 npm)。许可证为 MIT。
插件通过同源路由 /dsh-code-ide/ 嵌入官方会话区域。父级 Harness 会把当前会话的工作区、浅色/深色主题以及 zh/en 语言同步给 IDE。界面借鉴 VS Code 工作台习惯,但它不是 Code-OSS,也没有 VS Code Extension Host 或 Marketplace 兼容层。
在 Harness 中的页签结构如下:
DeepSeek Harness /
├─ 对话(官方,默认)
├─ 轨迹(官方)
└─ IDE(本插件,可选)
└─ /dsh-code-ide/?embedded=1&workspaceId=…
只有用户打开 IDE 页签时工作台才会挂载;该会话的普通消息输入栏会暂时隐藏,切回对话后原样恢复。等待用户回答的问题或审批仍具有更高优先级,不会被 IDE 隐藏。
环境要求¶
安装前核对 Harness 与运行环境是否匹配。当前 main 已按 DeepSeek Harness 0.1.1-rc.2(标签 dsh-v0.1.1-rc.2,源码提交 b150a551b8d465e31e418e1b2eaf5e79bbb7d28e)完成兼容性验证;其他提交或未来 npm RC 尚不属于兼容承诺。
| 项目 | 要求 |
|---|---|
| DeepSeek Harness | 0.1.1-rc.2 |
| Node.js | ^22.19.0 或 >=24.0.0 |
| pnpm | 本插件仓库固定 10.17.0;Harness 固定 11.7.0 |
| 浏览器 | 现代同源浏览器,支持 WebSocket、localStorage、Web Locks |
| 搜索 | @vscode/ripgrep@1.18.0 对应平台二进制 |
| 终端 | 复用目标 Harness Host 图中提供的 node-pty@1.2.0-beta.15,不要手动安装第二份原生副本 |
npm 当前提供 @deepseek-ai/dsh@0.1.1-rc.2。需要可复现环境时,固定到上述标签或提交。
核心功能¶
以下能力均来自插件 README 与 package.json 说明,按模块归纳。
资源管理器与文件操作¶
- 有界懒加载、Seti 风格文件图标、键盘导航、展开状态保留、工作区相对路径校验。
- Windows x64 本地 NTFS 工作区:支持新建文件/目录、拖放移动、重命名和永久删除。
- Linux x64 Host(运行时
openat2探针通过)与 macOS x64/arm64 本地 APFS 工作区(运行时libSystem探针通过):支持新建文件和目录;移动、重命名和删除仍保持禁用。
编辑器与预览¶
- CodeMirror 6 编辑器:多标签、拖拽/键盘排序、最多 4 个编辑器分组,每文档独立撤销/选择/滚动状态,自动换行、缩进、行尾和语言模式。
- 语法高亮:内置并按需加载 Plain Text、JavaScript、JSX、TypeScript、TSX、JSON、CSS/SCSS/Less、HTML、Markdown、Python、C、C++、Java、Go、Rust、Shell、PowerShell、YAML、XML 和 SQL。
- Markdown 预览:
.md、.markdown、.mdx可在源码与安全预览间切换;预览直接反映当前未保存的编辑缓冲区。 - 媒体预览:只读展示常见图片(PNG、JPEG、GIF、WebP、AVIF)、音频(MP3、WAV、OGG、FLAC)和视频(MP4、WebM、MOV);音视频使用浏览器原生控件和 Range 流式读取,且不会自动播放。
保存、搜索与命令¶
- 版本感知保存、外部变化检测、冲突处理、删除文件重建、脏标签关闭确认,以及浏览器本地的有界 hot-exit 恢复。
- Quick Open、工作区搜索、正则/大小写/全词/include/exclude、结果导航和先预览后应用的替换。替换只修改编辑缓冲区,不会自动保存到磁盘。
- 命令面板、可编辑的一段或两段快捷键、冲突检测和浏览器本地持久化。
终端与布局¶
- 多个命名 xterm.js 会话,工作目录为当前工作区,支持查找、清屏、重命名、重启、中断、终止、折叠和最大化。
- 桌面/紧凑布局、可调整面板;IDE UI 支持简体中文和英语,并跟随 Harness 热切换。
安装与启用¶
快速安装(推荐)¶
已安装 dsh 的用户运行:
dsh plugin --profile web add github:SakalioLabs/dsh-code-ide
如果你从 Harness 源码 checkout 运行,则在该目录中把上面的 dsh 替换为 pnpm dsh。仓库已提交与源码同步的预构建 dist/,Git 安装不会在用户环境重新构建本插件,因此不需要为 dsh-code-ide 配置 allowBuilds,也不需要 clone 本插件或手工复制 patch。
也可以把下面一句直接发给 Harness,由它代为安装并核对:
请将 github:SakalioLabs/dsh-code-ide 安装到当前 DeepSeek Harness 的 Web profile,并在完成后核对 plugin list 与 --dump-config 中只有一个 dsh-code-ide。
注意:GitHub 简写 github:SakalioLabs/dsh-code-ide 会跟随仓库 main。需要固定到已发布版本、校验下载内容或离线留档时,应使用 Release 流程。
固定版本安装(可审计)¶
Linux/macOS 下载并校验 v0.1.0-alpha.0:
curl -fLO https://github.com/SakalioLabs/dsh-code-ide/releases/download/v0.1.0-alpha.0/dsh-code-ide-0.1.0-alpha.0.tgz
curl -fLO https://github.com/SakalioLabs/dsh-code-ide/releases/download/v0.1.0-alpha.0/dsh-code-ide-0.1.0-alpha.0.tgz.sha256
sha256sum -c dsh-code-ide-0.1.0-alpha.0.tgz.sha256
校验通过后,在 Harness checkout 中安装本地文件:
pnpm dsh plugin --profile web add /absolute/path/to/dsh-code-ide-0.1.0-alpha.0.tgz
核对并启动¶
安装、启动、更新和卸载必须使用同一个 DSH_HOME。在 Harness checkout 中执行:
pnpm dsh plugin --profile web list --depth 0
pnpm dsh --profile web --dump-config
pnpm dsh web
访问 http://127.0.0.1:3080/,进入一个已关联工作区的会话,然后选择顶部的 IDE 页签。插件包会自动应用自己的 dsh.bundle.patch;不要再手工复制 examples/dsh-code-ide.bundle.patch.yml,否则会得到重复条目。--dump-config 中应保留全部官方 Web 条目,并且只有一个启用的 dsh-code-ide。
更新与卸载¶
更新前先停止 dsh web,然后重新 add 或换用新 Release,再重启 Harness:
pnpm dsh plugin --profile web add github:SakalioLabs/dsh-code-ide
pnpm dsh plugin --profile web remove dsh-code-ide
卸载不会删除 Harness 会话、工作区文件,也不会自动清除浏览器 localStorage 中的 IDE 偏好和恢复数据。
典型用法¶
经过上面的安装步骤后,可按以下顺序使用:
- 在 Harness 中打开或创建一个已关联工作区的会话。
- 选择 IDE 页签;工作区尚未就绪时会显示明确状态,不会静默切到另一个工作区。
- 从资源管理器或 Quick Open 打开文本、Markdown 或受支持的媒体文件;Markdown 可在源码和预览间切换。
- 编辑文本并显式保存;预览会反映 Markdown 当前未保存的缓冲区,搜索替换产生的修改同样需要保存。
- 需要 Harness 输入框时切回 对话。
常用快捷键:
| 操作 | Windows/Linux | macOS |
|---|---|---|
| Quick Open | Ctrl+P |
Cmd+P |
| 命令面板 | Ctrl+Shift+P / F1 |
Cmd+Shift+P / F1 |
| 保存 | Ctrl+S |
Cmd+S |
| 资源管理器 / 搜索 | Ctrl+Shift+E / Ctrl+Shift+F |
Cmd+Shift+E / Cmd+Shift+F |
| 跳转到行 | Ctrl+G |
Cmd+G |
| 快捷键设置 | Ctrl+K,再 Ctrl+S |
Cmd+K,再 Cmd+S |
| 显示/隐藏终端 | Ctrl+反引号 |
Cmd+反引号 |
| 自动换行 | Alt+Z |
Option+Z |
配置项¶
默认 bundle 配置示例:
- insert:
- id: dsh-code-ide
name: dsh-code-ide
config:
maxFileBytes: 4194304
maxMediaBytes: 536870912
terminalShell: auto
| 选项 | 默认值 | 说明 |
|---|---|---|
maxFileBytes |
4 MiB | 可读写 UTF-8 文本文件上限 |
maxMediaBytes |
512 MiB | 单个只读媒体预览上限;可配置,硬上限 8 GiB |
maxDirectoryEntries |
5,000 | 单次目录列表的直属条目上限 |
terminalShell |
auto |
Windows 使用 COMSPEC,Unix 使用 SHELL,并带回退 |
terminalArgs |
shell 默认 | 显式 shell 参数数组 |
maxTerminalSessions |
8 | Host 活跃/待创建 PTY 上限,硬上限 64 |
maxConcurrentSearches |
2 | 并发受管搜索数 |
searchTimeoutMs |
30,000 | 搜索超时(毫秒) |
完整有界配置见仓库 src/host/plugin.ts。
适用场景与注意¶
适合谁
- 已在本机跑 Harness Web profile,且会话绑定了本地工作区的开发者。
- 希望在同一浏览器会话里对照智能体轨迹浏览、编辑工作区文件,而不反复切换外部 IDE 的用户。
- 需要内置终端在工作区根目录执行命令、配合对话页签来回审阅的场景。
安装前应核对
- 插件以当前
dsh进程的操作系统用户权限运行,IDE 终端不是沙箱。安装前建议阅读仓库源码与 MIT 许可证,确认文件操作与终端能力符合你的安全预期。 - 仅面向本机、同源 loopback 使用。当前没有远程用户认证、TLS、进程隔离、配额或完整审计日志,不要直接暴露到局域网或互联网。
- Linux/macOS 上移动、重命名和删除等结构性操作有平台限制;探针失败时相关操作会安全关闭,浏览、编辑、保存、搜索和终端不受影响。
- hot-exit、快捷键和部分恢复信息会以同源
localStorage明文保存;同源代码可以访问这些数据。 - Markdown 预览不会执行 raw HTML 或 MDX。
DSH 生态奉行「一切皆插件」;SkillHub 等社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。dsh-code-ide 在 SkillHub 上归类为客户端插件,当前 GitHub 星标约 11。
链接¶
- SkillHub 目录页:https://www.skillhub.cn/plugins/SakalioLabs/dsh-code-ide
- GitHub 仓库:https://github.com/SakalioLabs/dsh-code-ide
若你正在用 Harness 0.1.1-rc.2 处理本地工作区,且希望把文件浏览、编辑和终端收进会话内的可选页签,dsh-code-ide 提供了一条增量集成路径:不 fork 客户端,也不接管 Harness 首页,只在需要时打开 IDE 工作台。