在微信里和你电脑上的 DeepSeek HarnessDSH助手聊天。
37.9/100
综合分
3
GitHub 星标
961
npm 周下载
—/5
用户评分
数据截至 2026/10/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wechat-clawbotnpm 源 · wechat-clawbot 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包wechat-clawbot @ 1.3.1
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/3 09:51:42
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 47 处,展示前 41 条)
- 发起网络请求lib/client.js:232
return fetch(url, { headers: { accept: "application/json" } }).then(async (r) => { - 发起网络请求lib/client.js:525
fetch(MODELS_URL, { headers: { accept: "application/json" } }) - 发起网络请求lib/client.js:663
const res = await fetch(MEMORY_OPEN_URL, { method: "POST", headers: { "content-type": "application/json" }, body: "{}" }); - 发起网络请求lib/client.js:682
const res = await fetch(url, { method: "POST", headers: { "content-type": "application/json" }, body: "{}" }); - 发起网络请求lib/client.js:706
const res = await fetch(url, { method: "POST", headers: { "content-type": "application/json" }, body: "{}" }); - 发起网络请求lib/client.js:750
const res = await fetch("/plugins/dsh-restart/restart", { - 发起网络请求lib/mcp-cli.js:14
const result = await client.request("sessions"); - 读取本地文件lib/bridge.js:323
for (const chunk of digestChunks(items, { fileExists: (p) => existsSync(p) })) { - 读取本地文件lib/bridge.js:334
const settled = carried.filter((item) => item.kind !== "file" || !existsSync(item.path)); - 读取本地文件lib/bridge.js:337
this.backlog.markAnnounced(to, carried.filter((item) => item.kind === "file" && existsSync(item.path)).map((item) => item.id)); - 读取本地文件lib/bridge.js:352
if (item.kind !== "file" || !existsSync(item.path)) - 读取本地文件lib/bridge.js:1021
const data = readFileSync(prep.path); - 删除本地文件lib/bridge.js:1039
unlinkSync(prep.path); - 执行外部命令来自配置/变量lib/mac-calendar.js:113
execFile(file, [...args], { timeout: timeoutMs, maxBuffer: 4 << 20 }, (err, stdout, stderr) => { - 发起网络请求lib/codex-peer.js:98
const page = await this.rpc.request("thread/list", { - 发起网络请求lib/codex-peer.js:117
const { thread } = await this.rpc.request("thread/read", { threadId: session }); - 发起网络请求lib/codex-peer.js:147
const { thread } = await this.rpc.request("thread/read", { - 发起网络请求lib/codex-peer.js:156
const page = await this.rpc.request("thread/turns/list", { - 发起网络请求lib/codex-peer.js:170
const { thread } = await this.rpc.request("thread/read", { threadId, includeTurns: true }); - 发起网络请求lib/codex-peer.js:181
let { thread } = await this.rpc.request("thread/read", { - 执行外部命令来自配置/变量lib/secretary.js:189
execFile(cmd, args, { timeout: 10_000 }, (err) => { - 执行外部命令来自配置/变量lib/permissions.js:35
const child = execFile(cmd, args, { timeout: timeoutMs, maxBuffer: 16 * 1024 * 1024, windowsHide: true, ...(env !== undefined ? { env } : {}) }, (err, - 读取密钥环境变量lib/mcp-server.js:18
this.tokenFile = options.tokenFile ?? process.env.CLAWBOT_MCP_TOKEN_FILE ?? path.join(resolveStateDir(), "mcp-token"); - 读取本地文件lib/mcp-server.js:23
token = (await readFile(this.tokenFile, "utf8")).trim(); - 发起网络请求lib/mcp-server.js:34
const response = await fetch(url, { - 发起网络请求lib/mcp-server.js:49
const sessions = await this.request("sessions"); - 发起网络请求lib/mcp-server.js:52
const history = await this.request("read", { sessionId: sessions.wechatSessionId, limit: 20 }); - 发起网络请求lib/mcp-server.js:80
}, () => call(() => client.request("sessions"))); - 发起网络请求lib/mcp-server.js:88
}, (args) => call(() => client.request("read", args))); - 发起网络请求lib/mcp-server.js:94
}, (args) => call(() => client.request("send", args))); - 执行外部命令固定命令lib/image-compress.js:37
const out = execFileSync("sips", ["-g", "pixelWidth", "-g", "pixelHeight", filePath], { encoding: "utf8", timeout: 15_000 }); - 执行外部命令固定命令lib/image-compress.js:49
execFileSync("sips", [ - 执行外部命令固定命令lib/image-compress.js:76
const out = execFileSync("sips", ["-g", "pixelWidth", "-g", "pixelHeight", filePath], { - 执行外部命令固定命令lib/image-compress.js:128
execFileSync("sips", [ - 执行外部命令来自配置/变量lib/claude-peer.js:53
const child = execFile(bin, [...args], { - 发起网络请求lib/ilink/api/api.js:251
const res = await fetch(url.toString(), { - 发起网络请求lib/ilink/api/api.js:320
const res = await fetch(url.toString(), { - 执行外部命令来自配置/变量lib/codex-rpc.js:63
const child = spawn(this.options.command, this.options.args ?? [], { - 发起网络请求lib/ilink/cdn/pic-decrypt.js:10
res = await fetch(url); - 发起网络请求lib/ilink/cdn/upload.js:20
res = await fetch(url); - 发起网络请求lib/ilink/cdn/cdn-upload.js:40
const res = await fetch(cdnUrl, {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-tools@deepseek-ai/dsh-user-approval@deepseek-ai/dsh-user-questions@deepseek-ai/schemastery@deepseek-ai/dsh-attachment给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 微信内对话智能体
- 原生图片理解
- 双向文件传输
💬 把 DSH 智能体接进微信的 DeepSeek Harness 插件——随时随地聊:原生图片理解、双向文件传输、长期记忆、定时提醒,权限审批直接在聊天里回复。
最近更新
在 GitHub 查看全部 →v1.3.12026-10-28
Chat with your DeepSeek Harness agent from WeChat.
New in 1.3.1: the settings card shows whether the bot can read your files
· A new first row, 电脑权限 (computer permissions). When the bot reads a file on a Mac, macOS decides by the program that started DSH, not by DSH: Terminal, DSH Desktop, VS Code, the DSH whale menu-bar app, or DSH's own node when launchd runs it. Without Full Disk Access, every protected folder (Downloads, Desktop, Documents, the photo library…) waits for someone to click "Allow" on the Mac, and the bot's command hangs until then. The row asks macOS which program DSH's access is held against, checks whether it has Full Disk Access, and if not, says how to turn it on: one administrator confirmation (Touch ID or password); when macOS offers to quit and reopen the program, choose "Later". Buttons open the Full Disk Access list and show the program in Finder. While access is missing, the collapsed card shows a one-line reminder.
· On Windows the row appears only when Controlled folder access (ransomware protection) is on. It says which DSH programs to allow and how (under DSH Desktop that is the app's own program, not node.exe), and a button opens Windows Security.
· When the settings page is opened from another computer, the card's rows say their status can only be read on the computer running DSH, instead of suggesting a restart.
Corrections
· Alarms need macOS 26.2 and iOS 26.2 or later (urgent reminders arrived in 26.2, not 26.0); the card, the settings and the bot's answers now say so. Scheduling needs macOS 14 or later. The card and the bot also point to the iPhone setting that lets reminders ring: Settings → Apps → Reminders → Alarms.
· The plugin now tells MCP clients and Codex its real version (it said 1.1.0 since 1.2.0), and package.json's types point at the declaration files the package ships.
Install and settings: see the README and wechat-clawbot-INSTALL.md.
---
在微信里和电脑上的 DeepSeek Harness 助手聊天。
1.3.1 新改动:设置卡片上能看到 bot 读不读得了你的文件
· 卡片第
v1.3.02026-10-23
Chat with your DeepSeek Harness agent from WeChat.
New in 1.3.0: the all-day secretary — calendar, alarms and planning rules behind one switch (macOS only, off by default)
· Alarms that ring like an alarm. The bot sets urgent reminders in a Reminders list of its own. They ring like an alarm on the device Find My uses as your location (usually your iPhone), straight from Apple rather than through WeChat — so they ring even when WeChat would not let the bot write to you. Ask "wake me at 6:30 tomorrow" or "set an alarm for my flight"; the bot says back the time it set, and can list and cancel its alarms. Needs macOS 26 and iOS 26 or later.
· Routines you set up in chat. Tell the bot what to do every day, and by which rules — for example "every evening at 9, look at tomorrow's calendar and set my wake-up alarm an hour and a half before my first event, none at weekends". It creates a daily task reminder holding your rules. When it fires, the bot does the task (checks the calendar, sets the alarm) and only tells you what you asked to hear — or tells you when it could not do it. To change the rules, just tell it. If the Mac slept through the time and the task runs after midnight, the bot is told which day it was meant for.
· One switch, two buttons. 全天候秘书 replaces the separate Mac 日历 and 日程秘书 switches. 一键授权 asks the Mac for the permissions still missing (calendar and reminders) while you are there, and the card shows what it is doing; 测试闹钟 sets an alarm two minutes out, so you hear the phone ring before you walk away.
· On the iPhone, once: mark any reminder as urgent by hand and allow the prompt that appears (that is what lets urgent alarms ring), and make sure Find My uses that iPhone as your location.
· Your planning rules in memory.md now live in the section 「## 全天候秘书」. An earlier default you never edited is updated; one you edited stays as you wrote it.
· Its own icon. wechat-clawbot now has an icon on the Plugins page: a chat bubble with a small bot.
Fixes
· Flippi
v1.2.02026-10-15
Chat with your DeepSeek Harness agent from WeChat.
New in 1.2.0: a schedule secretary on WeChat (macOS only, off by default)
· The bot can read your Mac calendars. Every account in the Calendar app (iCloud, Google, Exchange, subscribed calendars), recurring events and notes included. Ask "am I free tomorrow afternoon?" and it checks before it answers.
· It plans into a calendar of its own. You name a dedicated calendar in the settings; it is created in iCloud when you have it, so it shows up on your phone. Tell the bot your to-dos and deadlines: it finds free time, schedules the work there, and replies in a few lines — what happens when, what got moved, what clashes. Scheduled work still gets a WeChat reminder.
· Other calendars: it asks first. Changing or deleting anything outside its own calendar waits for your "yes" on WeChat. Only you can use the calendar tools.
· Reminders stay reminders. "Remind me to call home at 8" becomes a WeChat reminder, not a calendar event.
· Calendar alerts. Events it adds get an alert 10 minutes before by default. Change it in the settings, or tell the bot how early you want it.
· The secretary's rules are yours. Switching on 日程秘书 writes a short set of planning rules into your long-term memory, memory.md: one main thread a day, deep work in 60–90-minute blocks, plan only 70–80% of the day, short replies. Edit them freely: the 打开 memory.md button on the 日程秘书 row opens the file. Switching off keeps your version for next time.
To turn it on: Plugins → wechat-clawbot → 微信 Bot → Mac 日历 (name the calendar, switch it on, click "Allow" on the Mac once), then 日程秘书. The first time, the plugin compiles a small background app, Clawbot-Calendar, which needs the Xcode command line tools (xcode-select --install).
Fixes
· The Codex 会话联动 switch on the settings card never took effect (the host's form only saves settings that apply live). It works now; flipping it restarts the WeChat listener.
· When a model fills optional parameters with empty valu
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成wechat-clawbot
在微信里和你电脑上的 DeepSeek Harness(DSH)助手聊天。
Clawbot 作为 DSH 插件,完全开源,使用 DSH 的 AI 进行回复,不会上传用户信息。
出门在外也能让它查文件、改文档、跑命令,结果直接回到微信对话里。
根据系统日历帮你规划、创建日程,还能帮你定闹钟,到点手机直接响铃(仅限 macOS)。
它走的是微信官方的 微信ClawBot 通道,扫码登录即可。
经过近两个月的开发和实测,wechat-clawbot 日趋稳定、省钱,现于2026年10月10日发布稳定版 v1.0.0。
能做什么
- 在微信里使唤你的电脑:「帮我看看下载文件夹里最新的 PDF」「把这个脚本跑一下」
- 看图:直接发照片问「这是什么?」,模型支持图片输入时,照片会原样交给它看
- 把文件发回微信:「把 README.md 发给我」「画张图表发我」—— 图片、PDF、Office 文档、压缩包都行
- 「对方正在输入…
展开完整文档(README 剩余 1 节)
wechat-clawbot
在微信里和你电脑上的 DeepSeek Harness(DSH)助手聊天。
Clawbot 作为 DSH 插件,完全开源,使用 DSH 的 AI 进行回复,不会上传用户信息。
出门在外也能让它查文件、改文档、跑命令,结果直接回到微信对话里。
根据系统日历帮你规划、创建日程,还能帮你定闹钟,到点手机直接响铃(仅限 macOS)。
它走的是微信官方的 微信ClawBot 通道,扫码登录即可。
经过近两个月的开发和实测,wechat-clawbot 日趋稳定、省钱,现于2026年10月10日发布稳定版 v1.0.0。
能做什么
- 在微信里使唤你的电脑:「帮我看看下载文件夹里最新的 PDF」「把这个脚本跑一下」
- 看图:直接发照片问「这是什么?」,模型支持图片输入时,照片会原样交给它看
- 把文件发回微信:「把 README.md 发给我」「画张图表发我」—— 图片、PDF、Office 文档、压缩包都行
- 「对方正在输入…」:它在想、在查、在给你传文件的时候,微信里会像真人一样显示「对方正在输入」,回复一到就消失
- 定时提醒:「明天早上 9 点提醒我交报告」,到点在微信里提醒你
- 长期记忆:记住你的习惯和偏好,下次不用再说一遍
- 先问再做:需要你授权的操作(比如动工作目录以外的文件),会先在微信里问你,回「同意」或「拒绝」即可
- 看得懂引用:引用一条旧消息回复,它知道你在说哪条
- 聊得越久也不变慢:回复结束、安静一阵之后,对话太长就趁空闲把旧内容整理成摘要,你下一条消息来时不用等
- 全天候秘书(仅 macOS,需手动开启):根据 Mac 系统日历帮你规划、创建日程,还能定到点直接响铃的闹钟;排日程用默认规则或你改过的规则,每天的例行安排在聊天里定。
全天候秘书:在微信里排日程、定闹钟(新功能,仅 macOS,需手动开启)
- 看得到你所有的日程:读取 Mac「日历」里所有账户的日程,iCloud、Google、Exchange、订阅日历都行,备注也看得到。问它「明天下午有空吗」,它查过日历再回答。
- 直接排进日历:跟它说「周四前要交报告,还得看完两篇文献」,它先找空档,排进一个你自己命名的专用日历,再用几行告诉你:几点做什么、挪走了什么、哪里有冲突。专用日历优先建在 iCloud,手机上同步可见;到点还会在微信里提醒你。
- 只在自己的日历里自主安排:专用日历里的日程它自己加、改、删;要动你其他日历里的日程,默认先在微信里问你,你回「好」才做(在设置里关掉「改别的日历前先问我」就直接改,会通知其他参与者的改动仍会先问)。
- 提醒和日程分得清:只说「提醒我…」的事只发微信提醒,不占日历;要占一段时间的事才排进日历。
- 真会响的闹钟:「明天 6:30 叫我起床」「给航班定个闹钟」——bot 在「提醒事项」里(它自己的清单)设一条紧急提醒,到点在 iPhone 上像闹钟一样响,静音和专注模式下也响。它不走微信,微信不让 bot 发消息的时候也照样响。对电脑和手机的要求见下面「需要什么」。
- 例行任务在聊天里定:比如「每晚 9 点看看明天的日历,第一个日程前一个半小时叫我起床,周末不叫」。bot 会建一个每天的任务,到点照你的规则去做,没事不打扰你;要改规则,直接跟它说。到点时 Mac 要醒着、DSH 在运行:睡着错过的任务醒来才跑,已经过去的闹钟时间不会补。
- 排法你说了算:排日程、定闹钟的规则写在长期记忆 memory.md 的「## 全天候秘书」一节里,想怎么排就怎么改:设置里点「打开 memory.md」就能直接编辑。
这个功能只支持 macOS,而且默认关闭,要自己打开:
1. DSH 网页「插件」→ wechat-clawbot → 微信 Bot →「全天候秘书」:填一个专用日历的名字,打开开关。
2. Mac 上会弹出「日历」和「提醒事项」的授权,都点「允许」(没弹出就点「一键授权」;低于 macOS 26.2 的系统没有闹钟,只问「日历」)。
3. iPhone 上做一次:在「提醒事项」里手动把随便一条提醒设成「紧急」,允许弹出的授权;再确认「查找」里的「我的位置」是这台 iPhone。不做这一步,闹钟到点不响。
4. 点「测试闹钟」,大约两分钟后听手机响不响。
第一次打开时,插件会在本机编译一个后台小程序 Clawbot-Calendar,需要 Xcode 命令行工具(没有的话运行 xcode-select --install)。
成本
- 作者用 gpt-6-luna 时,一条微信对话的平均成本约 $0.005–0.007,每天 7 条左右、一个月约 $1.4,不到 ¥10。
需要什么
- DSH 0.1.7 到 0.2.1(在 0.1.7-rc.2、0.2.0-rc.2 和 0.2.1-rc.2 上测过),以及 Node.js 22+、pnpm
- 手机微信里能用官方「微信ClawBot」插件(微信 → 设置 → 插件;第一次扫码时可能会提示升级微信)
- 一台一直开着的电脑:DSH 在运行,bot 才在线
- 想用全天候秘书的话(只支持 macOS):
- 排日程:macOS 14 或更新,以及 Xcode 命令行工具(没有的话运行 xcode-select --install)
- 闹钟:Mac 要 macOS 26.2 或更新。搭载 Apple 芯片的 Mac 都可以;Intel Mac 只有四款能升到 macOS 26,见苹果的兼容机型列表
- 手机(闹钟用):iPhone 11 或更新的机型、iPhone SE(第 2、3 代),系统 iOS 26.2 或更新;Mac 和 iPhone 的「提醒事项」都要用 iCloud,而且是同一个 Apple 账户。闹钟只在「查找」里设为「我的位置」的那台 iPhone 上响,Mac 只弹通知
三步装好
0. 有 Agent
复制这个网站,或者跟任何 Agent 说 wechat-clawbot,让它帮忙安装到DSH即可。或者:
1. 安装插件
dsh plugin --profile web add wechat-clawbot
也可以在 DSH 网页侧边栏「插件」→「添加插件」里搜 wechat-clawbot。装完重启一次 DSH。
2. 扫码绑定微信
npx -y -p wechat-clawbot clawbot login
终端里会出现一个二维码,用微信「扫一扫」扫码并确认。
3. 开始聊天
微信里会多出一个联系人「微信ClawBot」,给它发消息就行。正在运行的 DSH 会自动认出新绑定的账号,并开启一个对话。
其他命令:clawbot status 看绑定的是谁,clawbot logout 解除绑定(同样用 npx -y -p wechat-clawbot 前缀)。
设置
在 DSH 网页侧边栏打开 「插件」→ wechat-clawbot → 微信 Bot,大多数改完立刻生效,微信连接不会断(注明会重启微信监听的两个开关除外,几秒就好):
- 模型:给 bot 固定一个 provider / 模型 / 思考档位。留空就跟随 DSH 的全局默认模型。
- 允许给 bot 发消息的人:默认只有扫码的你自己。要加人就填对方的微信用户 id。
- 图片:要不要把照片直接交给模型看,以及发图时的压缩尺寸和质量。
- 空闲时整理对话:默认开。关掉后只剩 DSH 在回复前压缩(会让那一条回复多等十几秒)。
- 把工作目录的说明文件交给 bot:默认开(DSH 原样:bot 在哪个项目里干过活,那里的 AGENTS.md / CLAUDE.md 就会塞进对话,文件每改一次再塞一整份)。关掉则微信会话里不再自动塞,适合说明文件很长、又经常改的人;需要时让 bot 自己去读。
- 开放 MCP 桥(Claude / Codex):见下面的联动说明。
- Codex 会话联动:选择 Codex 项目和对话、转发消息、查询进度。默认关;打开后每次请求要多带 5 个工具(约 1k token),改动会重启微信监听。
- 全天候秘书(仅 macOS,默认关):先填专用日历的名字再打开开关;拨这个开关会重启微信监听(改名字不会)。打开时把排日程、定闹钟的规则写进 memory.md;关掉时移出记忆并留一份副本,再打开原样放回。「一键授权」补上还缺的「日历」「提醒事项」授权(人要在 Mac 前);「测试闹钟」定一个两分钟后响的闹钟;「打开 memory.md」在 Mac 上打开这个文件。
- 日历提醒:bot 往日历里加日程时,默认带一个提前 10 分钟的日历提醒,可以关掉或改分钟数。
- 改别的日历前先问我:默认开。bot 往专用日历以外的日历里加、改、删日程前,先在微信里问你;关掉就直接改(会通知其他参与者的改动仍会先问)。
少数几项(会话 id、工作目录、是否随 DSH 自动启动等)在 ~/.dsh/profiles/web/cordis.patch.yml 的 - id: clawbot 里改,改完会自动重启微信监听。
隐私与安全
- 只有你能用:默认只接受扫码绑定者本人的消息,陌生人的消息直接忽略。
- 需要授权的操作会先问你:DSH 要你批准的操作,在微信会话里一律发到微信问你,你不回就不做。
- 消息去哪:发给你为这个 DSH 会话配置的模型。你要求转发给 Claude Code 或 Codex 时,对应消息也会交给所选的本机代码会话。
- 自动记忆(默认开):像「我不喝咖啡」这种看起来是长期事实的短消息,会让同一个模型判断要不要记下来。
不想要的话,在 cordis.patch.yml 的 clawbot 里加一行 autoMemory: false,下一条消息就生效。
- 全天候秘书(默认关):bot 查日历时,相关日程(含备注)会交给模型;查闹钟时,闹钟清单里各项的标题和时间也会交给模型。只有扫码的你自己能用日历和闹钟;白名单里还有别人时,这些工具整体不开放。
- 绑定凭据和长期记忆都存在本机的 ~/.dsh/clawbot/ 里。
常见问题
发了消息没反应:先确认 DSH 在运行。再看网页「插件」→ wechat-clawbot,里面两个组件应该都是「运行中」。
刚升级过 DSH 的话,看 安装与排错手册。
提醒没按时响:提醒要靠电脑和 DSH 开着;电脑睡眠时会推迟到醒来之后。
闹钟没响:在 iPhone 上查三处:系统是 iOS 26.2 或更新;「设置 → 你的名字 → 查找 → 我的位置」是这台 iPhone;「设置 → App → 提醒事项」里「允许“提醒事项”访问」下的「闹钟」开着(没有这一项,就手动把一条提醒设成「紧急」一次,在弹出的授权里点允许)。
想换 bot 用的模型:在上面的「微信 Bot」设置里固定一个模型,这样在网页里换模型就不会影响 bot。
更完整的安装、升级和排错说明见 wechat-clawbot-INSTALL.md。
这份手册本来是写给「替你装插件的 AI」看的,人看也一样有用。
限制
- 不支持群聊。收语音能,发不了。
- 一个 DSH 只绑定一个微信号。
- 电脑关机、DSH 没运行的时候,bot 不在线。
- 全天候秘书只支持 macOS,闹钟还要一台 iPhone(版本见「需要什么」)。
和 Claude Code 联动(可选)
如果你也用 Claude Code,bot 可以帮你查看 Claude Code 会话在做什么,或者给某个会话捎一句话(已经关掉的会话会在后台重新接上)。
需要本机装有 claude 命令行。
另外插件在本机开了一组 HTTP 接口,配合 MCP server 使用,可以让 Claude Code 反过来读写 DSH 会话、给你发一条微信通知。
这组接口只监听本机,并且要求令牌。不需要的话,在「微信 Bot」设置里关掉「开放 MCP 桥(Claude / Codex)」即可。已有的 Claude MCP 客户端仍然兼容。
和 Codex 联动(可选)
支持两个方向:
- 微信 → Codex:让 bot 列出项目和对话,选择目标后转发消息。DSH 获得 list_codex_projects、list_codex_sessions、read_codex_session、send_to_codex_session 和 read_codex_progress。
项目按对话的工作目录分组,列表支持翻页。选择时使用返回的完整目录和对话 id;多个同名候选会返回选项,不会猜着发送。
- Codex → DSH / 微信:包内的 clawbot-mcp 是标准 stdio MCP 服务,可读取微信会话、读写 DSH 对话、给微信发通知、发布和查询 Codex 进度。
让 Codex 看到 DSH 微信会话和发送微信的 MCP
在运行 DSH 的同一台电脑上编译这个版本,再注册 MCP:
npm ci
npm run build
codex mcp add wechat-clawbot -- node /path/to/wechat-clawbot/lib/mcp-cli.js
node /path/to/wechat-clawbot/lib/mcp-cli.js --check
把 /path/to/wechat-clawbot 换成实际代码目录。安装了包含此功能的包后,也可以使用 clawbot-mcp 可执行命令。
注册后重新连接 Codex 客户端。DSH 需要运行更新后的插件,并开启「开放 MCP 桥(Claude / Codex)」。
默认地址为 http://127.0.0.1:3080;端口不同可设置 CLAWBOT_DSH_URL。
令牌从 $CLAWBOT_STATE_DIR/mcp-token 或 $DSH_HOME/clawbot/mcp-token 读取,DSH_HOME 默认为 ~/.dsh。
使用别的位置可设置 CLAWBOT_MCP_TOKEN_FILE。这些环境变量可通过 codex mcp add --env KEY=VALUE 传入。
令牌留在本机文件里,不要抄进命令参数或仓库配置。
Codex 可读取 clawbot://wechat-session,或调用 dsh_get_wechat_session 查看微信对话。
dsh_notify_wechat({text: "…"}) 只发给扫码绑定的用户,并将带有 [Codex 发给用户的] 前缀的副本写入 DSH 历史,不额外触发 bot 回复。
dsh_send_to_session 可以驱动所选的 DSH 对话,其回复不会自动发到微信;需要手机通知时使用通知工具。
这两个工具都标注为会产生外部影响,在 Codex 默认的审批设置下,每次调用前会先征求你的同意。
从微信选择项目和对话来转发
默认 codexTransport: socket 通过 Unix socket 上的 WebSocket 连接已有的共享 App Server。
默认 socket 为 $CODEX_HOME/app-server-control/app-server-control.sock,CODEX_HOME 默认为 ~/.codex。
连接特定共享服务时设置 codexSocket;为独立后台模式选择 CLI 时设置 codexBinary。
这几项写在本机 DSH cordis.patch.yml 的 clawbot 配置里,改动会重启插件。
「Codex 会话联动」(codexPeer)在设置卡片里开关,默认关;关着时这几个工具不会发给模型。改动同样会重启微信监听。
共享服务必须是实际执行目标对话的那个服务,并支持官方的 Unix socket WebSocket 传输。
可用 codex app-server --listen unix:// 或 --listen unix:///path/to/rpc.sock 启动本机共享服务。
已经运行的桌面端 / IDE 客户端需要开放或使用该共享服务才能实时投递;另开一个 daemon 不会自动接管别的客户端正在运行的任务。
共享服务不可用时会明确报错,不会悄悄启动另一个 Codex 执行同一任务。
连接好后,可以在微信里说「列出 Codex 项目」「看看这个项目的对话」,选定目标后说「把运行测试这句话发给这个对话」。
运行中的任务通过带有当前 turn id 的 turn/steer 接收消息;空闲对话通过 turn/start 开始下一轮。
会话身份和权限沿用原设置。工具报告消息已投递时,工作未必已经完成,需要另查进度。
未加载的对话在 socket 模式下同样需要先关闭原客户端,并显式设置 allowResume: true;历史记录不能证明别的服务里没有正在执行的任务。
notLoaded 只表示这个服务没有加载该会话,不妨碍用 read_codex_session 读取已保存的历史。
读取使用摘要分页,避免长任务的命令输出和工具结果撑大响应;若遇到 8 MiB 响应限制,可把 limit 降为 1。
读取历史不会恢复任务,也无法保证包含另一个客户端当前尚未保存的消息。
转发消息属于投递结果中 threadId 对应的对话,不会复制到 App 中当前打开的其他对话。
普通本机 CLI 可用 /app 在桌面端打开同一个已保存的对话;共享服务中的实时执行仍要求客户端连接同一服务。
已知本机会话 id 时,也可以用 codex://threads/<thread-id> 打开,参见桌面端深链接说明和 CLI 命令说明。
如果需要对历史对话做后台续聊,显式设置 codexTransport: stdio。
它用已有的 Codex 登录和配置启动独立的 codex app-server --listen stdio://,无法判断另一个客户端是否仍在工作。
未加载的历史对话必须先关闭原客户端,并明确允许后台续聊(allowResume: true)才会继续执行。
模型、沙箱和审批策略不会被覆盖。独立服务的命令 / 文件审批和用户问题会转到微信,未支持的权限授予会被拒绝;共享服务的审批仍由原 Codex 客户端处理。
stdio 模式目前是实验性的:转到微信的审批提示还不完整(看不到具体改动和额外权限),而且会发给当时正在和 bot 聊天的人。只建议在只有你一个人能给 bot 发消息时使用;默认的 socket 模式不受影响。
让 clawbot 查询和汇报 Codex 进度
在 Codex 对话里要求它在重要阶段和结束时调用 dsh_report_codex_progress,使用已选择对话的完整 id,例如:
{"threadId":"11111111-1111-4111-8111-111111111111","state":"running","summary":"正在实现解析器"}
状态支持 running、waiting、completed、failed、interrupted。
DSH 通过 read_codex_progress 查询;MCP 客户端也可通过 dsh_read_codex_progress 查询。
上报只保存进度,不自动发微信;需要通知时让 Codex 另调用 dsh_notify_wechat。
已订阅对话的 App Server 事件也会生成进度记录。notLoaded 表示实时状态未知;进度记录带有更新时间,不能当成持续在线的心跳。
记录仅存在内存里,最多保存 200 个对话,插件重启后清空。
HTTP 接口为 POST /plugins/clawbot/mcp/codex/report 和 GET /plugins/clawbot/mcp/codex/progress?threadId=…,和已有接口一样受 bearer token 与 mcpBridge 开关保护。
MCP 客户端只接受本机回环地址,并拒绝重定向。包里不会附带登录信息、真实对话快照、个人偏好、项目清单或本地文件索引。
协议说明:Codex App Server 官方文档。
贡献者
- @MistyHuang03:Codex 联动(#1)
开发
npm install
npm run build # 编译到 lib/
node test/regression.mjs # 离线回归测试:不调模型、不联网、不碰微信
npm run test:codex # 模拟 Codex、临时回环 HTTP、真实 MCP stdio;不调模型、不发微信
src/ilink/ 是移植自腾讯官方 MIT 许可的 @tencent-weixin/openclaw-weixin 的协议层,其余是 DSH 集成代码。
License
MIT。移植的 iLink 协议客户端版权归腾讯,同为 MIT 许可,见 NOTICE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Alphainfix/wechat-clawbot
在微信里和你电脑上的 DeepSeek HarnessDSH助手聊天。
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,359已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,514已汉化DSH
71.8
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,289已汉化DSH
71.6
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 92,675已汉化DSH
71.2
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,522已汉化DSH
71