yangshen830-eng/dsh-editor

DSH Code Editor Plugin: VS Code style interface, built-in file tree, Monaco editor, cross-file search/replace, Markdown preview, and Git diff

Project Overview项目介绍

This is a VS Code-style code editor plugin for DeepSeek Harness (DSH). It adds a "Files" tab to the main session area, offering file tree browsing, Monaco editor, cross-file search/replace and Markdown preview. It works for DSH development and documentation, requires a DSH restart after changes.

这是运行在DeepSeek Harness(DSH)上的VS Code风格代码编辑器插件,会在会话主区新增「文件」标签页,提供文件树、Monaco编辑器、跨文件搜索替换、Markdown预览等能力,适合DSH内开发、文档写作场景使用,插件变更后需重启DSH生效。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 1 warning1 项注意
  • Only 2 stars - very few users, little community feedback星标只有 2,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add dsh-editor

把 yangshen830-eng/dsh-editor 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

DSH Editor

一个运行在 DeepSeek Harness (DSH) 里的 VS Code 风格代码编辑器插件:在会话主区新增一个「文件」标签页,提供文件树、Monaco 编辑器、跨文件搜索/替换、Markdown 预览、Git 状态等能力。

以**标准 Cordis 插件(npm 包)**形式分发,可通过 dsh plugin add 一键安装、重启后依然生效。

功能

  • 文件树:浏览当前工作区目录(自动跟随会话/工作区切换),展开/折叠,Git 状态角标(M/A/??…),点击角标查看 diff。
  • Monaco 编辑器:多文件标签页、语法高亮、自动换行/Minimap/字号/Tab 宽度可配置、快捷键可自定义。
  • 跨文件搜索:基于 ripgrep,流式增量出结果、命中高亮、虚拟滚动(上限 20000 条)、大小写/全字/正则开关、包含/排除 glob、搜索历史、跨文件替换。
  • Markdown 预览:源码 / 预览 / 分屏三视图,marked 渲染 + DOMPurify 消毒 + highlight.js 高亮 + mermaid 图表 + KaTeX 公式 + 任务列表勾选。
  • 快速打开:Ctrl+P 按相对路径模糊匹配。
  • 对话路径跳转:对话里行内代码形式的文件路径可 Ctrl+点击(macOS Cmd+点击)直接切到「文件」页并打开。
  • 主题同步:跟随 DSH 明暗主题,Monaco/highlight.js/mermaid 实时切换。

安装

从 GitHub 安装(推荐)

dsh plugin --profile web add git@github.com:yangshen830-eng/dsh-editor.git

从本地目录安装

dsh plugin --profile web add file:/path/to/dsh-editor

从 npm 安装(发布后)

dsh plugin --profile web add dsh-editor

安装后重启 DSH(dsh web --profile web)即可在会话主区看到「文件」标签页。

说明:dsh plugin add 会把包加入 dsh.profile.bundles,profile 启动时依据本包的 dsh.bundle.patch(cordis.patch.yml)挂载 Host 端,并依据 dsh.client 声明加载浏览器端。客户端模块表的扫描结果在进程内缓存,因此插件集变化需重启 DSH 生效。

目录结构

dsh-editor/
├── lib/
│   ├── index.js           # Host 端(Node 进程:fs/git/subprocess 搜索后端 + /editor RPC)
│   └── client.js          # Client 端(浏览器:UI、Monaco、搜索、预览,经 /editor RPC 调 Host)
├── cordis.patch.yml       # dsh.bundle.patch:把 Host 端插件行 insert 进 profile
├── package.json           # dsh.bundle.patch + dsh.client 声明
├── src/                   # 动态插件(dynamic Cordis Plugin)形式的等价源码,供参考/单会话快速安装
├── install/INSTALL.md     # 安装与迁移说明
├── README.md
└── LICENSE

架构

DSH 的浏览器 UI 插件由两半组成,通过 npm 包的 dsh 字段声明挂载:

  • Host 半(lib/index.js):标准 Cordis 插件,inject: ['connection'],在 apply 里用 ctx.connection.rpc.handle('/editor', handler) 暴露私有 JSON RPC。fs:*(文件读写/列举/项目根/搜索)、git:*(状态/diff)各端点走一个 dispatch 表。
  • Client 半(lib/client.js):window.__ModuleLoader__.load(...) 模块,require("react") 拿 React,inject: ['slots', 'connection', 'timer', 'sessions'],用 ctx.connection.rpc.call('/editor', endpoint, payload) 调 Host,用 ctx.slots.inject 注册「文件」标签页与设置页;sessions 服务提供当前会话的 cwd,作为文件树默认根。

两半之间只传输可 JSON 序列化的数据。

src/ 动态插件源码

src/host.js 与 src/client.js 是同一编辑器的动态插件(dynamic Cordis Plugin)形式源码,适合临时试玩:在一个 DSH 会话里让 Agent 用 cordis_define + cordis_run 安装即可,无需改 profile。缺点是不落盘、进程重启即失效。详见 install/INSTALL.md。

许可证

MIT

← 上一个 Prev dsh-token-stats 下一个 Next dsh-git →