DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

PrismScopes /

PrismScopes/dsh-aide

Verified

AIDE (AI + IDE): VS Code-style local IDE for DeepSeek Harness — Monaco, explorer, search, Git, terminal

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@23f3ad28

DSH AIDE

DSH AIDE Logo

AIDE = AI + IDE:在 DeepSeek Harness 中叠加 VS Code 风格的本地开发环境。

npm 版本 npm 月下载量 GitHub Stars 最近提交 MIT 许可证

topic: dsh-plugin topic: deepseek-harness topic: dsh topic: ai topic: ide topic: monaco-editor topic: vscode-workbench

中文 · English

亮点

  • 一体化 AIDE:资源管理器、Monaco 编辑器、搜索、Git、终端和 DSH 对话集中在一个 VS Code 风格界面。
  • 完整文件体验:文本、Markdown、图片、PDF 和 Word 文档均可直接打开;目录支持拖放上传和常用文件操作。
  • 可靠且实时:原子保存与版本校验避免静默覆盖,WebSocket 会及时标记工作区的外部变更。
  • 可视化 Git 工作流:覆盖状态、暂存、提交、分支、差异、提交文件与泳道式提交图。
  • 可持续的工作上下文:按工作区恢复目录、视图、面板与栏宽;终端支持多会话、分屏与重命名。
  • 语言服务:内置 TypeScript/JavaScript 语言服务 + 可接任意外部 LSP 服务器;诊断、悬停、跳转、引用、重命名、符号与补全全部可用。
  • 贴合 DSH:右侧直接复用 DSH 对话能力,配色随 DSH 主题切换,不额外提供一套配色设置。

