把桌面会话的审批推送到微信,手机上也能批准或拒绝
29/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add lll-77777777/dsh-wechat-approvals该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · platform
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 40 处,展示前 37 条)
- 写入本地文件lib/host.js:313
mkdirSync(dir, { recursive: true }); - 写入本地文件lib/host.js:316
writeFileSync(path, media.data); - 读取本地文件lib/host.js:633
const text = readFileSync(join(this.#home, 'wechat', BOOT_LOG_NAME), 'utf8'); - 执行外部命令固定命令lib/host.js:1253
execFile('tasklist', ['/FI', 'IMAGENAME eq LogonUI.exe', '/NH'], { windowsHide: true, timeout: 5_000 }, (error, stdout) => { - 读取本地文件lib/host.js:1514
const parsed = JSON.parse(readFileSync(this.#stateFilePath, 'utf-8')); - 读取本地文件lib/host.js:2529
if (!existsSync(entry.path)) { - 读取本地文件lib/host.js:2793
const data = await readFile(path); - 写入本地文件lib/host.js:3145
await writeFile(path, text, 'utf8'); - 写入本地文件lib/host.js:3165
mkdirSync(dir, { recursive: true }); - 读取本地文件lib/host.js:3983
const parsed = JSON.parse(readFileSync(stateFile, 'utf-8')); - 写入本地文件lib/host.js:4016
mkdirSync(workspace, { recursive: true }); - 写入本地文件lib/host.js:4143
mkdirSync(dir, { recursive: true }); - 发起网络请求client.js:59
void fetch(`${PREFIX}/client-error`, { - 发起网络请求client.js:382
const response = await fetch(path, { - 发起网络请求dist/core/lib/http.js:154
const response = await fetch(url.toString(), { - 读取本地文件dist/core/lib/state.js:328
const parsed = JSON.parse(await readFile(this.file, 'utf-8')); - 写入本地文件dist/core/lib/state.js:369
await mkdir(dirname(this.file), { recursive: true }); - 写入本地文件dist/core/lib/state.js:372
await writeFile(temp, `${JSON.stringify(state, null, 2)}\n`, { encoding: 'utf-8', mode: 0o600 }); - 写入本地文件dist/core/lib/state.js:374
await rename(temp, this.file); - 删除本地文件dist/core/lib/state.js:377
await rm(temp, { force: true }); - 读取本地文件dist/core/lib/media.js:111
data: await readFile(params.path), - 读取本地文件dist/core/lib/media.js:123
data: await readFile(path), - 读取本地文件dist/core/lib/media.js:165
data: await readFile(params.path), - 发起网络请求dist/core/lib/media.js:416
const response = await fetch(params.url, { - 发起网络请求dist/core/lib/media.js:481
const response = await fetch(params.target, { - 读取本地文件dist/core/lib/thumbnail.js:96
if (existsSync(join(dir, 'package.json'))) - 读取本地文件dist/core/lib/silk.js:34
if (existsSync(join(dir, 'package.json'))) - 读取本地文件dist/core/lib/session-index.js:134
const raw = await readFile(join(storeDir, name), 'utf-8'); - 读取本地文件dist/core/lib/session-index.js:189
const dirs = await readdir(sessionsRoot, { withFileTypes: true }); - 读取本地文件dist/core/lib/session-index.js:201
const entries = await readdir(join(sessionsRoot, folder), { withFileTypes: true }); - 读取本地文件dist/core/lib/session-index.js:245
const entries = await readdir(sessionsRoot, { withFileTypes: true }); - 读取本地文件dist/core/lib/session-index.js:255
const entries = await readdir(join(sessionsRoot, folder), { withFileTypes: true }); - 读取本地文件dist/core/lib/session-index.js:334
await stat(join(indexDir, name)); - 读取本地文件lib/cli.js:254
if (!existsSync(params.file)) - 写入本地文件lib/cli.js:429
mkdirSync(dir, { recursive: true }); - 写入本地文件lib/cli.js:430
appendFileSync(join(dir, 'boot.log'), `${new Date().toISOString()} ${line}\n`, 'utf-8'); - 读取本地文件lib/cli.js:454
return await readFile(path);
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-home-paths给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DSH 微信插件 fork:桌面会话审批转发微信 + 双端批准 + 任务完成通知 (dsh-wechat-plugin 0.43.1 fork)
README
由 DeepSeek 最新模型翻译生成dsh-wechat-approvals
给 DeepSeek Harness 桌面版用的微信插件补丁版(fork)。
基于官方 dsh-wechat-plugin@0.43.1 修改,不是独立插件——它整包替换官方插件,只多做了三件事:
| 能力 | 官方版 | 这个版本 |
| 桌面会话要审批时通知到微信 | 只通知「绑定微信的那个会话」 | 任何桌面会话都推 |
| 微信上直接批准/拒绝 | 只有绑定会话能 | 桌面会话的审批也能,微信回「允许」就生效 |
| 任务完成时通知微信 | 没有 | 有(只报干了活的轮次,不刷屏) |
| 双端批准 | — | 桌面卡片照常显示;10 秒内没人点才推微信;两边都能批,谁先批算谁 |
手机在兜里、人已经离开电脑时,桌面那边卡在审批上——这个补丁就是为这个场景写的。
安装
前提:DSH 桌面版(desktop profile)、官方微信插件 0.43.1、并且已经绑定了至少一个微信会话。
没绑定会话时,审批和通知找不到推送目标,功能等于不生效(最容易漏的一步)。
展开完整文档(README 剩余 1 节)
dsh-wechat-approvals 给 DeepSeek Harness 桌面版用的微信插件补丁版(fork)。 基于官方 dsh-wechat-plugin@0.43.1 修改,不是独立插件——它整包替换官方插件,只多做了三件事: | 能力 | 官方版 | 这个版本 | | 桌面会话要审批时通知到微信 | 只通知「绑定微信的那个会话」 | 任何桌面会话都推 | | 微信上直接批准/拒绝 | 只有绑定会话能 | 桌面会话的审批也能,微信回「允许」就生效 | | 任务完成时通知微信 | 没有 | 有(只报干了活的轮次,不刷屏) | | 双端批准 | — | 桌面卡片照常显示;10 秒内没人点才推微信;两边都能批,谁先批算谁 | 手机在兜里、人已经离开电脑时,桌面那边卡在审批上——这个补丁就是为这个场景写的。 安装 前提:DSH 桌面版(desktop profile)、官方微信插件 0.43.1、并且已经绑定了至少一个微信会话。 没绑定会话时,审批和通知找不到推送目标,功能等于不生效(最容易漏的一步)。 1. 先装官方微信插件(提供登录、扫码、消息通道) npm 包名:dsh-wechat-plugin 官方仓库:https://github.com/xcisxc29/dsh-wechat 建议锁 0.43.1 —— 本 fork 就是基于这个版本改的 dsh plugin --profile desktop add dsh-wechat-plugin@0.43.1 2. 再用本仓库覆盖同名包 dsh plugin --profile desktop add github:lll-77777777/dsh-wechat-approvals 3. 重启 DSH 也可以直接在 DSH 的「插件 → 添加插件」里粘贴仓库地址。 别下错:官方插件是 dsh-wechat-plugin(作者 xcisxc29,仓库 dsh-wechat);本仓库只有 README.md、lib/、dist/ 这些替换文件,不是独立插件、不能单独提供登录功能。 顺序不能反:先官方、后本仓库。反过来的话官方版会把本仓库覆盖掉。 不用改配置:三个开关默认就是开的。 配置(可选) profile 的 cordis.yml 里,dsh-wechat-plugin 的 config 段: - id: dsh-wechat-plugin name: dsh-wechat-plugin config: autoStart: true relayUnboundApprovals: true # 桌面会话的审批也推微信(关掉 = 官方行为) relayDelayMs: 10000 # 等桌面多少毫秒没人回应才推微信 notifyTurnEnd: true # 桌面会话完成时推微信(关掉 = 只推审批) notifyTurnEndMinMs: 60000 # 完成通知门槛:这一轮跑满这么久算「干活」 notifyTurnEndMinTools: 5 # 或者工具调用达到这么多次也算「干活」 完成通知的规则:一轮跑满 60 秒 或 工具调用 ≥ 5 次,满足一条才推。短问答(几秒、一两次工具)不打扰手机。嫌吵调高,嫌漏调低。 ⚠️ 注意事项 / 已知问题 1. 「串会话」——微信消息跑到别的 DSH 工作区去了 现象:你在 A 工作区干活,手机微信发消息,回复却出现在 B 工作区(通常是 E:\微信 这种插件默认工作区)的会话里。 原因:一个微信对话同一时间只绑定一个 DSH 会话。插件的默认工作区来自设置项 workspacePath;微信里 /new、或已绑定的会话被删除/归档后自动重建时,新会话就落在默认工作区。默认工作区不是你现在用的那个,看起来就是「串」了。 避免办法: - 把插件默认工作区(设置页 → 微信 → 工作区路径)改成你常用的那个 - 别在 GUI 里删除/归档已经绑定的会话(删了就会重建到默认工作区) - 微信里用 /list 看会话,/switch <短id> 切回来 - 记住:切换会话 = 换工作上下文,不是换一个「频道」 自检:微信里发 /current,看当前绑定的是哪个会话。 2. 微信批完,桌面审批卡片不会自动消失 桌面那张「需要通过」卡片是 DSH 前端画的,插件在后端批完之后没有 API 能让它收回去(前端只监听「新请求」,没有「已被别处答完」的事件)。 所以:微信批完 → 工具已经继续执行了 → 桌面上那张卡片还挂着。回电脑点一下「允许」或按 Esc 收掉即可,这一点是空操作,不会重复执行、不会重复授权。 3. 微信回复窗口有额度:一条入站消息最多回 10 条 微信 ClawBot 的协议规定:你发一条消息,bot 最多能回 10 条(审批提示、完成通知都占额度)。额度用完后的通知会静默失败。 如果你发现「审批没推过来 / 完成没通知」,先看微信里是不是很久没说过话了——随便发一条消息就能刷新窗口,之前积压的通知不会补发。 4. Windows 上可能遇到 PowerShell 执行策略问题(与本插件无关) 如果装完后 DSH 里所有 shell 工具都报: 无法加载文件 …\dsh-ops\bin\prepare-workspace.ps1,因为在此系统上禁止运行脚本 这是 DSH 自带的 dsh-ops 包调 PowerShell 时没带 -ExecutionPolicy Bypass。修法是给 profiles\desktop\node_modules\dsh-ops\lib\workspace-preparation.js 里的 spawn 参数加上: '-ExecutionPolicy', 'Bypass' 仓库里的 restore.ps1 包含这段检查与修复(Windows 专用)。 5. 升级会覆盖本插件(有自动恢复) DSH 或官方微信插件升级时,node_modules\dsh-wechat-plugin 会被重新安装成官方版,本插件的改动丢失。 自动恢复(推荐,一次部署长期有效): powershell powershell -ExecutionPolicy Bypass -File .\install-autostart.ps1 它往 Windows「启动」文件夹放一个 vbs,每次登录后台跑一次 check-and-restore.ps1:补丁在 → 什么都不做;被覆盖 → 先做接口自检,通过就备份官方版并恢复,不通过(官方接口大改)就拒绝覆盖并写日志,等人工适配。 - 日志:脚本目录下的 restore.log - 卸载:powershell -ExecutionPolicy Bypass -File .\install-autostart.ps1 -Remove - 想用计划任务代替启动项:加 -Task(需要能注册任务的环境) 手动恢复: powershell powershell -ExecutionPolicy Bypass -File .\check-and-restore.ps1 或旧版精简脚本 powershell -ExecutionPolicy Bypass -File .\restore.ps1 脚本是幂等的:检查版本 → 不是本 fork 就备份并覆盖 → 检查 cordis.yml 开关 → 检查 dsh-ops 补丁。跑完重启 DSH。 退出码:0 已就绪/已恢复,2 官方接口不兼容(未覆盖,要人工改 fork),3 官方插件没装。 6. 版本绑定 本 fork 直接用 dsh-wechat-plugin@0.43.1 的内部接口(会话绑定、消息路由、审批交互)。官方版本改动大时可能对不上,届时需要跟进适配。 验证装好了 1. 桌面会话里触发一次需要权限的操作 → 桌面弹审批卡片 → 10 秒不点 → 微信收到「🔐 需要你确认:<工具名>」 2. 微信回「允许」→ 工具继续执行(桌面卡片需手动点掉,见注意事项 2) 3. 桌面跑一个长任务(≥60 秒,或 ≥5 次工具调用)→ 微信收到「✅ 任务完成 + 摘要」;随便问个短问题则不会收到 4. 日志核对:C:\Users\<你>\.dsh\wechat\boot.log 里有 desktop approval answered from WeChat / desktop turn finished: notified WeChat 改了什么(技术说明) | 文件 | 改动 | | lib/host.js | 未绑定会话的审批转发、双端审批(10 秒窗口 + 撤回)、完成通知(按 agent 空闲判定轮次)、通知去噪、工作区防改名 | | lib/services.js | 读取流帧时识别 start 帧(轮次计时锚点) | | package.json | 版本号 0.43.1-desknotify.1 | | cordis.patch.yml | 默认配置带上全部开关 | dist/ 与 client.js 是官方包的构建产物原样保留——本仓库是整包替换,不是打小补丁,所以推仓必须带上它们。 更细的实现笔记见 FORK-NOTES.md。 许可 MIT,继承自上游 xcisxc29/dsh-wechat。见 LICENSE。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
lll-77777777/dsh-wechat-approvals
把桌面会话的审批推送到微信,手机上也能批准或拒绝
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,792已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,170已汉化DeepSeek 客户端
71
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,041已汉化DSH
70.7
这是你的仓库?认领条目