DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Files To Chat — DeepSeek Harness 插件(DSH Plugin)
← Plugins
F

@ruaibeite/dsh-files-to-chat

Files To Chat

在 DSH 右侧边栏文件树中右键单击文件或文件夹,将其作为 @ 引用添加到对话中,并支持多选批量插入。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:ruaibeite/dsh-files-to-chat#4bb01c2b0f00c2f368832290714cceae51dc20bb
README兼容性版本

兼容性与来源证明

Files To Chat 以 @ruaibeite/dsh-files-to-chat 发布,当前版本为 0.2.4。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/13

版本

0.2.4stable
2026/10/13
0.2.1stable
2026/10/12
0.2.0stable
2026/10/12
查看其余 2 个版本收起版本
0.1.1stable
2026/10/8
0.1.0stable
2026/10/8

相关插件

正在加载相关插件…

最新版
0.2.4
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/13
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 memory-context 分类下经过校验的插件。

Hindsight Coding Agents@vectorize-io/hindsight-coding-agents面向编程代理的仅反思式 Hindsight 长期记忆(可插拔支持多种运行框架:opencode、……),自动在后台导入(无需设置 CLI)。Ab Memorydsh-ab-memory--- description: "dsh-ab-memory 包:一种跨会话、基于文件的智能体记忆,提供五个工具(remember / recall / forget / load_skill / distill)以及始终启用的轻量注入。" kind: "package-reference" ---Contextdsh-context用于上下文洞察和管理的 DeepSeek Harness 插件,提供上下文仪表板和上下文命令,帮助了解上下文的构成及其演变过程。Memsearch Dsh@zilliz/memsearch-dsh适用于 DeepSeek Harness 的 MemSearch 插件:在多个代理之间共享 Markdown 记忆,支持捕获、步骤前上下文注入、记忆召回技能和技能候选审核面板。

README

@ruaibeite/dsh-files-to-chat

右侧栏文件树的右键 →「添加到对话」:把文件或文件夹作为 @ 引用插进当前会话的 输入框,支持多选批量插入。

English: README.en.md。

右键任意文件/文件夹  →  添加到对话        →  草稿里多出一枚 @path 引用
⌘/Ctrl+点击 多选     →  右键 → 添加所选 N 项

它做什么

操作结果
右键文件行菜单:「添加到对话」「用默认应用打开」「在文件管理器中显示」「复制路径」
右键文件夹行同上;打开项变成「打开文件夹」「在上级目录中显示」
⌘/Ctrl + 点击把该行加入/移出选择(不会打开文件)
Shift + 点击从上次选择连选到这一行
右键已选中的行菜单变成「添加所选 N 项到对话」+「复制 N 条路径」
表头芯片有选择时出现在文件树表头,点一下就能插入,× 清除选择
Escape关菜单;菜单没开时清除选择

普通点击完全不改变文件树原有行为(打开文件 / 展开目录),只是顺手清掉选择。

「打开 / 在文件管理器中显示」走的是官方 open-in-app 宿主能力(与官方在文件树表头放的 「打开方式」按钮同一个 session 远程命名空间),插件自己不起 shell 进程。能力用 canOpenWorkspacePath() 探测,判定是三态:只有宿主明确回答「不支持」时才整组隐藏; 没问出来(调用失败、信封异常、命名空间暂时够不到)时菜单项照常出现,点下去由宿主当场 回答——否则探测的一次抖动就会把功能永久藏掉。多选时不提供「打开」(一次拉起 N 个应用没有 意义)。

插入的是什么

插入的是 @ 引用语法本身——和你在输入框里打 @ 再选一个文件完全等价:

  • 工作区内的路径写成相对形式(@iwcc/iwcc.sql),工作区外保留绝对形式;
  • 含空格的路径写成闭合引号形式(@"my docs/a b.md"、@"ba docs/");
  • 引用不会附带文件内容:按 dsh-file-reference 的设计,@path 只是提示词里的 一段文本,模型仍需用文件工具去读。所以加引用很便宜,也不会把大文件灌进上下文。

实现要点

官方 dsh-client-ui-sidebar-files 的行是只读渲染 (<li data-files-entry data-files-path> + 一个 <button>),没有行级插槽,只有表头的 sidebar.right.tab.files.actions。因此本插件:

  1. 注册进表头插槽(Session 作用域),从而拿到 sessionId、inputActions,以及所有者 传入的 absolutePath(该树显示的根 = 该会话 cwd);
  2. 从自己在表头渲染的零宽锚点向上找到本标签的树根 [data-files-root],用捕获阶段 的 contextmenu / click / keydown 监听增强行行为;
  3. 选中的行靠本插件打的 data-files-to-chat-selected 标记 + 一张注入的样式表显示, 所以不改写官方组件的渲染。

插入按可用性降级,两条发现路径互为备份:

  • 输入面:优先用框架交给 Session 作用域组件的标准 prop inputActions;它缺席时 退回作用域里的会话服务——ctx.sessions.scope(sessionId).get('conversation') .input.for(scope) 返回的就是输入机本身,也就是 slash/input-insert-reference 的 监听器调用的同一个对象。所以即使插槽没有下发 inputActions,本插件照样能插入。
  • 引用形态:先直连输入机的 insertReference(得到真正的原子引用 chip:图标、 整块删除、剪贴板投影都由官方负责),失败再退回官方事件 slash/input-insert-reference(@ 补全菜单 pick 的同一条路径,载荷形状与 ui-reference 的 pick 产物一致),两条都不行才降级为纯文本 inputActions.insertText(mention, span)——这是官方 Voice Input 插件正在用的公开面, 模型侧语义与 chip 相同。

两条通道都用 inputActions.captureInsertion() 的 draftRev 做 CAS:插入期间草稿被改 过就失败,此时引用文本会被复制到剪贴板并提示,而不是静默丢掉。草稿正忙(提交/裁决中) 时同样走剪贴板降级。插入成功后会把键盘交回输入框(machine.focus()),光标正好落在 刚插入的引用之后。

安装

从市场 / GitHub 装:

dsh plugin --profile desktop add github:ruaibeite/dsh-files-to-chat

从本地目录装:

./install.sh                 # 装进 desktop profile(默认,也就是桌面 App 用的那个)
PROFILE_NAME=web ./install.sh # 装进别的 profile

装完重启 Harness(浏览器半边是随会话引导下发的,光刷新页面不够)。确认挂载:

dsh --profile desktop --dump-config | grep -A2 files-to-chat

已知限制

  • 只增强官方文件树的行(文件与文件夹)。other 类型(socket、设备文件等)不可读, 菜单不出现,右键仍是系统菜单。
  • 多选状态是本插件自己的,存在组件内存里:切换标签、刷新树、换会话都会清空(这是刻意的 ——它不是文件树的状态,别的入口改不动它)。
  • 文件夹引用只插 @dir/,不会展开成目录下的文件清单。
  • 「打开 / 在文件管理器中显示」只在宿主明确报告不支持时才隐藏;能不能真打开还取决于 宿主能否把该路径映射到本机同一进程路径——映射不了(例如远端路径)时宿主会拒绝,插件把 宿主的错误码一并显示出来,不会假装成功。
  • 依赖官方的行 DOM 契约(data-files-entry / data-files-path / data-files-root)。 DSH 改这些属性名时,右键菜单会安静地不再出现(不会误伤别处)。

开发

node test/mention.mjs   # 路径相对化、@ 引用语法、批量构建;原生打开的请求体与响应信封

客户端入口 client/client.js 是手写的预构建模块(window.__ModuleLoader__.load), 不需要打包步骤;改完重启 Harness 即可。

License

MIT