功能

  • 文件与编辑器:懒加载目录树、创建、上传、拖放、重命名、删除和 Git 状态;Monaco 多标签编辑支持脏状态、原子保存与冲突提示。
  • 彩蛋:编辑器空状态里点「或者,你想试试玩谷歌小恐龙吗?」会像普通文件一样在编辑器区开一个「小恐龙」标签页 (不是浮窗,切走/关标签即退出),游戏铺满编辑器面板,深浅色跟随 DSH 主题(深色下把画布反相,深灰精灵变浅灰)。 直接用 npm 包 react-chrome-dino(MIT),内置 Chrome 官方离线页的小恐龙(精灵图/音效),没有自写逻辑、也没有 vendored 资源。
  • 预览:Markdown 支持源码、大纲、相对链接和图片;内置 PDF 翻页缩放与 DOCX 渲染,DOC/ODT 可直接下载打开。
  • 搜索与替换:@vscode/ripgrep 支持大小写、全词、正则和路径筛选;结果按文件分组、命中处高亮,支持单条替换、 全部替换与保留大小写,F4 / Shift+F4 逐条跳转,上一次搜索(含替换串与选项)跨会话保留。
  • 源代码管理:暂存、撤销、丢弃、提交、分支、差异与提交文件;提交子菜单有 提交/提交已暂存文件/全部提交/撤销上次提交/中止变基/修正/签名 三档。面板标题的 ... 菜单照 VS Code 分了一级 子菜单:查看和排序 / 提交 / 更改 / 拉取,推送 / 分支 / 远程 / 存储 / 标记,各子菜单里的动作都直接可用 (拉取·推送·同步·抓取·克隆、整批暂存或放弃、检出到 / 新建 / 重命名 / 删除 / 合并 / 变基、远程增删、 贮藏增删改用、标签增删推送、撤销上次提交)。分支与贮藏、标签都走可搜索的快速选择器; 提交图是独立的编辑器标签(源代码管理面板标题栏的提交图图标按钮打开,图标沿用 Git Graph 扩展自己的 SVG),按 VS Code Git Graph 扩展上色: 图上有未提交更改与贮藏节点,单击提交在右侧看「提交详情」(作者、完整说明、文件 +/− 行数,点文件看差异), Ctrl(⌘)+单击另一个提交进入「提交对比」,支持查找(Ctrl+F,匹配消息/作者/哈希/引用)与分支过滤(多选), 可在提交行上检出、创建分支/标签/重置/丢弃、拣选、还原;作者/日期/哈希列可显示隐藏并拖动列宽, 提交说明支持 emoji 短代码与 Issue 链接(按远程地址自动识别 GitHub/GitLab/Bitbucket), 「仓库设置」里可改远程、抓取、修剪、配置 Issue 链接与拉取请求目标分支、导出视图配置, 「...」菜单可一键打开拉取请求创建页(GitHub/GitLab/Bitbucket 各自的 compare/merge_requests 模板); 「视图」子菜单可清除代码审查记录; 提交详情里的文件带「已读」勾选(点开 diff 自动标记,跨会话保留 90 天); 图内快捷键: Ctrl+F 查找、Ctrl+H 回到 HEAD、Ctrl+R 刷新、↑/↓ 切换提交、Esc 关闭详情。 「显示 Git 输出」会在编辑器里打开工作台执行过的 git 操作记录。
  • 终端:基于 node-pty 与 xterm,支持最多 8 个会话、会话重命名、右侧切换、分屏、ANSI 输出和 Ctrl+C。 打开终端面板时宿主会先预热默认 shell,点「新建终端」时提示符通常已经在回放缓冲里;面板收起或切标签时 不重建 xterm、不重放输出,回来即用。终端会话标签在终端视图顶部;整个底部面板的标题栏左侧是 问题 / 输出 / 终端 三个独立圆角按钮(不是页签条),⋯ 菜单目前提供「调试控制台」面板(调试器接入前显示空状态)。
  • 输出:与 VS Code 的 Output 视图同构,按通道显示日志 —— 语言服务通道收 LSP 服务器输出、连接与扫描事件, Git 通道记录工作台发起的每条 Git 命令;只读、可切换通道、可清空当前通道。
  • 布局与 DSH:左侧视图、终端面板和右侧 DSH 对话栏可独立显示和调整;宽度直接拖分隔条改、双击恢复默认, 这些都在界面里就地完成,不再重复成设置项。
  • 设置页:DSH 设置里的「AIDE」一页,单列滚动、按分组(编辑器 / AI 补全 / 语言服务 / 终端 / 快捷键 / 关于与诊断)分段,字号与 DSH 设置页统一(行标题 14/20、说明 12/18、控件 14/32px)。编辑器:字号、行高、 制表符宽度与空格缩进、自动换行(关/按宽度/按列)、 缩略图、概览标尺、选中内容同类词高亮、空白字符、光标样式、平滑滚动、粘性滚动、自动保存与延迟; AI 补全:总开关、触发延迟、模型路由(直接列出 DSH 已配置的模型,可手填)、失败回落,并显示当前生效 模型与最近一次失败;语言服务:总开关、内置 TypeScript 开关、悬停/补全开关、已发现服务器状态与设置文件路径; 另有终端字号、快捷键面板(设置页里只占一行「查看」入口,点开是可搜索、可改键的面板: 点键帽就地录制、冲突提示、单条/全部恢复默认;编辑器内置键位只读)、恢复默认设置。
  • 划词高亮与概览标尺:双击/选中一个词后,文档内所有同类词按 VS Code 的方式高亮,右侧出现 3 泳道 概览标尺(选区、同类词、查找匹配都画在滚动条那条带子里);标记用前景色(深色主题即白色,不像早前用蓝色强调色), 滚动条滑块带透明度,不会把标记盖住。
  • 关闭确认与自动保存:关闭标签、批量关闭(其他/右侧/已保存/全部)以及返回 DSH 时,有未保存改动会弹 VS Code 同款对话框(单个:保存/不保存/取消;多个:全部保存/不保存全部/取消,并列出文件);保存失败 的文件留在原地并报错,返回 DSH 时只要有失败就不离开。另可开启「延迟自动保存」。
  • 中文右键菜单:文件树、标签页、代码编辑器、终端、源代码管理都有与 VS Code 对应的中文菜单 —— 新建/上传/剪切/复制/粘贴/重命名/删除、复制相对与绝对路径、在终端中打开、标签的关闭其他/右侧/已保存、 编辑器的撤销重做与查找替换、终端的复制粘贴与清屏、Git 的暂存/取消暂存/放弃/复制提交哈希。 Monaco 自带的英文菜单已关闭(contextmenu:false);菜单内容与动作是纯数据(可单测),壳层统一一份。
  • 编辑器右键增强:标准编辑项收进分组子菜单(选择 / 查找 / 转到 / 行操作 / 转换 / 格式化), 顶层只留 12 行 —— 撤销重做、剪切复制粘贴、六个分组、保存,不再把 30 项平铺堆在一起。子菜单里是 VS Code 常用操作:选择所有出现、转到定义/查找引用/重命名符号、上移下移/复制/删除行、缩进、大小写转换、 上下多光标、行/块注释、格式化文档与选中内容、折叠展开。 选中文本时菜单最顶部出现「DeepSeek Harness」子菜单:添加至对话、询问 DSH…、解释/修复/重构这段代码、 生成单元测试、添加注释、审查这段代码、复制为引用 —— 除「复制为引用」走剪贴板外,其余都只把引用或 指令文本插入 DSH 对话输入框,不会替你直接发送,你可以在输入框里补充后再自己发出。 菜单支持两级子菜单(悬停/方向键展开、Esc 逐层关闭),并开放 registerEditorMenuContribution 扩展点供其它插件往菜单里追加项。右键菜单是纯文字的(不带图标), 只有可展开的子菜单在行尾有一个小箭头。
  • 行内补全:光标处给出幻影文本建议,可由真实模型或本地兜底提供;多候选可切换,按整条、按行、 按词三种粒度采纳。上下文来自当前文件与本地检索索引(索引只落在工作区本地目录)。 实现与验证情况见 docs/inline-completion.md。 注意:宿主侧代码只在进程启动时加载,改过之后需要重启应用才生效(客户端部分刷新页面即可)。
  • 语言服务(LSP / 诊断 / 跳转):内置 TypeScript/JavaScript 服务(读 tsconfig.json、解析工作区 node_modules 类型), 并自动发现 PATH 上的外部 LSP 服务器(pyright/pylsp、rust-analyzer、gopls、clangd、yaml-language-server、 bash-language-server、lua-language-server、intelephense、solargraph 等),也可以用设置文件加自定义服务器。 编辑器里 F12 / Ctrl+点击 转到定义、Shift+F12 引用、F2 重命名(跨文件)、Ctrl+Shift+O 文件符号、 Ctrl+T 工作区符号、Ctrl+. 快速修复(含整理导入),悬停显示跨文件类型信息,补全与签名帮助由语言服务提供。 诊断实时画在编辑器里(防抖 260ms),活动栏「问题」、状态栏计数与「问题」面板按文件分组、可过滤、点击跳转, F8 / Shift+F8 逐个问题跳;面板里的「扫描工作区」会检查内置 TS 项目的全部文件。 跳到 node_modules 或 TypeScript lib.*.d.ts 会开只读标签,仍可继续悬停与跳转。 设置页可总开关、单独关内置 TS、关悬停/补全;外部服务器与自定义配置见 docs/language-services.md。
  • 同步与恢复:工作区文件变化实时推送;刷新后恢复活动视图、目录展开、面板与布局,以及上一个会话打开的文件标签 (按工作区根目录存在本地:返回 DSH 主页面再进来、刷新页面、重启应用都会把标签栏恢复回来;正文在切到标签时重读磁盘, 未保存的草稿不会跨会话恢复。回到工作台时还会把隐藏期间在磁盘上变过的文件重新读一遍)。

