在聊天旁搭起仿 VS Code 的编辑器、终端与 Git 面板
30.5/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add AIRIKE1/dsh-ide-panels该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 50 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(runtime_smoke_failed · 2026/11/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-ide-panels(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/14 18:57:33
🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0🔴 扫描:高危尚无人工评估
静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。
命令参数由运行时变量拼接读写/删除本地文件发起外部网络请求
查看扫描证据(共 65 处,展示前 26 条)
- 读取本地文件lib/index.js:87
return JSON.parse(readFileSync(PROFILE_PKG_PATH, "utf8").replace(/^ FEFF/, "")); - 写入本地文件lib/index.js:90
writeFileSync(PROFILE_PKG_PATH, JSON.stringify(pkg, null, 2) + "\n", "utf8"); - 读取本地文件lib/index.js:97
return statSync(p).isDirectory(); - 读取本地文件lib/index.js:105
if (!existsSync(pkgPath)) return false; - 读取本地文件lib/index.js:107
const pkg = JSON.parse(readFileSync(pkgPath, "utf8")); - 读取本地文件lib/index.js:129
const pkg = JSON.parse(readFileSync(pkgPath, "utf8")); - 读取本地文件lib/index.js:142
for (const entry of readdirSync(NODE_MODULES_DIR)) { - 写入本地文件lib/index.js:202
appendFileSync(DIAG_PATH, line, "utf8"); - 写入本地文件lib/index.js:206
writeFileSync(DIAG_PATH, tail, "utf8"); - 写入本地文件lib/index.js:252
writeFileSync(full, body.content, "utf8"); - 执行外部命令运行时拼接lib/index.js:316
exec(`git -C "${target}" status --porcelain -z`, { timeout: 15000, windowsHide: true }, (err, stdout) => { - 执行外部命令运行时拼接lib/index.js:348
exec(`start "" "${full}"`, { windowsHide: true, shell: "cmd.exe" }, (err) => { - 执行外部命令运行时拼接lib/index.js:437
exec(`git -C "${target}" ${args}`, { timeout: 20000, windowsHide: true, maxBuffer: 8 * 1024 * 1024 }, (err, stdout, stderr) => { - 删除本地文件递归lib/index.js:557
rmSync(snapDir, { recursive: true, force: true }); - 写入本地文件lib/index.js:558
mkdirSync(snapDir, { recursive: true }); - 写入本地文件lib/index.js:576
mkdirSync(dirname(dest), { recursive: true }); - 执行外部命令固定命令lib/index.js:694
exec(`wsl -l -q`, { timeout: 8000, windowsHide: true, maxBuffer: 1024 * 1024 }, (err, stdout) => { - 执行外部命令来自配置/变量lib/index.js:708
exec(cmd, { timeout: 12000, windowsHide: true, maxBuffer: 4 * 1024 * 1024 }, (err, stdout, stderr) => { - 启用终端会话(PTY)lib/index.js:740
const proc = pty.spawn(shell, [], { - 启用终端会话(PTY)lib/index.js:964
const t = pty.spawn(shell, [], { cols: 40, rows: 10, cwd: process.cwd(), env: process.env, useConpty: false }); - 发起网络请求lib/client.js:929
fetch("/dsh-ui-panels/pty/start", { - 发起网络请求lib/client.js:942
fetch("/dsh-ui-panels/pty/write", { - 发起网络请求lib/client.js:957
fetch("/dsh-ui-panels/pty/read?id=" + encodeURIComponent(ptyInfo.id) + "&since=" + ptyInfo.since) - 发起网络请求lib/client.js:985
fetch("/dsh-ui-panels/pty/kill", { - 发起网络请求lib/client.js:1127
fetch("/dsh-ui-panels/diag", { - 发起网络请求lib/client.js:1137
return fetch(url, opts).then(function (r) {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 仿VSCode编辑器外壳
- Git源码管理
DSH 客户端布局插件:仿 VS Code 的 IDE 外壳——中间标签工具区/右侧栏/底部面板,真实 PowerShell 终端 + 本地代码变更对比 + Git 源码管理 + SSH/WSL 远程
README
由 DeepSeek 最新模型翻译生成dsh-ide-panels
DSH(DeepSeek Harness)客户端布局插件 —— 仿 VS Code 的 IDE 外壳
license
version
DeepSeek Harness
English · 中文
“聊天的左边是对话,聊天的右边是你的 IDE。”
中间工具标签区(编辑器/终端/浏览器/代码变更,可多开)· 右侧栏(资源管理器/搜索/Git/远程)· 底部面板(终端/输出,可拉伸)——全部可开关,状态持久化。
📚 导航
⚡ 安装 · 🎨 功能 · 🖥️ 界面结构 · ⌨️ 快捷键 · 🔍 工作原理 · 🔷 更新日志 · ❓ FAQ · 🗺️ Roadmap
⚡ 安装
2026 年了,你有 Agent,让它自己装。打开 DeepSeek Harness 的插件市场或直接把下面这句丢给任意 Agent:
帮我安装 dsh-ide-panels 这个插件:https://github.com/AIRIKE1/dsh-ide-panels
Agent 会自动识别 DSH 的 profile 目录、完成复制、注册 bundle。完成后重启 DSH Desktop 即可看到外壳。
🛠️ 想自己手动装?
展开完整文档(README 剩余 1 节)
dsh-ide-panels DSH(DeepSeek Harness)客户端布局插件 —— 仿 VS Code 的 IDE 外壳 license version DeepSeek Harness English · 中文 “聊天的左边是对话,聊天的右边是你的 IDE。” 中间工具标签区(编辑器/终端/浏览器/代码变更,可多开)· 右侧栏(资源管理器/搜索/Git/远程)· 底部面板(终端/输出,可拉伸)——全部可开关,状态持久化。 📚 导航 ⚡ 安装 · 🎨 功能 · 🖥️ 界面结构 · ⌨️ 快捷键 · 🔍 工作原理 · 🔷 更新日志 · ❓ FAQ · 🗺️ Roadmap ⚡ 安装 2026 年了,你有 Agent,让它自己装。打开 DeepSeek Harness 的插件市场或直接把下面这句丢给任意 Agent: 帮我安装 dsh-ide-panels 这个插件:https://github.com/AIRIKE1/dsh-ide-panels Agent 会自动识别 DSH 的 profile 目录、完成复制、注册 bundle。完成后重启 DSH Desktop 即可看到外壳。 🛠️ 想自己手动装?点开看路径 一键脚本(在插件源码目录执行): .\install.ps1 手动三步: 1. 把 dsh-ide-panels 整个文件夹复制到 %USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-ide-panels; 2. 编辑 %USERPROFILE%\.dsh\profiles\desktop\package.json,在 dsh.profile.bundles 数组末尾追加 "dsh-ide-panels"; 3. 重启 DSH Desktop(新插件的 bundle 需要重新生成启动图,无法热加载)。 卸载:从 bundles 里移除该名称、删除 node_modules\dsh-ide-panels 文件夹即可。 Windows 特殊处理、排障、验证方法见 📦 详细安装说明 INSTALL.md。 🎨 功能 | 区域 | 内容 | 亮点 | | 🗂️ 中间标签页工具区 | 编辑器 / 文档 / 终端 / 浏览器 / 代码变更 | 同一工具可无限多开、标签拖拽排序、关闭即回收;空状态是“打开工具”面板 | | 📁 右侧栏 | 资源管理器 / 搜索 / 源代码管理 / 远程 / 扩展管理 / 设置 / Agent | 图标竖排 + 面板,底部带开关按钮 | | 📉 底部面板 | 终端 / 调试控制台 / 输出 | 常驻标签条、高度可自由拉伸、内容区随动 | | 🖥️ 真实 PowerShell 终端 | node-pty + xterm.js | winpty 后端稳定输出、Ctrl+滚轮缩放字号、容器自适应行列 | | 🆚 本地代码变更对比 | 快照基线 → 前后文件对比 | 不依赖 git:建立基线后,改过的文件左右分栏展示,新增代码绿色高亮 | | 🌿 Git 源码管理 | status / stage / commit / diff / log | 无仓库时一键初始化;变更列表 + 提交历史 | | 🌐 远程资源管理器 | SSH / WSL | 直接输入 IP/主机连接;SSH 分组读取 ~/.ssh/config、WSL 列出发行版 | | 🔍 本地文件搜索 | 文件名 / 内容 / 两者 | 不依赖 Agent,递归扫描,点击结果直达编辑器 | 🖥️ 界面结构 ┌─────────────┬──────────┬──────────────────┬───────────┬─────────┐ │ │ │ │ 编辑器 │ │ │ DSH 会话 │ 聊天 │ 中间标签工具区 │ 文档 │ 右侧栏 │ │ 侧栏 │ (常驻) │ (标签可多开) │ 终端 │ (竖排) │ │ │ │ │ 代码变更 │ │ │ │ ├──────────────────┴───────────┴─────────┤ │ │ │ 底部面板:终端 / 调试控制台 / 输出 │ └─────────────┴──────────┴─────────────────────────────────────────┘ - 左侧:DSH 自带会话侧栏(保留) - 聊天:始终在左侧 400px,不被任何面板遮挡 - 中间:工具标签区(可拖拽/多开/关闭) - 右侧:主侧栏(图标竖排 + 面板) - 底部:面板条(可拉伸高度) ⌨️ 快捷键 | 操作 | 方式 | | 开关整个外壳 | Ctrl+Shift+S | | 切换中间工作区 | Ctrl+Shift+M | | 切换右侧栏 | Ctrl+Shift+J | | 切换底部面板 | Ctrl+Shift+B | | 收起单个面板 | 面板标题右侧 ✕ | | 终端缩放字号 | 终端内 Ctrl+滚轮 | 所有开关状态持久化在 Host settings(ui-panels 命名空间,全小写,符合 DSH 命名规范),重启后保持。 🔍 工作原理 1. 插件注册进官方 shell.overlay 槽位(root 级 list),在 DSH 对话界面叠加可开关的外壳; 2. 右侧栏注册进 AppFrame 的右列槽位(DSH 2.0.10+ 为 rightbar,旧版为 details;priority -1 压制官方右栏),作为同级网格列渲染——对话列自动变窄、互不遮挡; 3. 布局锚点与官方类名解耦:官方 AppFrame 的类名是构建期 CSS Modules 哈希(升级即变),插件改为运行时用稳定锚点 data-shell-overlay 找到框架与其三个列,打上自有属性 data-dp-frame / data-dp-col,CSS 只引用这两个属性——DSH 换哈希也不会失配; 4. 网格用 CSS 变量(--dp-left/--dp-right/--dp-chat/--dp-strip)动态驱动:侧栏宽、聊天宽、右侧宽、底部高都能拖拽/拉伸,并随窗口大小自适应(中间工具区保底 300px); 5. 终端走 host 端 node-pty(winpty 后端)——真实 PowerShell 进程,xterm.js 渲染,轮询读写; 6. 代码变更走本地文件快照(.dsh-changes/ 目录)——不依赖 git,任何目录都能对比; 7. 搜索/远程/Git 全部由 host 路由直连本地(/dsh-ui-panels/),不经过 Agent。 🔷 更新日志 🔷 2026.09.14 — v0.1.4 发布:底栏与中间工作区合并为同一块空间 之前的模型有问题:底栏是独立开关,中间工作区关掉后第 3 列仍然留着 1fr 的空档,底栏还孤零零浮在这块空档里,聊天栏也过不去。 现在: - 底栏属于中间工作区:关闭中间工作区,底栏一起消失(bottomOpen 偏好保留,重开中间会自动恢复);反过来打开底栏时会自动把中间工作区一起打开,不会浮在空档里 - 关闭中间工作区不再占空间:第 3 列收成 0px,聊天列改用 1fr 吃满这块空间(实测:聊天 381px → 700px),--dp-strip 归零让分栏手柄撑满全高 - 中间关闭时「聊天|中间」分栏手柄自动隐藏(没有可拖的分界),右侧栏按新空间重算宽度上限(聊天只保最小宽度,右侧能拖得更宽) - 新增 Ctrl+Shift+M 切换中间工作区(之前只有外壳/右侧/底部的快捷键) 🔷 2026.09.14 — v0.1.3 发布:性能优化 + 持久化致命 bug + 死代码清理 性能(都是实测数字,不是体感) | 项目 | 之前 | 现在 | | sync()(切面板/开标签/改设置都会跑) | 每次含一次全 DOM 扫描:18555 节点下 45–84ms | 扫描彻底移除,稳态 1.6–4.3ms | | 5 秒一次的诊断探针 | 84ms(每次都在全 DOM 上做 getBoundingClientRect + textContent) | 2–8ms(全量扫描改为每 60 秒一次) | | 窗口拖拽缩放 | 每个 resize 事件都跑一次 sync | rAF 合并,一帧最多一次 | | 后台(非当前标签)的终端 | 每个仍以 12.5 次/秒 轮询 | 隐藏即暂停(恢复可见时补回输出) | | host 端 pty 输出缓冲 | 无上限,长期不读会一直涨 | 封顶 1MB,丢弃最旧部分 | | 打开大文件 | 先把整个文件读进内存再截断(1GB 日志 = 1GB 内存) | 只读前 512KB | 功能:修复「面板状态完全不持久化」(最严重的一个) v0.1.0 存的 openTabs 是字符串数组,v0.1.1 改成对象数组后,host 启动时 settings.register() 校验既有持久化数据会抛错 → ui-panels 命名空间整个注册失败(客户端 status: unavailable)→ 右侧栏视图、底部展开态、打开的标签页既不保存也不恢复,而且因为拿不到 revision,写入也会被拒。 现在:openTabs 用宽松类型 + 再挂一份「全宽松」兜底 schema,任何历史数据都不会再把命名空间炸掉。诊断日志里新增每次加载一条的持久化自检(settings-read)。 功能:切标签不再卸载视图每个标签一个 pane、非活动的 display:none —— 编辑器里未保存的改动、终端会话与滚动历史、滚动位置都不会因为切标签而丢失(之前全部会丢)。 清理 - 删除不可达的左侧栏死代码:leftOpen / leftView / toggleLeft / openLeft / setLeftView + .dp-left CSS(用户设计里聊天固定在最左,插件左侧栏从未渲染过) - 视图分发表里重复的 browser 键与返回 null 的 chat 项 - 新增 tests/i18n.test.mjs:文案缺失/孤儿检查(中英各 151 条、129 个静态 key 全覆盖,view. 动态前缀单列校验) 🔷 2026.09.14 — v0.1.2 发布:一轮系统性排查 + 6 个 bug 修复 对 host 路由做了边界压测、对客户端做了真实页面自检(573 次心跳零运行期错误),发现并修掉: | # | 问题 | 影响 | | 1 | 搜索默认模式「文件名+内容」从不读正文(条件写错,只在文件名已命中时才搜内容) | 搜代码里的符号/关键字几乎搜不到东西 | | 2 | 空工作区时 dir/search/git/changes 的 path 为空静默回退到宿主进程 CWD | 无活动会话时会"搜出"DSH 安装目录的文件;极端情况下会在安装目录里建变更快照 | | 3 | /remote 未知 action 不报错,悄悄执行默认的 wsl ls | 打错参数会莫名执行 WSL 命令 | | 4 | /pty/kill 销毁不存在的会话返回 ok:true | 与 read/write 的 404 行为不一致 | | 5 | 二进制文件按 UTF-8 读进编辑器 → 一整屏乱码(UTF-16 文本同样) | 资源管理器点到图片/可执行文件时卡且乱;UTF-16 文本现在正确解码 | | 6 | 中间标签 key 用模块级计数器,客户端重载后计数器归零 → 与已恢复的历史标签撞 key | 关闭/拖动标签会作用到错误的标签 | 另修正一处不一致:dir/git/changes 对不存在的路径统一返回 404/400 而不是落到 CWD。 新增 tests/host-routes.test.mjs(stub webServer 直接调用 host 处理函数,覆盖上述全部修复 + 基础路由回归)。 🔷 2026.09.14 — v0.1.1 发布:适配 DSH Desktop 2.0.10 外壳重写 2.0.10 重写了 AppFrame,本插件两处硬编码跟着失效:① 布局列框架的 CSS Modules 哈希类名变了(.pI_x6G_frame → .qNbT7G_frame),4 列网格覆盖选择器失配,中间工具区浮到聊天列上方、右侧栏空白;② 官方右栏槽位改名(details → rightbar),右侧栏整块不再渲染;③ ctx.layout.closeDetails() 被 closeRightbar() 取代。 v0.1.1 起不再依赖任何官方哈希类名:运行时通过稳定的 data-shell-overlay 锚点定位框架与三个列,打上自有属性 data-dp-frame / data-dp-col,CSS 只引用这两个属性——以后 DSH 再换哈希也不会失配;右栏槽位双注册(rightbar 优先 + details 兜底,互斥只生效一个),新旧版本都能用;中间工具区最小宽度提到 300px,避免被聊天/右侧栏挤成一条缝;底部 4 个开关按钮改为无背景色。 🔷 2026.08.18 — v0.1.0 发布:首个版本。中间标签工具区(多开/拖拽/关闭)、右侧栏(资源管理器/搜索/Git/远程/扩展/设置/Agent)、底部面板(可拉伸 + 终端/调试/输出)、真实 PowerShell 终端(winpty + xterm)、本地代码变更对比(快照 + 前后高亮)、Git 源码管理、SSH/WSL 远程、本地文件搜索。 ⭐ 觉得好用的话,给仓库点个 Star 吧! ❓ FAQ 装了没效果? 重启 DSH Desktop。新插件的 bundle 需要重新生成启动图,无法热加载。 中间"打开工具"面板点不开工具? 旧版本设置里可能存了旧格式的标签数据;重启一次(host schema 已更新为多开结构)即可。 代码变更对比为什么是空的? 先点"建立基线"——它会把当前目录所有文本文件存一份快照;之后改过的文件才会列出来。不依赖 git,任何目录可用。 终端没有输出? 确认 host 端 node-pty 可用(重启后生效)。终端是真实 PowerShell(winpty 后端),连接断开点"重连"。 远程 SSH 连不上? 先在输入框填 user@ip 直接连接;用 ~/.ssh/config 里配置的主机需要免密/密钥认证。 怎么卸载? 从 dsh.profile.bundles 移除该名称,删除 node_modules\dsh-ide-panels 文件夹,重启。 🗺️ Roadmap - [x] 中间标签工具区(多开/拖拽/关闭/溢出收纳) - [x] 右侧栏(去重 + 竖排开关) - [x] 底部面板(可拉伸/常驻) - [x] 真实 PowerShell 终端 - [x] 本地代码变更对比(不依赖 git) - [x] Git 源码管理 / SSH+WSL 远程 / 本地搜索 - [ ] 设置里自定义右侧栏/中间工具 - [ ] 标签右键菜单(复制/固定) - [ ] 多工作区文件树 Created by AIRIKE · MIT License · Powered by DeepSeek Harness*
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
AIRIKE1/dsh-ide-panels
在聊天旁搭起仿 VS Code 的编辑器、终端与 Git 面板
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,288已汉化MCP
71.7
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9
原生编程智能体paean-ai/deeptide
由 DeepSeek 打造,为 DeepSeek 而生。
★ 1,107已汉化DSH
67.7
多引擎接力台emo-xiaoyu/harness-mix
macOS/Linux 已加入源码构建与启动适配;目标系统的完整桌面验收仍需在对应机器执行。安装方式、Linux…
★ 419已汉化DSH
66.8
这是你的仓库?认领条目