划选文档或右键文件,带批注送进当前对话
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
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 18 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
feifiefei/dsh-file-to-chat
划选文档或右键文件,带批注送进当前对话
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,967已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目