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

文件树引用助手 ruaibeite/dsh-files-to-chat

DeepSeek 客户端
ruaibeite24 天前有提交已提供中文文档扫描:未发现敏感能力兼容 / 相关生态

右键文件树,把文件或文件夹作为 @ 引用插入对话

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

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

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/ruaibeite/dsh-files-to-chat.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 24 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 右键文件树插入引用
  • 以@引用加入对话
  • 多选批量插入

在 DSH 右侧栏文件树里右键文件或文件夹,就能以 @ 引用形式加进对话,支持多选批量插入。

README

由 DeepSeek 最新模型翻译生成
@ruaibeite/dsh-files-to-chat 右侧栏文件树的右键 →「添加到对话」:把文件或文件夹作为 @ 引用插进当前会话的输入框,支持多选批量插入。 English: README.en.md。 右键任意文件/文件夹 → 添加到对话 → 草稿里多出一枚 @path 引用 ⌘/Ctrl+点击 多选 → 右键 → 添加所选 N 项 它做什么 | 操作 | 结果 | | 右键文件行 | 菜单:「添加到对话」「复制路径」 | | 右键文件夹行 | 同上,插入 @dir/ 形式的引用 | | ⌘/Ctrl + 点击 | 把该行加入/移出选择(不会打开文件) | | Shift + 点击 | 从上次选择连选到这一行 | | 右键已选中的行 | 菜单变成「添加所选 N 项到对话」,一次插完整批 | | 表头芯片 | 有选择时出现在文件树表头,点一下就能插入,× 清除选择 | | Escape | 关菜单;菜单没开时清除选择 | 普通点击完全不改变文件树原有行为(打开文件 / 展开目录),只是顺手清掉选择。
展开完整文档(README 剩余 1 节)
@ruaibeite/dsh-files-to-chat

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

English: README.en.md。

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

它做什么

| 操作 | 结果 |
| 右键文件行 | 菜单:「添加到对话」「复制路径」 |
| 右键文件夹行 | 同上,插入 @dir/ 形式的引用 |
| ⌘/Ctrl + 点击 | 把该行加入/移出选择(不会打开文件) |
| Shift + 点击 | 从上次选择连选到这一行 |
| 右键已选中的行 | 菜单变成「添加所选 N 项到对话」,一次插完整批 |
| 表头芯片 | 有选择时出现在文件树表头,点一下就能插入,× 清除选择 |
| Escape | 关菜单;菜单没开时清除选择 |

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

插入的是什么

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

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

实现要点

官方 dsh-client-ui-sidebar-files 的行是只读渲染( + 一个 ),没有行级插槽,只有表头的 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
预览分享卡片长什么样 ↓ruaibeite/dsh-files-to-chat
分享 · DeepSeek Harness Hub
ruaibeite/dsh-files-to-chat

右键文件树,把文件或文件夹作为 @ 引用插入对话

回到顶部