DSH Web IDE:在会话页内嵌 VSCode 风格开发工作台

前言

在 DSH 里和模型协作时,工作区文件往往要在浏览器会话、本地编辑器与终端之间来回切换。会话侧能打开文件,但若缺少完整的树形浏览、保存、Git 与 shell,改代码和提交仍要跳出当前界面。下面介绍的 DSH Web IDE(npm 包名 @zhaoyang10/dsh-web-ide,仓库 fengzhaoy/dsh-web-ide)把 Monaco 编辑器、资源管理器、Git、交互式终端和全局搜索收进会话页第三个 Tab,并与当前 session 的工作区绑定,减少上下文切换。

这是什么

DSH Web IDE 由社区维护者 fengzhaoy 发布,分类为 客户端 插件。它以 DSH bundle 形式分发:浏览器侧加载 lib/client.js 注册 会话 → 轨迹 → IDE 中的 IDE Tab;Host 侧通过 ideTools 远程命名空间提供文件写入校验、Git、ripgrep 搜索、node-pty 终端以及运行/调试进程管理。许可证为 MIT(见仓库 README)。

插件声明的 DSH 环境要求为 >=0.2.0-rc.2(见 package.json 的 dsh.env.minVersion);README 另建议本机已安装 DSH CLI 且 dsh 命令可用(文档中写「建议 0.1.6+」),并具备可正常启动的 web profile(默认目录 ~/.dsh/profiles/web)。

核心功能

资源管理器与编辑器

  • 无限层级目录树,按扩展名匹配文件图标;新建/重命名/删除经 Host 工作区路径校验,避免越界访问。
  • 文件条目展示 Git 状态(未跟踪、修改、已暂存等);超过 2MB 的文件分页展示。
  • Monaco Editor + Dark Modern 主题:语法高亮、行号、折叠、多 Tab;Ctrl/Cmd+S 或状态栏保存;外部改动导致冲突时可选择覆盖或重新加载。
  • Markdown 支持编辑/预览切换;Monaco Worker 内嵌,diff 高亮不依赖 CDN。

源代码管理(Git)

更改列表支持逐文件或批量暂存/取消暂存/丢弃;双栏 Diff、Graph 提交历史、分支检出/新建/删除与发布(git push -u origin)、Fetch/Sync。提交支持常规、amend、signoff、提交并推送/同步。AI 生成提交信息会复用当前会话模型撰写提交说明。

终端与全局搜索

  • 终端:node-pty 真实交互式终端,多实例与分屏;关闭面板不杀进程,重开可回放 scrollback。
  • 搜索:基于 ripgrep 的全工作区检索,支持正则、大小写与 include glob(如 *.ts);入口为命令面板「查看: 显示搜索」(资源管理器标题栏搜索图标用于按名称筛选文件树)。

运行与调试

  • 右键或命令面板 运行当前文件(多种语言单文件);自动发现 package.json、Makefile、Cargo.toml 等中的任务。
  • 运行结果记录退出码与耗时;输出中的错误行可解析进 Problems 面板。
  • Node.js 调试通过 Host 以 --inspect-brk 拉起进程,浏览器 直连 V8 Inspector WebSocket;支持断点、单步、调用栈与调试控制台求值;可配合 Chrome chrome://inspect 附加同一目标。

平台集成

  • 注册为会话页 IDE Tab,卸载 bundle 后 Tab 自动移除。
  • 会话侧打开的文件会同步到 IDE;IDE 浏览时侧边栏高亮联动。
  • 中/英界面跟随 DSH 客户端语言设置。

安装与启用

安装分两步:把包装入 web profile 依赖,再把包名写入 profile 的 dsh.profile.bundles,最后重启 dsh web。启动时包内 cordis.patch.yml 会把 ui-ide 注册进 web 客户端 roster,一般无需手改 roster。

前置:dsh 可用;dsh web 能正常启动。

从 npm 安装(推荐)

1、安装到 web profile:

dsh plugin --profile web add @zhaoyang10/dsh-web-ide

2、编辑 ~/.dsh/profiles/web/package.json,在 dsh.profile.bundles 数组末尾追加:

"dsh": {
  "profile": {
    "bundles": [
      "...其他 bundle...",
      "@zhaoyang10/dsh-web-ide"
    ]
  }
}

3、重启:

dsh web

验证:浏览器右侧工具栏应出现 IDE 入口;进入后检查文件树、编辑器、终端与 Git 面板。

卸载:先从 bundles 移除包名,再执行 dsh plugin --profile web remove @zhaoyang10/dsh-web-ide,并重启 dsh web。

本地开发调试可使用 link: 或 file: 路径安装;若不想列入 bundle,可在 profile 的 cordis.patch.yml 手动插入 ui-ide roster 条目(详见仓库 README「安装到 DSH」)。

典型用法

界面入口:会话页顶部 会话 → 轨迹 → IDE;IDE 工作区对应当前 session 的 cwd。

编辑与保存:在树中打开文件,修改后 Tab 与状态栏显示未保存;保存快捷键或状态栏按钮写入磁盘;关闭未保存 Tab 会确认是否保存。

Git:打开 Source Control,暂存变更后编写提交信息,Ctrl/Cmd+Enter 提交;需要时可点 AI 生成提交信息;「更多提交操作」含 amend、signoff、提交并推送/同步等。

终端:在终端面板新建实例,需要时用 Ctrl+C 中断;面板关闭后进程仍在,重开可看历史输出。

运行/调试:活动栏「运行和调试」查看任务与断点;编辑器右键 运行当前文件;对 JS/TS 使用 调试当前文件 时,IDE 会注册断点后放行 --inspect-brk 进程。

全局搜索:命令面板打开搜索视图,输入关键词回车,点击结果跳转到文件与行号。

会话联动:在会话里让模型打开的文件会自动出现在 IDE;在 IDE 中浏览文件时,会话侧同步高亮。

适用场景与注意

适合:希望在 DSH web 会话同一页面内完成浏览、编辑、Git、终端与 ripgrep 搜索的智能体开发者;需要与会话模型联动写提交说明、又希望 Git 操作图形化的用户。

注意:

  • 插件 Host 服务以当前 dsh 进程权限 读写工作区、执行 Git 与终端命令;安装前请阅读源码与 MIT 许可证,确认符合你的安全策略。
  • 保存走本插件 ideTools.writeFile,含工作区校验与 sandbox 围栏;并发保存可能与磁盘版本冲突,界面会提示而非静默覆盖。
  • 调试目标按会话归属管理,插件卸载或页面卸载会终止相关进程;断点记录在浏览器侧按工作区持久化。
  • 社区目录页 skillhub.cn 插件条目 与 GitHub 仓库由维护者发布,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」,本文事实以仓库 README 与包内声明为准。

结尾

DSH Web IDE 把 VSCode 风格工作台嵌入会话页 IDE Tab,用 Monaco、Git 全流程、真实终端与 ripgrep 搜索覆盖日常改码路径,并用会话模型辅助生成提交信息。安装命令与 bundle 配置见上文;更多架构说明(浏览器 bundle 与 Host ideTools 分工、调试 CDP 直连方式)见 GitHub README,插件索引见 SkillHub 目录页。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