返回技能列表

writing/send-message

发消息给任意 IM 的统一入口(macOS)。 iMessage 直发;微信/QQ/钉钉/企业微信/飞书/Slack/Discord 通过 剪贴板 + 激活应用 + 弹搜索框半自动。 例如说"发 iMessage 给小明:到家了"或"发飞书给晓华:会议改到三点"。

0 次下载 macOS / Windows

描述

一个技能覆盖 macOS 上主流 IM 的发送场景。LLM 根据用户意图填
`target_im` 参数选择执行路径。

## 参数 target_im 取值表(LLM 必读)

| target_im | 目标 IM | bundle | 行为 |
|---|---|---|---|
| imessage | iMessage | Messages | **直发**(用 to 指定收件人) |
| wechat   | 微信     | WeChat   | 剪贴板 + 激活 + Cmd+F |
| qq       | QQ       | QQ       | 剪贴板 + 激活 + Cmd+F |
| dingtalk | 钉钉     | DingTalk | 剪贴板 + 激活 + Cmd+F |
| wecom    | 企业微信 | WeCom    | 剪贴板 + 激活 + Cmd+F |
| feishu   | 飞书/Lark | Lark    | 剪贴板 + 激活 + Cmd+K |
| slack    | Slack    | Slack    | 剪贴板 + 激活 + Cmd+K |
| discord  | Discord  | Discord  | 剪贴板 + 激活 + Cmd+K |

## 两种路径

**target_im = imessage(全自动直发)**
- 通过 Messages.app 的 iMessage 服务直发,对方必须是 iMessage 用户。
- `to` 必填,按"精确 handle → buddy.name 子串模糊匹配"两步查找。
- 失败错误码:`NO_IMESSAGE_SERVICE` / `NO_BUDDY_MATCH: <handle>` /
  `AMBIGUOUS_BUDDY_MATCH: <handle> 匹配多人: <names>`。
  调用方拿到错误后据情况反问用户。

**target_im = 其它(半自动)**
- 把 body 写入剪贴板 → 激活目标 App → 模拟搜索快捷键弹出搜索框。
- **用户随后输对方名字 → 选中 → Cmd+V → Enter** 完成发送。
- `to` 在这条路径上不使用(搜索由用户在 IM 内手动完成)。
- 目标 App 未安装时返回 `APP_NOT_FOUND: <bundle>` 错误。

## body 写作要求
- body 必须是组织好的完整正文,不是口语指令。
  "告诉他我会迟到" → 改写为 "我会迟到,请见谅"。
- 群组消息默认更口语;工作 IM(飞书工作区、Slack)偏正式,除非
  上下文表明可以随意。
- 用户指明语言/风格(粤语 / 英文 / 表情)按要求生成;缺省与对方
  上下文语种一致。

## 路由建议(LLM 选 target_im 时参考)
- 用户明确说"发 iMessage / 发短信" → imessage
- 用户明确说"发微信 / 发飞书 / 发 Slack ..." → 对应 IM
- 用户没指定 IM、对方手机号是 iMessage 用户 → imessage
- 其它情况按上下文判断或反问用户"发到哪?"