把电脑里的文件一键发到手机微信文件传输助手
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add le0522/dsh-wechat-transfer该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
从 DeepSeek Harness(Windows)把本地文件发送到微信文件传输助手
README
由 DeepSeek 最新模型翻译生成dsh-wechat-transfer
左侧栏 DSH 插件:把文件发送到微信聊天(默认「文件传输助手」)。
特别适合远程 / 手机使用:在手机上远程连 DSH 时,跑出来的报告、截图、导出文件都还在电脑里。用这个插件把它们发到「文件传输助手」,手机微信里立刻就能收到,点开就能存进手机相册或文件,不用再回到电脑前复制。手机浏览器打开的面板一样能用(会自动走 DSH 的 /remote 网关)。
安装
从 npm(推荐):
dsh plugin --profile desktop add dsh-wechat-transfer
或直接从源码仓库装(想跟最新提交时用):
dsh plugin --profile desktop add github:<GITHUB_OWNER>/dsh-wechat-transfer
装完重启 DSH,左侧栏出现「微信传输」。只能装在 Windows(依赖 Windows PowerShell 5.1 与中文 OCR 语言包)。
也可以从 Releases 分发包 拿 zip/tgz 离线安装,或 npm install dsh-wechat-transfer 装进任何 DSH profile。
它做什么
- 左侧栏出现一个 微信传输 图标,点开是面板:填写文件路径、目标聊天、是否自动发送,还有一个 登录微信 按钮。
展开完整文档(README 剩余 1 节)
dsh-wechat-transfer
左侧栏 DSH 插件:把文件发送到微信聊天(默认「文件传输助手」)。
特别适合远程 / 手机使用:在手机上远程连 DSH 时,跑出来的报告、截图、导出文件都还在电脑里。用这个插件把它们发到「文件传输助手」,手机微信里立刻就能收到,点开就能存进手机相册或文件,不用再回到电脑前复制。手机浏览器打开的面板一样能用(会自动走 DSH 的 /remote 网关)。
安装
从 npm(推荐):
dsh plugin --profile desktop add dsh-wechat-transfer
或直接从源码仓库装(想跟最新提交时用):
dsh plugin --profile desktop add github:<GITHUB_OWNER>/dsh-wechat-transfer
装完重启 DSH,左侧栏出现「微信传输」。只能装在 Windows(依赖 Windows PowerShell 5.1 与中文 OCR 语言包)。
也可以从 Releases 分发包 拿 zip/tgz 离线安装,或 npm install dsh-wechat-transfer 装进任何 DSH profile。
它做什么
- 左侧栏出现一个 微信传输 图标,点开是面板:填写文件路径、目标聊天、是否自动发送,还有一个 登录微信 按钮。
- 在手机上取文件:手机上远程用 DSH 跑出的产物,点一下「发微信」(或让模型调工具),文件就出现在手机微信的「文件传输助手」里,下载即可存进手机——这是它最实用的场景之一。
- 产物一键发送:聊天里每个 present 交付文件卡片旁边多出一个「发微信」按钮,点一下就把该文件发到「文件传输助手」,成功/失败直接显示在按钮上。
- 关闭微信:面板上的「关闭微信」按钮会先给微信发关闭请求(它只会缩到托盘),确认还在跑就直接结束 Weixin.exe 进程,返回 closed-wechat;微信本来就没开也算成功。
- 登录:微信停在登录窗口(头像 + 「进入微信」)时,插件会用 OCR 找到这个按钮并点击,等主窗口出现后再继续;需要手机扫码时明确返回「需要扫码」,不会瞎点。
- 微信没运行也能发:先启动微信、自动登录,再走完整发送流程(实测从 0 个微信进程到文件进聊天约 20 秒)。
- 同时注册模型可调用的工具 wechat_send_file,你可以直接说「把这个文件发到微信文件传输助手」。
- 每次执行都会:
1. 找到微信主窗口并置前(从不 按 Esc、从不 关闭窗口、从不 启停微信进程);
2. 用 Windows OCR 读取窗口标题栏,只有确认当前聊天就是目标聊天才会继续;不在目标聊天时先尝试在会话列表里点开(点列表只切聊天,不会发消息),还不对就中止;
- 如果会话列表里有多个同名聊天(比如两个都叫「工作群」),OCR 分不出是哪一个,插件会直接返回 chat-ambiguous 并中止,让你自己点开正确的那一个;
3. 点击输入栏左侧的 📁,等微信弹出的原生「选择文件」对话框;
4. 点对话框里的「文件名」框,把 "路径1" "路径2" 粘贴进去,回车确认,等对话框关闭;
5. 用 OCR 复核文件卡片是否出现在输入框;
6. 可选:采样「发送」按钮像素确认为绿色后点击,再 OCR 确认消息已出现在聊天里;
7. 保存一张窗口截图,面板里可以直接看到。
为什么不用剪贴板直接粘贴文件:微信 4.1.15.13 的输入框不接受 CF_HDROP 粘贴(文字可以),必须走它自己的 📁 → 「选择文件」这条路。剪贴板粘文件只作为弹不出对话框时的兜底。
默认 autoSend = false:文件只放进输入框,由你确认后再点发送。
为什么是「安全模式」
微信 4.x 使用 Qt Quick 自绘,没有 UI Automation 元素树,PrintWindow 抓到的是黑图,只能靠截屏 + OCR 校验。
早期调试发现:在微信主窗口按 Esc 会把它缩到托盘,之后所有按键都会跑到别的窗口;关闭「搜索聊天记录」窗口会把整个微信进程带走。
因此本插件刻意只做最小动作(置前、点击列表行、点击输入框、粘贴、点击发送),并且每一步都有校验,任何一步对不上就中止并截图,不会盲发。
边界(必读):校验用的是聊天显示名(OCR 读出来的标题),不是微信内部的稳定会话 ID——微信 4.x 没有可用的自动化接口,拿不到 ID。所以:
- 会话列表里有多个同名聊天时,插件会拒绝执行(chat-ambiguous);
- OCR 本身有极小概率识别错误,理论上仍存在发错的可能;
- 结论:这是大幅降低误发风险,不是绝对保证。要绝对稳妥,请把 autoSend 留空(默认 false)——文件只会放进输入框,由你亲眼看一眼再点发送;或敏感文件先用普通方式发。
前置条件
- Windows,装有微信 4.x 桌面版。
- 微信没开也没关系:插件会自己启动 Weixin.exe(HKCU\Software\Tencent\Weixin\InstallPath,否则 C:\Program Files\Tencent\Weixin\Weixin.exe),然后点登录窗上的「进入微信」;只有出现二维码时才需要你拿手机扫一次(会明确返回 login-qr)。
- 目标聊天能出现在左侧会话列表里(插件会自动滚动列表去找,最多 6 次;找不到再用微信全局搜索)。
- 系统有中文 OCR(Windows 自带 zh-Hans 识别器)。
- 窗口大小随意,不再改你的窗口:微信左侧图标栏 + 会话列表是固定像素宽(约 455px@150%),右侧对话区才随窗口缩放;插件按 DPI 把这套固定偏移换算成裁剪区和点击点(日志 layout scale=1.5 left=…),所以 1000×800 到 2500×1550 都能直接用。只有两种情况会动窗口:窗口小于 880×620 时临时放大(发完还原),或者窗口处于最大化状态时先还原(发完再最大化回去),因为最大化窗口的底边被任务栏挡住会吞掉点击。日志关键词 normalize-window / window put back to …。
- 会话列表没滚到的聊天也能找:先按名字点会话列表、上下各滚一遍(最多 6 次);还找不到就用微信自己的全局搜索(Ctrl+F → 输入名字 → 回车)定位,两个办法都失败才会报 chat-not-open。
- 微信 4.2 已适配:4.2 会把主窗口开得更大(例如 1401×1083),表头截图区域被压成 965×47 这种细长条,而 Windows OCR 对细长条会直接返回空,于是旧版误判「聊天不对」而拒绝发送。现在表头截图固定至少 72px 高、最多 760px 宽,点击/裁剪仍按固定像素轨道换算。另外 4.2 最小化时窗口矩形是 -32000,-32000 237x39,旧版会把这个当成「登录小窗」去乱点;现在会先 ShowWindow(SW_RESTORE) 还原并重读尺寸(日志 window is minimised, restoring it)。还有一点:4.2 主窗口的最小尺寸是 658×677(150% 缩放),旧版用「宽 <700 就当作登录窗」的判断会把它误判成登录界面并直接拒绝发送;现在只有真·登录窗(约 442×581,或 OCR 出「进入微信」/二维码)才会走登录分支,小主窗口会被 normalize-window 临时放大到 1320×930(发完还原,日志 window 658x677 is too small, resizing to 1320x930)。
插件只会启动微信,永远不会杀掉或关闭它。
校验是怎么做的
微信把长文件名截断成 季度报告_终稿...版.docx 这种样子,所以不能拿完整文件名去比对。现在按信号强弱依次判断:
1. 大小标签:卡片下面那行 340K / 1.2M,直接和本地文件大小比对(最稳);
2. 首 6 字 + 扩展名(或文件名末尾 4 字),忽略中间的省略号;
3. 文件名短到能完整显示时,才做整名匹配;
4. 图片走结构判定:图片在输入框里只显示缩略图,没有文件名也没有大小标签,OCR 读不到。这时比较「输入框区域」在这次粘贴前后的像素网格(16×8 格,任一格亮度差 ≥14 记为变化,≥6% 才判定为真的加了东西)——只有卡片真的出现才会触发,光标闪烁不会。
发送成功的判定同理:先看聊天区是否出现文件名/大小;图片则要求聊天区出现新气泡且输入框里的卡片消失(只变一个不算,避免把占位提示文字的变化误判成发送成功)。
失败时的状态
| stage | 含义 |
| chat-not-open | 当前打开的聊天不是目标聊天,已中止(没有粘贴任何东西) |
| login-required | 微信停在登录窗口,且没能自动点掉「进入微信」 |
| login-qr | 微信要求手机扫码登录,需要你手动扫一次 |
| not-logged-in | 微信还停在登录界面(旧代码路径,保留兼容) |
| wechat-missing | 找不到 Weixin.exe(没装微信?) |
| wechat-not-starting | 微信启动了但一直没有窗口 |
| input-blocked | 微信对模拟鼠标完全没反应(📁 与粘贴都无效),退出微信重新登录后再试 |
| paste-not-verified | 对话框走通了,但文件没有出现在输入框 |
| send-not-verified | 文件已放进输入框,但没能确认发送 |
| ocr-unavailable | 系统 OCR 不可用,为安全起见中止 |
成功相关:logged-in(登录检查通过)、staged(只放进输入框)、sent(已确认发送)。
路由
| 方法 | 路径 | 用途 |
| GET | /dsh-wechat-transfer/status | 引擎是否就绪、上次结果、截图年龄 |
| POST | /dsh-wechat-transfer/send | {paths, chat?, autoSend?} 发送文件 |
| POST | /dsh-wechat-transfer/login | 处理登录窗口,返回 logged-in / login-qr |
| POST | /dsh-wechat-transfer/close | 关闭微信,返回 closed-wechat / close-failed |
| POST | /dsh-wechat-transfer/resolve | {sessionId, seq, index} → 交付卡片的绝对路径 |
| GET | /dsh-wechat-transfer/screenshot | 最近一次校验截图(PNG) |
手机 / 远程访问
用手机或另一台电脑访问时,DSH 走的是 remote 网关(/remote/...):harness 的 Host 围栏对非 loopback 的「非 /remote 路径」直接返回 403,所以面板会先按 /dsh-wechat-transfer/... 请求,收到 403/404 后自动改成 /remote/dsh-wechat-transfer/... 重试,并在本机切换后一直沿用。
另外两处也照顾了弱网/代理:
- 所有 GET 都带 ?_=<时间戳> 且 cache: 'no-store',避免手机浏览器/代理返回缓存里的旧状态;
- 发送过程中每 1.5 秒轮询 /status,状态行还会显示这次结果的时间戳,一眼能看出是不是最新。
结构
index.js 宿主侧:HTTP 路由(含 resolve/login/close)+ wechat_send_file 工具 client.js Web 侧:左侧栏图标 + 面板 + 交付卡片上的「发微信」按钮 scripts/wechat-send.ps1 PowerShell 引擎(截屏、OCR、输入注入、剪贴板、登录) cordis.patch.yml 把宿主插件插入 profile locale/zh.json 文案
安装
dsh plugin --profile desktop add link:<这个目录的绝对路径>
宿主侧改动需要重启 DSH 生效;面板属于客户端 bundle。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
le0522/dsh-wechat-transfer
把电脑里的文件一键发到手机微信文件传输助手
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。