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

文件批注引用 feifiefei/dsh-file-to-chat

DeepSeek Harness
feifiefei18 天前有提交已提供中文文档扫描:未发现敏感能力

划选文档或右键文件,带批注送进当前对话

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add feifiefei/dsh-file-to-chat
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · browser
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 18 天前
档位由哪些信号合成

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

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

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

写入剪贴板(不计风险)
查看扫描证据(共 1 处,展示前 1 条)
  • 写入剪贴板
    client.js:4302
    navigator.clipboard.writeText(text)
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

DSH 右侧栏文件助手:在文档预览里给选区加批注(文本行 / Excel 区域 / Word-PDF 页面),或右键点文件,把引用和你的备注发进当前会话。还自带独立的 zh/en/ja README 摘要。

README

由 DeepSeek 最新模型翻译生成
dsh-file-to-chat 把右侧栏里的内容,带着你的批注,直接送进当前对话。 在 DeepSeek Harness Web 的右侧栏里划选一段文字、框选一块 Excel 区域,或者在文件树上右键一个文件 —— 选区(或整份文件)连同你写的批注一起进入输入框,发出去之后自动收成一枚小胶囊,聊天记录不再被大段引用撑爆。 在 DSH 右侧栏里给选区或整份文件加批注,连同你的备注一起送进当前对话。引用会完整送到模型手里;聊天记录里只显示一枚小胶囊。 输入框: [📄 引用 · 套餐对比.xlsx · 结论速览 B8] 这条再确认下 发出去: > 📄 引用来源:<绝对路径>(工作表 结论速览 · 区域 B8)速率上限:官方账户级并发 2,500,可免费扩容 批注: 这条再确认下 聊天里: [📄 套餐对比.xlsx · 结论速览 B8] ← 点一下可以展开全文 功能 1. 文档预览里划词批注 支持右侧栏文档预览的全部三种渲染器: | 预览类型 | 怎么选 | 引用块里定位到 | | 文本 / 代码 / Markdown | 直接划选文字 | (第 N 行) 或 (第 N-M 行) | | Excel / CSV / TSV | 在表格里拖选区域 | (工作表 <名> · 区域 B3:D7),并把区域内的值取成 Markdown 表格 |
展开完整文档(README 剩余 1 节)
dsh-file-to-chat

把右侧栏里的内容,带着你的批注,直接送进当前对话。

在 DeepSeek Harness Web 的右侧栏里划选一段文字、框选一块 Excel 区域,或者在文件树上右键一个文件 —— 选区(或整份文件)连同你写的批注一起进入输入框,发出去之后自动收成一枚小胶囊,聊天记录不再被大段引用撑爆。

在 DSH 右侧栏里给选区或整份文件加批注,连同你的备注一起送进当前对话。引用会完整送到模型手里;聊天记录里只显示一枚小胶囊。

输入框: [📄 引用 · 套餐对比.xlsx · 结论速览 B8] 这条再确认下

发出去: > 📄 引用来源:<绝对路径>(工作表 结论速览 · 区域 B8)速率上限:官方账户级并发 2,500,可免费扩容

批注: 这条再确认下

聊天里: [📄 套餐对比.xlsx · 结论速览 B8] ← 点一下可以展开全文

功能

1. 文档预览里划词批注

支持右侧栏文档预览的全部三种渲染器:

| 预览类型 | 怎么选 | 引用块里定位到 |
| 文本 / 代码 / Markdown | 直接划选文字 | (第 N 行) 或 (第 N-M 行) |
| Excel / CSV / TSV | 在表格里拖选区域 | (工作表 <名> · 区域 B3:D7),并把区域内的值取成 Markdown 表格 |
| Word / PPT / PDF | 在文字层里划选 | (第 N 页) 或 (第 N-M 页) |

选区上方会浮出一枚「批注」按钮(选区太靠页面顶部时自动落到下方),点开写批注,Enter 发送,Shift+Enter 换行,Esc 取消。拖选过程中不会弹,松手才出现。

2. 文件树右键菜单

在右侧栏「文件」标签页的文件或文件夹上右键:

| 菜单项 | 作用 |
| 发送到聊天 | 读正文并开卡片(文本直接内联,.docx / .xlsx 在浏览器里解包抽正文,其余按字节回退) |
| 只发送路径 | 不读正文,只发路径与「未读取正文」说明 —— 大文件/二进制文件的安全选项 |
| 发送目录清单 | 文件夹专用,列出目录内容 |
| 用默认程序打开 | 交给系统关联程序(等同双击),文件夹则交给文件管理器 |
| 复制完整路径 / 复制相对路径 | 复制到剪贴板 |

3. 已发送引用块的折叠

发出去的消息里那段 > 📄 引用来源:… 会自动折成一枚胶囊:模型收到的一字不减,聊天窗口只显示标题。点胶囊展开,移开鼠标自动合上。

安装

需要 DSH Web 0.2.x(开发与验证均在 0.2.0-rc.2 上完成)。

方式一:从 Git 仓库装(推荐)

dsh plugin --profile <你的 profile> add https://gitee.com/mofeo/dsh-file-to-chat.git

