🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

VS Code 式 IDE 布局 anoslide/dsh-vscode-layout

DeepSeek Harness
anoslide79 天前有提交已提供中文文档扫描:含敏感能力

把 DeepSeek HarnessdshWeb 界面改造成 VS Code 式…

56.7/100
综合分
110
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add anoslide/dsh-vscode-layout
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · ui
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 79 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/20) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装;安装清单取自 plugins/dsh-client-vscode-layout/package.json

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@anoslide/dsh-client-vscode-layout(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 04:32:02

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 53 处,展示前 20 条)
  • 发起网络请求
    plugins/dsh-client-vscode-layout/lib/client.js:474
    fetch("/vscode-files/git?path=" + encodeURIComponent(root))
  • 发起网络请求
    plugins/dsh-client-vscode-layout/lib/client.js:497
    fetch("/vscode-files/search?path=" + encodeURIComponent(root) + "&q=" + encodeURIComponent(q))
  • 发起网络请求
    plugins/dsh-client-vscode-layout/lib/client.js:511
    fetch("/vscode-files/list?path=" + encodeURIComponent(path))
  • 发起网络请求
    plugins/dsh-client-vscode-layout/lib/client.js:565
    fetch("/vscode-files/git?path=" + encodeURIComponent(root))
  • 发起网络请求
    plugins/dsh-client-vscode-layout/lib/client.js:590
    fetch(endpoint + "?path=" + encodeURIComponent(parent), {
  • 发起网络请求
    plugins/dsh-client-vscode-layout/lib/client.js:615
    fetch("/vscode-files/rename?path=" + encodeURIComponent(renaming.path), {
  • 执行外部命令固定命令
    plugins/dsh-host-files/lib/index.js:113
    execFile("git", ["-C", root, "status", "--porcelain=v1", "--untracked-files=normal"], {
  • 读取本地文件
    plugins/dsh-host-files/lib/index.js:148
    entries = await readdir(dir, { withFileTypes: true });
  • 执行外部命令固定命令
    plugins/dsh-host-files/lib/index.js:173
    execFile("powershell.exe", ["-NoProfile", "-NonInteractive", "-Command", script], {
  • 读取本地文件
    plugins/dsh-host-files/lib/index.js:199
    if (existsSync(dshBin)) {
  • 读取本地文件
    plugins/dsh-host-files/lib/index.js:224
    if (existsSync(dshBin)) {
  • 读取本地文件
    plugins/dsh-host-files/lib/index.js:249
    const raw = JSON.parse(await readFile(MCP_STATE_FILE, "utf8"));
  • 写入本地文件
    plugins/dsh-host-files/lib/index.js:256
    await mkdir(dirname(MCP_STATE_FILE), { recursive: true });
  • 写入本地文件
    plugins/dsh-host-files/lib/index.js:257
    await writeFile(MCP_STATE_FILE, JSON.stringify({ version: 1, servers: mcpServers }, null, 2), "utf8");
  • 读取本地文件
    plugins/dsh-host-files/lib/index.js:308
    entries = await readdir(SKILLS_ROOT, { withFileTypes: true });
  • 读取本地文件
    plugins/dsh-host-files/lib/index.js:315
    if (existsSync(join(full, "SKILL.md"))) out.push({ name: entry.name, path: full, enabled: true, kind: "dir" });
  • 写入本地文件
    plugins/dsh-host-files/lib/index.js:330
    if (existsSync(on)) await rename(on, off);
  • 写入本地文件
    plugins/dsh-host-files/lib/index.js:331
    else if (existsSync(off)) await rename(off, on);
  • 写入本地文件
    plugins/dsh-host-files/lib/index.js:333
    if (target.endsWith(".disabled")) await rename(target, target.slice(0, -".disabled".length));
  • 写入本地文件
    plugins/dsh-host-files/lib/index.js:334
    else await rename(target, target + ".disabled");
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 三栏布局
  • 文件树
  • 多标签编辑器
展开完整介绍(85 字)↓

把 DeepSeek Harness(dsh)Web 界面改造成 VS Code 式 IDE:三栏布局、文件树、多标签查看器/编辑器、桌面启动器,全部补丁可重放(MIT)

README

由 DeepSeek 最新模型翻译生成
DSH IDE —— DeepSeek Harness 魔改方案 把 DeepSeek Harness(dsh)Web 界面改造成 VS Code 式 IDE 的完整方案:三栏布局、文件树、多标签查看器/编辑器、桌面启动器,全部改动可重放、可移植。 功能特性 - 三栏 IDE 布局:左「文件/会话」双 Tab + 中多标签文件查看器 + 右「对话/详情」Tab,可拖宽,窄屏自动收成 rail - 文件树:懒加载、隐藏目录折叠、Git 状态角标(M/U/A/D/R)、行内重命名、回收站删除、新建文件/文件夹、递归搜索、系统原生选目录 - 多标签:服务端 shiki 语法高亮(跟随浅色/深色主题自动切换色板)、行号、只读查看 + 编辑模式(Ctrl+S 保存、脏标记)、拖拽排序、右键菜单、状态持久化 - 双模式:全屏对话 / 分栏视图一键切换 - 对话增强:工具详情与思考内容限高内滚、斜杠命令汉化、非多模态模型的图片发送桥接(自动转本地路径 → 视觉 MCP 识图) - 设置面板管理:全局人设(所有会话生效)、Skill 开关/删除、MCP 开关/删除/添加(动态挂载,即时生效) - 全局人设:类似 Claude Code 的全局 CLAUDE.md,~/.dsh/global-persona.md 注入所有会话系统提示,改后即时生效(右栏「⚙ 人设」编辑)
展开完整文档(README 剩余 1 节)
DSH IDE —— DeepSeek Harness 魔改方案

把 DeepSeek Harness(dsh)Web 界面改造成 VS Code 式 IDE 的完整方案:三栏布局、文件树、多标签查看器/编辑器、桌面启动器,全部改动可重放、可移植。

功能特性

- 三栏 IDE 布局:左「文件/会话」双 Tab + 中多标签文件查看器 + 右「对话/详情」Tab,可拖宽,窄屏自动收成 rail
- 文件树:懒加载、隐藏目录折叠、Git 状态角标(M/U/A/D/R)、行内重命名、回收站删除、新建文件/文件夹、递归搜索、系统原生选目录
- 多标签:服务端 shiki 语法高亮(跟随浅色/深色主题自动切换色板)、行号、只读查看 + 编辑模式(Ctrl+S 保存、脏标记)、拖拽排序、右键菜单、状态持久化
- 双模式:全屏对话 / 分栏视图一键切换
- 对话增强:工具详情与思考内容限高内滚、斜杠命令汉化、非多模态模型的图片发送桥接(自动转本地路径 → 视觉 MCP 识图)
- 设置面板管理:全局人设(所有会话生效)、Skill 开关/删除、MCP 开关/删除/添加(动态挂载,即时生效)
- 全局人设:类似 Claude Code 的全局 CLAUDE.md,~/.dsh/global-persona.md 注入所有会话系统提示,改后即时生效(右栏「⚙ 人设」编辑)
- 桌面启动器(Windows):Edge app 模式独立窗口、自动拉起/隐藏服务、一键停止、自定义应用图标

目录结构

├── install.ps1 # Windows 一键安装脚本(自动装插件/打补丁/写配置) ├── cordis.patch.yml # dsh profile 补丁配置模板(密钥已脱敏,见「配置」) ├── patches/node_modules/ # 官方包补丁副本(按相对路径镜像,升级后重放) ├── plugins/ # 自研插件源码 │ ├── dsh-host-files/ # 宿主接口 /vscode-files/(文件系统 + shiki 高亮) │ └── dsh-client-vscode-layout/ # 客户端三栏 IDE 布局 ├── launcher/ # Windows 桌面启动器(vbs + ps1 + 应用图标) └── tools/ # github-mcp-server 官方二进制(MCP 用)

快速开始(部署到自己的 dsh)

前置:npm i -g @deepseek-ai/dsh。本方案在 Windows 上开发验证;其他平台需微调路径。

一键安装(Windows,推荐)

下载 ZIP 解压后,右键 install.ps1 → 使用 PowerShell 运行 (或 powershell -ExecutionPolicy Bypass -File install.ps1)。
脚本自动完成:装插件 → 打补丁 → 写配置。

手动安装

1. 安装插件:把 plugins/ 下两个包复制到 ~/.dsh/profiles/node_modules/@anoslide/
2. 打补丁:把 patches/node_modules/@deepseek-ai/ 覆盖到全局 dsh 安装的对应路径(Windows 全局安装:%APPDATA%\npm\node_modules\@deepseek-ai\dsh\node_modules\@deepseek-ai\)
3. 配置:复制 cordis.patch.yml 到 ~/.dsh/profiles/web/,按下方「配置」填入自己的密钥与路径
4. 启动:dsh web 后用浏览器打开;或直接用 launcher/ 桌面启动器

Windows 提示:~/.dsh/profiles/node_modules/@deepseek-ai/ 是指向全局安装的 junction——改官方包文件直接改全局路径即可,两处同时生效。
若已有 cordis.patch.yml,手动合并 vscode-host-files 段即可;MCP 通过设置面板「MCP 管理」添加。

配置与数据位置

| 内容 | 位置 | 说明 |
| profile 补丁配置 | ~/.dsh/profiles/web/cordis.patch.yml | 复制仓库模板,只挂载自研插件,无密钥 |
| MCP server | ~/.dsh/mcp-servers.json | 设置面板「MCP 管理」添加/开关/删除(含密钥,勿提交仓库) |
| 全局人设 | ~/.dsh/global-persona.md | 设置面板「全局人设」编辑 |
| 全局 Skill | ~/.dsh/skills | 设置面板「Skill 管理」开关/删除 |

仓库内所有配置文件均为脱敏模板/示例,真实密钥只存在于本机 ~/.dsh。

魔改清单

1. 斜杠命令汉化(6 个官方包)

/compact /goal /feedback /plan /permission /export 描述中文化,外加计划模式退出弹窗选项与权限预设说明。

2. 图片发送桥接(非多模态模型)

取消非多模态模型的图片发送限制:放行入站拦截 → 附件落盘(~/.dsh/attachments/)→ 序列化为含本地路径的文本 → agent 调用视觉 MCP 识图。
涉及:dsh-host-apiproxy、dsh-llm-deepseek、dsh-llm-pi-ai、dsh-tool-fs。

3. VS Code 式布局(自研插件)

左「文件/会话」双 Tab + 中多标签查看器(高亮/行号/编辑/持久化)+ 右「对话/详情」Tab,替换官方 layout 插件(dsh-web-app/cordis.patch.yml 指向自研包,位置不变保注册顺序)。

4. 对话体验补丁

- 工具详情 / 思考内容限高 480px 内部滚动(dsh-client-ui-tool、dsh-client-ui-conversation)
- 原生文件夹对话框强制置顶(dsh-host-directory-picker-native)

5. 桌面启动器 + 应用图标

Edge --app 独立窗口(自动探测端口、未运行则隐藏拉起 dsh web、首次自动建桌面快捷方式),把应用图标部署进 web 前端 dist(dsh-web-frontend 的 favicon + manifest)。

6. 浅色主题高亮

服务端 shiki 固定深色色板,浅色主题下代码/文档文字会过淡。
/vscode-files/highlight 支持 ?theme=dark|light,输出对应色板;客户端监听主题切换,自动重取。

维护:升级重放

npm update -g @deepseek-ai/dsh 会覆盖全部官方包补丁,重放方法:

1. 把 patches/node_modules/@deepseek-ai/ 覆盖回全局安装对应路径
2. 不要动 本地 ~/.dsh/profiles/web/cordis.patch.yml(含你的真实密钥;仓库模板已脱敏)
3. 重启 dsh

补丁内容详见上文「魔改清单」,升级重放方法见下。

说明

- 密钥约定:仓库内配置为脱敏模板,真实密钥只存在于本机 ~/.dsh;请勿把密钥提交到任何仓库
- 本方案在 Windows 上开发验证;macOS/Linux 需调整路径与 junction 相关说明
- 基于 DeepSeek Harness 二次开发,仅供学习交流
预览分享卡片长什么样 ↓anoslide/dsh-vscode-layout
分享 · DeepSeek Harness Hub
anoslide/dsh-vscode-layout

把 DeepSeek HarnessdshWeb 界面改造成 VS Code 式…

回到顶部