npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

wechat-clawbot

v1.3.1

Published

Connect DeepSeek Harness to WeChat via the official WeChat ClawBot (Tencent iLink) bridge — a DSH plugin bundle.

Readme

wechat-clawbot

English | 中文

在微信里和你电脑上的 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 官方文档。

贡献者

开发

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。