Skip to content
Back to skills

wechat-reply-assistant

ASecurity

使用 computer-use 操控桌面微信,帮用户在群聊或私聊里发送 / 回复消息。触发场景包括:发送微信消息、回复某人、跟进对方的回复、在某个群里说点话、以及任何形式的\"帮我用微信发 / 说 / 回一下…\"。即使用户没明确说\"微信\",只要提到\"发给 XX\"、\"在群里说\"、\"回复一下\"且上下文是聊天工具,也应使用本 skill。本 skill 会根据聊天历史生成贴切、自然的中文消息,尽量贴合对方的说话风格和关系亲疏。

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
data-aiapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add ZHOUCOOKIE/wechat-assistant-for-claude --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of wechat-reply-assistant?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for wechat-reply-assistant
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/zhoucookie-wechat-reply-assistant/badge)](https://www.skillsdirectory.com/skills/zhoucookie-wechat-reply-assistant)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: wechat-reply-assistant
description: "使用 computer-use 操控桌面微信,帮用户在群聊或私聊里发送 / 回复消息。触发场景包括:发送微信消息、回复某人、跟进对方的回复、在某个群里说点话、以及任何形式的\"帮我用微信发 / 说 / 回一下…\"。即使用户没明确说\"微信\",只要提到\"发给 XX\"、\"在群里说\"、\"回复一下\"且上下文是聊天工具,也应使用本 skill。本 skill 会根据聊天历史生成贴切、自然的中文消息,尽量贴合对方的说话风格和关系亲疏。"
---

# 微信回复助手 (WeChat Reply Assistant)

## 用途

通过 Windows 桌面版微信,帮用户:

- 在指定群聊或私聊中发送一条消息
- 读取最近聊天记录后生成一条"贴切"的消息(根据话题、关系、语气)
- 跟进对方的新回复,延续对话

## 为什么需要一个专门的 skill

桌面微信没有官方 API,只能通过"截图 + 视觉识别 + 模拟鼠标键盘"来操作。这一套里有不少容易踩的坑(中文输入、弹窗、聊天对象错认、坐标漂移),把工作流写成 skill 可以让 Claude 每次都稳定走对路径,而不是每次重新摸索。

---

## 前置条件

**开头只允许问用户一个问题,用 `AskUserQuestion`**:要按最近聊天记录自动生成回复,还是用户自己输入要发的内容?拿到这一个答案之后,立刻 `request_access` 一次性把本 skill 会用到的权限全部申请好,然后按工作流走到底 —— **后续全程禁止再用 `AskUserQuestion`**(不再确认目标对象、不再让用户审核草稿、不再问要不要发、不再问任何细节)。中途再弹授权窗或问答窗都会打断用户。

调用一次 `request_access`,apps 里包含:

- `微信` —— 微信本体。微信 4.x 的所有进程(1 个主进程 + 3 个 UI 子进程)的可执行文件都叫 `Weixin.exe`,resolver 会把它们统一映射回 Start menu 显示名 `微信`。**申请这一个名字就等于授权了整个微信进程组**,不需要再为子进程单独申请。
- `文件资源管理器` —— 托盘区域属于 Explorer 进程,点托盘里的隐藏图标箭头、恢复最小化到托盘的微信都需要这个权限

同时打开 `clipboardWrite: true`。中文消息和长文本必须经剪贴板发送,否则 `type` 打中文很慢且常丢字。

授权示例:

```
request_access(
  apps=["微信", "文件资源管理器"],
  clipboardWrite=true,
  reason="帮你查看并回复微信消息"
)
```

如果是同一会话的重复任务、之前已经授权过,可以跳过这步;但**不要**边走边多次 `request_access`,每加一次都打断用户一次。只有发现"用户还临时要求开浏览器查个东西"这种原本没计划的动作,再追加。

---

## Wechatappex 假授权错误

> ⚠️ **必读**:这是启动/激活微信过程中最常撞见的一道阻塞错误,看到就按下面 ✅ 的解法处理。

启动微信(尤其是冷启动、点完"进入微信"之后)的某些时刻,`left_click` 微信窗口会报:

```
"Wechatappex" is not in the allowed applications and is currently in front.
```

**这不是真的缺授权**,`Wechatappex` 对应的是微信启动阶段的一个中转前台层(`request_access` 申请这个名字一定会被 resolver 驳回 `name not installed`)。

### ✅ 唯一可靠的解法:`open_application("文件资源管理器")`

看到该错误,立即调用:

```
open_application("文件资源管理器")
```

文件资源管理器已经在[前置条件](#前置条件)里授权过。打开它会把前台焦点从 `Wechatappex` 身上抢走,紧接着 `left_click` 微信窗口就能成功。

**附带好处**:如果当时卡在"进入微信"那一步,`Wechatappex` 失去前台的瞬间微信会自动把登录流程走完、直接跳到主界面,不需要再去点"进入微信"按钮。

### ❌ 不要做的事(实测走不通,别浪费轮次)

- **不要"等几秒再点"**。错误不会随时间自动消退,`Wechatappex` 会一直占前台;反复重试每次都报同一条错。
- **不要 `left_click` 别的坐标来取消焦点**(桌面空白处、任务栏微信图标、任务栏别的应用图标、微信窗口标题栏等)。只要 `Wechatappex` 还在前台,任何 `left_click` 都会被同样的错误拦掉 —— 前台判定看的是哪个进程在最前面,和点击目标无关。
- **不要尝试系统级键盘组合** `alt+tab` / `win+D` / `win+数字` 去切窗口 —— 它们默认未授权会直接报错。
- **不要去追加授权**。下面这些名字实测全部无效,每试一个就浪费一轮:
  - `Wechatappex` / `Wechatappex.exe` / `WeChatAppEx` → resolver 返回 `name not installed`、`didYouMean=[]`
  - `msedgewebview2.exe` / `Msedgewebview2` → 本机根本没这个进程在跑,同样驳回
  - `Weixin` / `weixin` → 映射回你已经有的"微信"授权,重复申请无意义
  - `WeChat` → resolver 返回 `name not installed`

### 何时才走 [排查](#常见坑与排查) 最后一行

只有在 `open_application("文件资源管理器")` 执行完、重新 `left_click` 微信后,错误里的**进程名变成了另一个陌生名字**(不是 `Wechatappex`),才说明遇到了非标准版本的微信,这时再按排查表处理。

---

## 标准工作流

下面是每次执行的标准五步。严格按这个顺序走。

### 1. 定位微信并打开(关键 —— 不要一上来就 `open_application`)

> ⚠️ **硬规则:先按 A 的顺序找已有实例激活,都找不到才走 B 启动新实例。**
> 进程已经在跑时,直接 `open_application("微信")` 不是"激活老窗口",而是很可能触发"新实例登录"流程,弹登录对话框 / 扫码页 / "该账号已登录"提示,把用户已登录的会话搅乱。所以默认当作"在跑"处理,从 A 走起;A 找一圈都没有再回退到 B,这样最多多一次截图,不会误触发重新登录。

#### A. 激活已有实例

1. **窗口 / 任务栏**:先 `screenshot` 看当前屏幕,有没有微信主窗口直接露在桌面上;没有就看 Windows 任务栏上有没有微信图标(绿色气泡 + 白色消息),有就 `left_click` 激活主窗口。任务栏图标很小,不确定就用 `zoom` 放大那一块再判断。
2. **系统托盘(含隐藏图标)**:任务栏没有 → 点托盘右侧的"显示隐藏的图标"箭头(Windows 11 是任务栏右下角 `∧`)→ 在展开面板里找微信图标,单击或双击恢复主窗口。
   - 点击前可以 `zoom` 放大那一小块区域确认哪一个是微信图标,托盘图标很小容易认错。
3. **都没有**:回退到 **B**(启动新实例)。

#### B. 启动新实例

- 调用 `open_application("微信")` 启动。
- 启动后如果弹出"进入微信",直接点击进入、把流程走完,不要停下来等用户确认。扫码登录除外 —— 扫码必须由用户本人完成,遇到扫码页告诉用户去扫就行。
- 点完"进入微信"、刚进入主界面时,**第一次 `left_click`** 可能会报 `"Wechatappex" is not in the allowed applications` 错误(点"进入微信"本身不会报,只有之后那一下首次点击才会)。看到这个错误**立即**调用 `open_application("文件资源管理器")`,然后重新点击。**不要**等、不要重试、不要追加授权 —— 详见 [Wechatappex 假授权错误](#wechatappex-假授权错误)。

#### 激活成功后

- 调用 `screenshot` 看当前画面。
- 观察点:
  - 当前聊天窗口标题栏显示的是谁 / 哪个群。
  - 左侧会话列表里有哪些最近对话。

### 2. 定位正确的聊天对象

用户会说 "发给 XX"、"回复 XX"、"在 YY 群里说一下"。要点:

- **先看左侧会话列表里有没有直接可见的对话**。如果在,点击对应行即可。
- **列表里没有就用搜索**。搜索框在左上角(放大镜图标 + 灰色"搜索"占位文字 + 右侧 `+` 按钮),**点"搜索"那段文字**才会聚焦输入;直接点放大镜图标不一定触发。聚焦后输入名字或拼音关键词,从候选结果里点击正确的那一个。
- **不要盲猜坐标点击列表项**。相邻条目很近,容易点偏。点击后务必再 `screenshot` 确认标题栏显示的是目标对话。

> **避免的典型错误**:上次会话结束后,列表顺序可能因为新消息到达重新排过。不要沿用旧坐标,先截图再定位。

### 3. 读懂聊天语境

点进对话后,在发送之前**先看最近 5–10 条聊天记录**:

- 这是私聊还是群聊?群里有哪些成员在活跃?
- 双方的称呼、语气、emoji 使用习惯(是爸妈般温情?朋友间调侃?工作沟通?)
- 对方上一条消息的内容 —— 是在问问题、分享链接、吐槽、还是只是一个表情?
- 有没有之前未答复的正事(项目、约定、问题)可以顺势接上?

> 如果文字太小或看不清,用 `zoom` 对准气泡区域放大确认。尤其是对方发的小表情,常常决定了回复该用什么口吻。

### 4. 生成消息并发送

**原则**:消息要像"本人会说的话",而不是模板化的客套话。

- **短而自然优于长而正式**。微信上日常交流,2–4 句就够;除非用户明确要"写一段"或"写一封"。
- **呼应对方最近的话题**。如果对方上一条问了 X,至少接一下 X 再延伸。
- **用 1–2 个表情点缀就好**,不要每句都带 emoji;emoji 风格尽量跟对方/该对话已有风格一致。
- **不要凭空编事实**。如果不知道"你最近在忙什么"的具体内容,就用"最近挺好/有空聊"这类开放说法,别替用户编造出国、考试、项目进度等细节。

**发送操作**(推荐用 `computer_batch` 一次做完,减少来回):

1. `write_clipboard` 把消息写到系统剪贴板(中文/长文必须这样做)。
2. `left_click` 聊天输入框(靠近窗口下方的大片空白区域)。
3. `key` 发送 `ctrl+v` 粘贴。
4. `left_click` 右下角的"发送"按钮。也可以用 `key` 发送 `Enter`,但微信里 Enter 有时是换行不是发送,**点击"发送"按钮更稳**。
5. 最后 `screenshot` 确认消息已出现在对话区、输入框已清空。

> **坐标说明**:这些坐标要以当前截图为准,不能硬编码。微信窗口可能被用户拖动过大小/位置。每次都从最新 screenshot 读取输入框和发送按钮的位置。

### 5. 收尾确认

发完后向用户简要报告:

- 消息发给了谁 / 哪个群
- 发了什么内容(一两句概括或直接引用)
- 如果是跟进回复,提一句对方之前说了什么、你怎么回应的

**不要**在报告里再贴一遍大段的 screenshot 或过度渲染成功;微信发送成功是默认预期,简短确认即可。

---

## 写消息时的常见场景

不同关系用不同的笔触。下面给一些参考(不要照抄措辞,按当次语境调整):

**给父母 / 长辈**
- 关键词:报平安、提醒他们照顾自己、表达想念、感谢支持
- 语气:可以撒娇、轻松日常,也可以温情一点,但避免过度书面
- 例:「爸妈~今天也记得按时吃饭、早点休息呀,我这边一切都好,你们别太挂念~」

**给家庭群**
- 开场用"爸爸妈妈"/"家人们"而不是"大家"(更亲)
- 内容重叠的不要在群里和私聊里连发同样的话

**给朋友**
- 轻松、可以自嘲、用梗、允许一点懒散的口语
- 呼应对方最近的梗或吐槽比泛泛问好有效得多
- 例:接"你是不是用 AI 跟我聊天" → "被你抓包了哈哈,本人在的本人在的"

**给同事 / 工作沟通**
- 开门见山说事,不要过多寒暄
- 涉及时间 / 数字 / 文件时,具体到位,避免含糊

---

## 隐私与边界

- **只在用户明确让我发消息时才发**。读聊天历史是为了写好这一条,不要把历史内容再转述给其他人或写进其他文档。
- **不要替用户主动联系第三方**(比如"顺便通知一下 XX"),除非用户明确点名要发给谁。
- **不要删除消息、撤回消息、修改群设置、踢人、转账、发红包**。这类敏感操作一律让用户本人来做。
- **如果对话里有敏感信息**(身份证号、银行账户、密码、病情等),不要在回复中引用它们,也不要记入其他地方。

---

## 常见坑与排查

| 现象 | 可能原因 | 处理 |
| --- | --- | --- |
| `left_click` 报 `"Wechatappex" is not in the allowed applications and is currently in front` | `Wechatappex` 是微信启动阶段的中转前台层霸占了前台,不是真的缺授权 | 立即 `open_application("文件资源管理器")` 把前台夺走,然后重新点击。**不要**等、**不要**点别的坐标取消焦点(同样会被拦)、**不要**追加 `Wechatappex` / `msedgewebview2.exe` / `Weixin` 任何变体的授权(这些名字实测全部无效)。详见 [Wechatappex 假授权错误](#wechatappex-假授权错误) |
| 点击发送后消息没出现 | 点到了别的按钮 / 输入框没聚焦 | 重新截图定位输入框和发送按钮,再来一次 |
| 中文消息打出来是乱码或少字 | 没用剪贴板,直接 `type` 中文 | 改用 `write_clipboard` + `ctrl+v` |
| 点到了错误的聊天 | 列表顺序刚被新消息刷新过 | 点完后立刻截图确认标题栏 |
| "进入微信"弹窗挡住界面 | 微信重启或长时间未活跃 | 先点"进入微信"把登录流程走完,再进入对应聊天 |
| 发送按钮变灰点不动 | 输入框为空 | 确认粘贴已经完成再点发送 |
| 主窗口关掉后再也找不到 | 微信被最小化到托盘,任务栏上也没有 | 点任务栏右下角"显示隐藏的图标"箭头(Windows 11 是 `∧`),从托盘里点微信图标恢复主窗口 |
| 持续 5 秒以上点击都被前台检查拦、错误里的进程名不是 `Wechatappex` | 真的遇到一个非标准版本微信,UI 进程独立命名 | 这种情况下先 `screenshot` 抓错误提示里的真实 exe 名,然后**问用户**这个名字能不能加白,不要自己穷举变体 |

---

## 完整示例(精简版伪代码)

```
# 1. 一次性申请本 skill 需要的权限。
#    微信 4.x 所有进程都叫 Weixin.exe,全部被 resolver 映射回"微信",
#    所以只申请"微信"这一个名字就够了 —— 不要加 Wechatappex / msedgewebview2。
request_access(
  apps=["微信", "文件资源管理器"],
  clipboardWrite=true,
  reason="帮你查看并回复微信消息"
)

# 2. 定位微信 —— 优先激活已有实例,都找不到才启动新实例
#    a) 截图看任务栏有没有微信图标 → 有就 left_click 激活
#    b) 没有就点托盘"显示隐藏图标"箭头 → 在面板里点微信图标恢复
#    c) 还是没有 → open_application("微信") 启动新实例
#                  弹"进入微信" → 直接点进去,不用等用户确认
#                  弹扫码页 → 告诉用户扫码(只有扫码必须本人做)
#                  left_click 报 Wechatappex 假授权错误 → 立即 open_application("文件资源管理器")
#                     把前台夺走,再重新点击;不要 wait / 不要点别的坐标 / 不要追加授权

screenshot()  # 看当前是谁的窗口 + 有没有弹窗

# 3. 切到目标对话
#    情况A:左侧列表可见 → 点击那一行
#    情况B:不可见 → 点搜索框、输入关键词、从候选中选
left_click(搜索框坐标)
type("目标名字")
left_click(候选第一项)
screenshot()  # 确认标题栏

# 4. 阅读最近聊天(如有必要 zoom 放大看表情/小字),呼应对方风格,不要模板化

# 5. 写消息并发送
write_clipboard("想好的那段话")
computer_batch([
  {action: left_click, coordinate: 输入框},
  {action: key, text: "ctrl+v"},
  {action: left_click, coordinate: 发送按钮}
])
screenshot()  # 确认已发出

# 6. 给用户简要复述:发给了谁,发了什么
```

---

## 结语

这份 skill 的核心其实很简单:**把微信当成一个需要看屏幕、带一点人情味的应用**。技术上是模拟点击,内容上是像本人一样说话。两件事都做好,回复就会贴切又不出岔子。

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.