AIDE 通过 DSH 的 shell.overlay、main、sidebar.panellist 与 settings.section 扩展点挂载 (main 与 sidebar.panellist 成对注册、互相切换,兼容侧栏面板被收起的情况),不替换或卸载 ui-layout。

性能

  • 终端启动:打开终端面板时宿主先预热默认 shell(TerminalManager.prewarm,90 秒没人认领就回收); 点「新建终端」时它直接提上来,回放缓冲里已经有提示符。实测本机 pwsh 从 spawn 到可接命令约 530ms, 预热后新建的宿主侧只剩约 2ms;新建/关闭/重命名各只发一次请求,面板与已打开的 xterm 实例常驻。 不想多一个后台 shell 的部署可以用环境变量 DWV_TERMINAL_PREWARM=0 关掉预热(新建照常可用)。
  • 渲染与 IO:文件变更推送只在真的影响标签状态时更新;拖动分隔条期间只改 CSS 变量,松开才写入布局偏好并持久化; Markdown 大纲与 Git 提交图按内容 memo,不在每次输入时重算;Monaco 模型按 LRU 回收(保留打开/脏文件,上限 12), TextMate 语法按语言只安装一次、超过 3000 行或 200KB 的文件回退内置分词。
  • 冷启动分包:PDF 与 Word 的渲染栈只在打开对应文件时才需要,已拆成 DSH 客户端的按需 chunk (lib/client.pdf.js 487 KB、lib/client.docx.js 243 KB,首次预览时同源加载)。主包从 2.65 MB 降到 1.75 MB (gzip 584 KB → 375 KB),V8 编译 28 ms → 18 ms;不打开 PDF/Word 就完全不下载这两块。
  • 语言服务:完全懒加载 —— 不打开对应语言的文件就不加载 TypeScript、也不启动外部服务器;诊断在停手 260ms 后计算、客户端 80ms 合并刷新,打开大量文件时问题面板不会逐条重渲染。
  • 补全:请求体只带光标附近的窗口(1MB 文档约 20KB,prompt 与全量发送逐字节相同);响应头不再等检索索引, 片段按命中行范围读取,同一文件的多条命中一次扫描。
  • Git:gitRoot 与 rev-parse 结果缓存,Git 面板刷新从 5 个 git.exe 降到热路径 2 个;提交后复用宿主返回的状态, 只重取提交日志。
  • 可复现基准:pnpm perf 覆盖终端启动(三种 shell 的 spawn / 首字节 / 可交互时间,以及「预热就绪 / 认领预热 / 不预热干等」)、客户端包体积与解析成本(含按需 chunk)、宿主入口加载成本,结果写到 perf-results/baseline.json(已 gitignore)。本机实测预热认领约 2 ms、不预热点新建到提示符约 100–160 ms (shell 冷启动成本被面板打开/悬停的空档吸收)。当前包基线:主包 lib/client.js 1.75 MB (gzip 约 375 KB,V8 编译约 18 ms),宿主入口 import 约 37 ms。
  • 没有引入 native/Rust 扩展:宿主热点主要是 Windows 进程创建(每次 git.exe / shell 约 44ms 的下限)与协议开销, 不是 JS 计算;这部分纯 JS 优化即可拿到大部分收益,而 native addon 需要同时覆盖 Electron 与 Node 两套 ABI、 每个平台各带预编译产物,安装体积与分发成本不划算。