<你的 profile> 通常是 desktop(桌面端)或 web。装完在 设置 → 插件 里确认它是启用状态,然后硬刷新一次浏览器(Ctrl+Shift+R)。

方式二:手动放进 profile

git clone https://gitee.com/mofeo/dsh-file-to-chat.git
把目录链接/复制到:~/.dsh/profiles/<profile>/node_modules/dsh-file-to-chat

再把 dsh-file-to-chat 追加到 ~/.dsh/profiles/<profile>/package.json 的 dsh.profile.bundles 数组里,重启应用。

卸载

dsh plugin --profile <你的 profile> remove dsh-file-to-chat

注意:有会话正在跑的时候卸载会被拒绝(refused while agents are running),先停掉再卸。

用法

1. 在右侧栏打开「文件」标签页,点开任意文件进入预览。
2. 划选(文本/Word/PDF)或在表格里拖选区域(Excel)。
3. 选区上方出现「📝 批注」→ 点开 → 写批注(可留空)。
4. Enter 或点「发送到聊天」。
5. 输入框里出现一枚胶囊,按你自己的节奏按发送键 —— 插件只负责填草稿,不替你发送。

已知限制

- 只有右侧栏能触发。 右侧栏未激活的标签页内容不挂载,所以预览没打开时工具栏上不会有入口。
- Word/PPT/PDF 没有行号,只能定位到页码 —— 这类文件走的是「Office → PDF → PDF.js」渲染链,页内没有源码行这个概念。
- Excel 只取当前工作表,且内联上限 200 行;.xlsx 公式取缓存值而非重算。
- 读不到正文的文件不会假装成功:.docx/.xlsx 靠浏览器解包抽取,抽不出来时卡片会明说原因,只发引用来源行,让模型自己去读文件。
- 依赖若干 DSH 内部 DOM 约定(见下节)。DSH 升级后如果这些锚点变了,插件内置的锚点自检会在控制台 warn 一次,而不是静默失效。
- 折叠与 Excel 取值走的是展示层后处理,不是内核的官方扩展点。功能正常,但属于「DSH 改版时最先需要复查」的部分。

实现说明(给维护者和审核者)

这个插件没有宿主路由、没有额外的 Node 依赖,宿主半边(lib/index.js)是空的 —— 它的存在只是为了在 Loader 里占一行。全部逻辑在 client.js(浏览器半边,手写 CJS + window.__ModuleLoader__ 包装,只有 require('react') 一个依赖)。

用到的官方扩展点:

- sidebar.right.tab.files.actions / sidebar.right.tab.document.actions —— 工具栏入口
- inputTriggers.registerSource —— 输入框胶囊的注册与提交时的序列化编解码
- conversation.input.for(scope) → insertReference(span, ref) —— 把胶囊插进 Lexical 草稿
- remote.workspaceFiles.read / readBytes —— 读工作区文件
- remote.session.openWorkspacePath —— 「用默认程序打开」,直接复用 DSH 自带的后端

依赖的 DOM 锚点(会自检,失效时 console.warn):

[data-document-preview]、[data-textpreview-body]、[data-textpreview-line]、[data-textpreview-path]、[data-code-preview]、[data-document-markdown]、[data-pdf-page]、.fortune-name-box、[data-files-body]、[data-files-entry]、[data-files-path]、[data-files-root]、[data-chat-flow-kind]、[data-submission-echo]

两个值得记下来的实现细节:

1. Excel 选区不能靠 window.getSelection()。 单元格是画在 canvas 上的,文字不在 DOM 里。但 FortuneSheet 会把当前选区写进名称框 .fortune-name-box —— 读它就够了。另外它的名称框在「选区焦点格正好是合并单元格左上角」时会故意塌缩成单个格子,所以真实范围改从 React 工作簿快照的 luckysheet_select_save 里读,名称框只作兜底。
2. setDraft 会抹掉胶囊。 它会先 replace(REFERENCE_PLACEHOLDER_RE, '') 再重建整份草稿,而胶囊正是用这些占位符表示的。所以补文字一律走 insertText / insertReference,绝不整份重写。

调试开关

默认控制台是干净的。需要排查时,在浏览器控制台执行一次:

localStorage.setItem('dsh-file-to-chat:debug', '1') // 刷新页面后打开细节日志
localStorage.removeItem('dsh-file-to-chat:debug') // 关回去

开发

源码即产物:client.js 是手写的,没有构建步骤。改完保存即可 —— DSH 的 dsh-client-hmr 每 500 ms 轮询一次客户端 bundle,会自动热重载,不用刷新页面。(宿主半边 lib/index.js 不热重载,改了要重启应用;本插件正常情况下不需要动它。)

dsh-file-to-chat/
├── package.json dsh.bundle / dsh.client 声明 ├── cordis.patch.yml 往 Loader 里插一行 ├── lib/index.js 宿主半边(空实现,只为占位) └── client.js 浏览器半边 —— 全部功能

许可

MIT
预览分享卡片长什么样 ↓feifiefei/dsh-file-to-chat
分享 · DeepSeek Harness Hub
feifiefei/dsh-file-to-chat

划选文档或右键文件,带批注送进当前对话

这是你的仓库?认领条目

回到顶部