VS Code-style code editor: sidebar file tree over the workspace, Monaco editing, file read/write, Git status and diff, search, and Markdown preview.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-editor
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:yangshen830-eng/dsh-editor
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
This plugin publishes its README in Chinese only.
一个运行在 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+点击(macOSCmd+点击)直接切到「文件」页并打开。 - 主题同步:跟随 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。
许可证
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 8296
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 8296
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
omdsh-dev/DSH-better-sidebar★ 3968
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
ccch1mneyyy/dsh-TUI★ 3948
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 3877
A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, Kimi, SiliconFlow, Ark, Zhipu, MiniMax and more) with per-model balance and subscription quota, plus task-end sound, imported audio, custom roles and a resource manager. Local-only, no telemetry.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1413
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.