演示

资源管理器与 Monaco 编辑器
资源管理器与 Monaco 编辑器

源代码管理与提交图表
源代码管理与提交图表

终端
终端

安装

dsh plugin --profile web add dsh-aide

首次安装终端支持

终端使用 node-pty。pnpm 11 首次安装时会拦截其构建脚本,dsh plugin ... add 可能显示 Ignored build scripts 并以失败结束;这是预期的安全检查,插件依赖已经写入 profile。在 DSH 所在机器执行:

cd ~/.dsh/profiles/web
pnpm approve-builds --all

该命令会批准 node-pty 的构建并重新完成安装;完成后重启 dsh web。若终端仍提示 node-pty 加载失败,可执行:

cd ~/.dsh/profiles/web
pnpm approve-builds --all && pnpm rebuild node-pty

刚发布不足 24 小时的版本可能被 pnpm 的安全等待期拦截。等待后重试即可;DSH 提供“立即更新”时可直接选择它。

版本要求

PDF / Word 预览的渲染栈通过 DSH 客户端模块系统的按需 chunk(require.async)加载,要求 DSH 0.2.1-rc.2 及以上(插件 package.json 的 dsh.compatibility 已声明)。更老的宿主上这两个预览会提示“当前 DSH 版本不支持按需加载”,其余功能不受影响。

收录与推广

AIDE 面向 DSH 社区发布,收录状态会持续更新:

  • GitHub:PrismScopes/dsh-aide —— 仓库已带 dsh-plugin / deepseek-harness topics,多个插件目录会自动索引。
  • DSH Market:已收录 —— dsh.market(dshmarket)每日扫描 dsh-plugin topic 与社区精选列表。
  • DSH Plugin Hub:已收录 —— dsh-plugin.org 社区插件市场,按 topic 自动收录,含中文条目。
  • DSH Profile Hub:已收录 —— dshpluginhub.ai,按 npm 小时级同步,也可浏览 / 分享 Profile。
  • npm:dsh-aide —— 尚未发布到 npm;发布后进入各索引源(package.json 已声明 dsh.bundle 清单、精确 SemVer 与 cordis.patch.yml)。
  • dsh.so 插件市场:提交入口 —— 粘贴仓库或包名,做 schema 校验与安全扫描后进入市场。
  • awesome-dsh-plugin:community catalog —— 一个插件一个 data/plugins/<owner>__<repo>.yml,满足 dsh.bundle + topic 后提交 PR。

已提交的收录(审核 / 同步中):awesome-dsh-plugin #8551 · awesome-dsh-plugins #145 · dshopen.org #17。

支持自定义插件索引的客户端,可以直接添加 https://github.com/PrismScopes/dsh-aide。

快捷键

下表是默认键位:在「DSH 设置 → AIDE → 快捷键」点「查看」打开快捷键面板,可按命令名或键帽搜索, 点右侧键帽就地录制新的组合键(与其它命令或编辑器内置键位冲突会提示),也可以单条恢复默认或一键恢复全部。 编辑器内置的查找/替换/转到行/注释/格式化由 Monaco 提供,只展示、不可改。

快捷键 操作
Ctrl+Shift+E 打开资源管理器
Ctrl+Shift+F 打开搜索并聚焦输入框
Ctrl+Shift+H 打开搜索并展开替换
F4 / Shift+F4 下一个 / 上一个搜索结果
Ctrl+Shift+G 打开源代码管理
Ctrl+S 保存当前文件
Ctrl+Alt+B 显示或隐藏 DSH 对话栏
`Ctrl+`` 显示或隐藏终端
`Ctrl+Shift+`` 新建终端
Tab 采纳整条补全建议
Ctrl+方向键右 采纳建议的下一段
Ctrl+Alt+方向键右 采纳建议的下一行
Alt+[ / Alt+] 上一条 / 下一条候选
F12 / Ctrl+点击 转到定义
Shift+F12 查找所有引用
F2 重命名符号
Ctrl+Shift+O 转到文件中的符号
Ctrl+T 转到工作区中的符号
Ctrl+. 快速修复 / 代码操作
Ctrl+Shift+M 显示或隐藏问题面板
F8 / Shift+F8 下一个 / 上一个问题

左侧活动栏的终端按钮可切换显示或隐藏终端面板;「问题」按钮显示错误/警告角标并打开问题面板。

安全

Host 只接受当前 DSH 会话工作目录内的相对路径,并阻止目录穿越与符号链接越界。保存使用版本校验与原子替换;Git 与 ripgrep 使用参数数组启动,不拼接 Shell 命令。终端只接受同源 loopback 请求,固定在会话工作目录启动,并移除 API key、token、secret 等敏感环境变量。语言服务只从 PATH 已发现或用户显式配置的可执行文件启动外部服务器(参数数组、不经过 shell);工作区外文件只有语言服务自己程序内的 SourceFile 能被读出(用于只读跳转标签),不能借此任意读盘。

开发

pnpm install
pnpm typecheck
pnpm test
pnpm build
pnpm perf    # 性能基线(终端启动 / 客户端包 / 宿主入口)

需要 Node.js ^22.19 || >=24、pnpm 11.7、系统 Git,以及 node-pty 所需的本机构建环境(预编译产物不可用时)。

Contributors

  • 作者 / 维护者:PrismScopes
  • 来源:AIDE 最初基于 tingfeng347/dsh-vscode-workbench(MIT)演进而来,感谢原作者的基础工作;本仓库保留 MIT 许可与完整提交历史。

欢迎提交 Issue / PR 一起把 AIDE 做得更好。

许可证

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 23f3ad280b1d

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout