wuxie888/jev-yaba-wechat

微信里的话不知道怎么接?macOS 悬浮聊天助手:识别消息意图与沟通风险,GPT 生成多种话术,Jev 评估候选,一键填入微信。话我帮你想,发送你来定。

Python

24

47 commits

updated Sep 22, 2026

See the code

README

jev-哑巴微信

微信里的话不知道怎么接?让 AI 帮你看懂,再帮你想好怎么回。

jev-哑巴微信是一款 macOS 微信聊天助手,悬浮在微信窗口旁:读取当前聊天,分析对方的意图和沟通风险,用 GPT 生成不同语气的回复。你挑一句,点「填入」,检查后在微信里发送。

话我帮你想,发送你来定。

jev-哑巴微信:戴着绿色聊天气泡胸针的无嘴小机器人

收到消息之后,它帮你做什么?

看聊天 → 判意图 → 提醒风险 → 给出回复 → 一键填入。

你留在微信里聊天,助手在旁边提供建议,不必反复把对话复制到另一个 AI 聊天窗口。

你遇到的情况助手提供的帮助
同事问「这个方案今天能给我吗?」结合近期对话判断是在问进度还是催进度,提示如何交代现状、回应时间安排
对方情绪有点冲,不知道怎么接展示沟通风险和行动建议,再给出不同措辞供你比较
想拒绝、想简短一点,又怕语气不合适切换「拒绝加班」「稳如老狗」「高情商话术」等风格重新生成
群聊聊得很快,突然不知道接什么结合识别到的发送者和最近几条消息,准备能接上话题的候选

这些是使用场景示例。意图和风险是模型的判断,回复中的事实、承诺和时间仍需你确认。

核心功能

  • 贴着微信用:原生悬浮窗随微信窗口移动,支持多显示器定位;可以收起、隐藏或暂停读屏;支持拖动边缘缩放,长内容可上下滚动。

  • 读取当前聊天:捕获微信窗口,用 macOS Vision 在本机识别聊天文字、左右消息和群聊发送者,无需导出聊天记录。

  • 结合上下文判断:生成回复使用最近最多 4 条上下文,意图判断使用最近最多 2 条上下文,区分派活、催进度、问进度、批评、要解释、闲聊、约会议、夸奖这 8 类意图。

  • 风险与行动建议:显示 0–9 档沟通风险,并给出对应的回应方向,帮助你先想清楚再开口。

  • 多种话术一起比较:内置 10 种风格,同时最多选 3 种;每种请求生成 2 条回复,一条稳妥、一条更有个性,最多展示 6 条候选。

  • 候选合适度排序:GPT 负责写回复,判断模型负责评估候选,面板按话术分组展示排序结果。

  • 复制或直接填入:选中回复可复制,也可通过 macOS 辅助功能写入微信输入框;已有文字时追加,写入后读回确认。发送由你操作。 微信版本未暴露输入控件时会明确提示并复制回复,可自行粘贴。

  • 更及时地响应新消息:画面未变时跳过重复 OCR;消息到达后提前并行判断和生成,停稳后展示候选,再补上排序结果;分析期间继续读屏。Chat Completions 支持逐条显示流式候选,Responses 保留完整响应校验。启动时在后台预热 OCR 和本地判断模型。

  • 识别范围可见:菜单栏可开关聊天文字检测框,帮助检查 OCR 读取位置;此功能使用现有文字识别结果,不额外下载视觉模型。

  • 直接检查连接:设置里填写 GPT / Jev API、分别测试连通性,也可检查本应用的微信输入框权限与控件读取结果。

一句话,也可以有不同的说法

内置话术:高情商话术、贴吧老哥 v1.0、拒绝加班、卑微乙方、稳如老狗、已读乱回、职场黑话、阴阳怪气、理科直男、鱼塘主。

每个话术下拉框就是一组候选。默认启用「高情商话术」和「贴吧老哥 v1.0」,第三组可自行选择;选「不用」即可关闭该组。更换话术后,会针对当前消息重新生成。

也可以写自己的风格。在配置文件里加入下面一行,重启生效:

export JEV_TONES="自然接话=像平时微信聊天,简短、自然,少用表情,不刻意暧昧|温柔一点=先回应对方感受,再自然接话,不说教,不乱承诺"

用 | 分隔多种风格,格式为「名字=说明」。同名设置会覆盖内置话术。

Jev 和 GPT 各负责什么?

Jev 帮你判断,GPT 帮你表达。

模块作用配置方式
判断层分析意图、评估风险、给候选排序配置 TypeSafe Jev;不填 Key 则使用本地 decider-2b
生成层按所选话术写回复配置 GPT API,支持 Responses 和 Chat Completions

Jev 输出判断和评分,不负责写聊天文本。未配置 GPT 时,仍可使用判断层,但不会生成候选回复。使用本地判断模型时,首次可能需要下载约 7 GB 模型文件;启动时会后台预热,准备完成前仍需等待。TypeSafe 调用失败时,程序会回退到本地判断模型。

开始使用

当前提供源码,适用于 macOS 13 及以上。本仓库暂未发布可直接下载的安装包。

1. 下载源码

git clone https://github.com/wuxie888/jev-yaba-wechat.git
cd jev-yaba-wechat

悬浮面板支持拖动边框调整宽高;内容超出窗口时,可用触控板或右侧滚动条查看。长回复按窗口宽度换行。当前微信若不开放辅助功能输入框,点击「填入」会复制回复并提示在微信中按 ⌘V,不会假报填入成功。

2. 配置模型

打开应用,点击面板右上角 设置,或菜单栏 哑巴 → 模型设置:

  1. 填写 GPT 的基础地址、模型名称、API Key,选择 Responses 或 Chat Completions,再点 测试 GPT。
  2. 填写 Jev 的基础地址、模型名称、API Key,点 测试 Jev。两个测试分别显示结果;已填写不代表已连通。
  3. 两项测试通过后选择 正常回复,点击 保存并重启。只排查读屏时选 聊天识别预览,不会自动调用模型。

连接测试使用固定测试句,不包含微信聊天,可能产生少量 API 费用。Key 以隐藏输入框显示,保存在本机仓库外;保存会保留其他个人配置。当前设置页配置的是 GPT + 云端 Jev;需要本地判断模型的用户仍可使用下面的手动配置方式。

也可以手动创建本机配置文件:

mkdir -p ~/.config/jev-yaba-wechat
touch ~/.config/jev-yaba-wechat/env
chmod 600 ~/.config/jev-yaba-wechat/env

用文本编辑器打开 ~/.config/jev-yaba-wechat/env,填入:

# GPT:负责写回复,填你账号可用的模型 ID
export OPENAI_API_KEY="你的GPT_API_Key"
export OPENAI_BASE_URL="https://api.openai.com/v1"
export OPENAI_MODEL="your-gpt-model-id"
export OPENAI_API_FORMAT="responses"

# Jev:负责判断;留空则使用本地模型
export TYPESAFE_API_KEY=""
export TYPESAFE_BASE_URL="https://api.typesafe.ai"
export TYPESAFE_MODEL="jev-latest"

使用兼容服务时,填写服务商提供的基础地址、Key 和模型名。Responses 会在基础地址后接 /responses,上述配置对应 /v1/responses;已填写完整 /responses 地址时不会重复追加。服务商只支持 Chat Completions 时,将 OPENAI_API_FORMAT 改为 openai。修改后重启应用。

3. 启动并授权

打开微信,进入要使用的聊天,再运行:

./start.command

首次启动会准备 Python 和运行依赖,需要联网。到「系统设置 → 隐私与安全性」开启:

权限用途
屏幕录制读取微信窗口,在本机识别聊天文字;授权后退出并重新启动助手
辅助功能将选中的回复填入微信输入框;只使用复制时可暂不开启

从源码启动时,授权对象可能是运行它的终端或 Python;使用 .app 时,为对应应用授权。

4. 在微信旁挑选回复

保持聊天窗口打开,助手读取到对方消息后自动分析。先看意图与建议,再挑选回复,点击「复制」或「填入」。确认收件人和文字后,在微信里发送。

菜单栏「哑巴」提供显示/收起、暂停读屏、立即重新分析和退出入口。

查看当前界面预览

jev-哑巴微信原生悬浮窗品牌预览

这是界面预览,图中未读取微信或调用模型。

聊天内容如何处理?

窗口图像在本机交给 OCR 识别。开启读屏后,检测到消息会自动触发分析和生成:使用 GPT 时,消息文字、近期上下文和话术说明会发往你配置的生成服务;使用 TypeSafe Jev 时,判断所需文字及候选也会发往对应服务。本地判断模式不需要将判断请求发往 TypeSafe。

助手通过窗口捕获和辅助功能工作,不注入微信进程、不 hook、不解密聊天数据库,也不自动发送消息。API Key 保存在你本机的配置文件中,不随源码发布。

当前状态与限制

当前为 0.3.1 开发预览版,已合并截至 2026-09-22 本次核对时 Mac 原版最新提交 4ae7a2f 的实际代码与历史,保留品牌、GPT Responses、模型设置和可缩放滚动窗口。本机已验证 GPT 与 Jev 真实接口连通;微信 4.1.7 的自动填入尚未通过,辅助功能授权正常但未读取到文本输入控件。可使用复制后手动粘贴。详见 本机测试记录。

  • OCR 受窗口布局和微信版本影响,可能误认说话人、引用内容或文章卡片;图片、语音和表情包的含义暂不支持可靠识别。
  • 风险分数和候选百分比是模型评估,不代表已验证的准确率或发送效果。
  • 生成速度取决于模型、服务商和网络;本地模型首次下载与加载会增加等待时间。

开发与反馈

构建本机应用:

./packaging/build_app.sh
# 生成:jev-哑巴微信.app

打包 ZIP:

./packaging/release.sh

应用采用启动器包,首次正式启动安装运行依赖。当前未做 Apple 公证。构建需要 Xcode Command Line Tools(用于编译原生启动器)。只查看界面可运行 uv run python src/hud.py --brand-preview,该模式不读取聊天或调用模型。

只排查微信读取时,可在本机配置文件加入 export JEV_READ_ONLY=1 后重启。面板会显示识别文字并标明“聊天识别预览”,不调用判断或生成模型。删除该行并重启后恢复正常流程。

遇到问题或有想要的话术,欢迎 提交 Issue。排查日志位于 ~/Library/Logs/jev-yaba-wechat.log。

许可与致谢

采用 MIT 许可,感谢 jev-chat-jarvis-mac 的开源贡献;版权与来源说明见 NOTICE。

gpt
jev
macos
ocr
python
wechat

wuxie888/jev-yaba-wechat

微信里的话不知道怎么接?macOS 悬浮聊天助手:识别消息意图与沟通风险,GPT 生成多种话术,Jev 评估候选,一键填入微信。话我帮你想,发送你来定。

Python

24

47 commits

updated Sep 22, 2026

See the code

README

jev-哑巴微信

微信里的话不知道怎么接?让 AI 帮你看懂,再帮你想好怎么回。

jev-哑巴微信是一款 macOS 微信聊天助手,悬浮在微信窗口旁:读取当前聊天,分析对方的意图和沟通风险,用 GPT 生成不同语气的回复。你挑一句,点「填入」,检查后在微信里发送。

话我帮你想,发送你来定。

jev-哑巴微信:戴着绿色聊天气泡胸针的无嘴小机器人

收到消息之后,它帮你做什么?

看聊天 → 判意图 → 提醒风险 → 给出回复 → 一键填入。

你留在微信里聊天,助手在旁边提供建议,不必反复把对话复制到另一个 AI 聊天窗口。

你遇到的情况助手提供的帮助
同事问「这个方案今天能给我吗?」结合近期对话判断是在问进度还是催进度,提示如何交代现状、回应时间安排
对方情绪有点冲,不知道怎么接展示沟通风险和行动建议,再给出不同措辞供你比较
想拒绝、想简短一点,又怕语气不合适切换「拒绝加班」「稳如老狗」「高情商话术」等风格重新生成
群聊聊得很快,突然不知道接什么结合识别到的发送者和最近几条消息,准备能接上话题的候选

这些是使用场景示例。意图和风险是模型的判断,回复中的事实、承诺和时间仍需你确认。

核心功能

  • 贴着微信用:原生悬浮窗随微信窗口移动,支持多显示器定位;可以收起、隐藏或暂停读屏;支持拖动边缘缩放,长内容可上下滚动。

  • 读取当前聊天:捕获微信窗口,用 macOS Vision 在本机识别聊天文字、左右消息和群聊发送者,无需导出聊天记录。

  • 结合上下文判断:生成回复使用最近最多 4 条上下文,意图判断使用最近最多 2 条上下文,区分派活、催进度、问进度、批评、要解释、闲聊、约会议、夸奖这 8 类意图。

  • 风险与行动建议:显示 0–9 档沟通风险,并给出对应的回应方向,帮助你先想清楚再开口。

  • 多种话术一起比较:内置 10 种风格,同时最多选 3 种;每种请求生成 2 条回复,一条稳妥、一条更有个性,最多展示 6 条候选。

  • 候选合适度排序:GPT 负责写回复,判断模型负责评估候选,面板按话术分组展示排序结果。

  • 复制或直接填入:选中回复可复制,也可通过 macOS 辅助功能写入微信输入框;已有文字时追加,写入后读回确认。发送由你操作。 微信版本未暴露输入控件时会明确提示并复制回复,可自行粘贴。

  • 更及时地响应新消息:画面未变时跳过重复 OCR;消息到达后提前并行判断和生成,停稳后展示候选,再补上排序结果;分析期间继续读屏。Chat Completions 支持逐条显示流式候选,Responses 保留完整响应校验。启动时在后台预热 OCR 和本地判断模型。

  • 识别范围可见:菜单栏可开关聊天文字检测框,帮助检查 OCR 读取位置;此功能使用现有文字识别结果,不额外下载视觉模型。

  • 直接检查连接:设置里填写 GPT / Jev API、分别测试连通性,也可检查本应用的微信输入框权限与控件读取结果。

一句话,也可以有不同的说法

内置话术:高情商话术、贴吧老哥 v1.0、拒绝加班、卑微乙方、稳如老狗、已读乱回、职场黑话、阴阳怪气、理科直男、鱼塘主。

每个话术下拉框就是一组候选。默认启用「高情商话术」和「贴吧老哥 v1.0」,第三组可自行选择;选「不用」即可关闭该组。更换话术后,会针对当前消息重新生成。

也可以写自己的风格。在配置文件里加入下面一行,重启生效:

export JEV_TONES="自然接话=像平时微信聊天,简短、自然,少用表情,不刻意暧昧|温柔一点=先回应对方感受,再自然接话,不说教,不乱承诺"

用 | 分隔多种风格,格式为「名字=说明」。同名设置会覆盖内置话术。

Jev 和 GPT 各负责什么?

Jev 帮你判断,GPT 帮你表达。

模块作用配置方式
判断层分析意图、评估风险、给候选排序配置 TypeSafe Jev;不填 Key 则使用本地 decider-2b
生成层按所选话术写回复配置 GPT API,支持 Responses 和 Chat Completions

Jev 输出判断和评分,不负责写聊天文本。未配置 GPT 时,仍可使用判断层,但不会生成候选回复。使用本地判断模型时,首次可能需要下载约 7 GB 模型文件;启动时会后台预热,准备完成前仍需等待。TypeSafe 调用失败时,程序会回退到本地判断模型。

开始使用

当前提供源码,适用于 macOS 13 及以上。本仓库暂未发布可直接下载的安装包。

1. 下载源码

git clone https://github.com/wuxie888/jev-yaba-wechat.git
cd jev-yaba-wechat

悬浮面板支持拖动边框调整宽高;内容超出窗口时,可用触控板或右侧滚动条查看。长回复按窗口宽度换行。当前微信若不开放辅助功能输入框,点击「填入」会复制回复并提示在微信中按 ⌘V,不会假报填入成功。

2. 配置模型

打开应用,点击面板右上角 设置,或菜单栏 哑巴 → 模型设置:

  1. 填写 GPT 的基础地址、模型名称、API Key,选择 Responses 或 Chat Completions,再点 测试 GPT。
  2. 填写 Jev 的基础地址、模型名称、API Key,点 测试 Jev。两个测试分别显示结果;已填写不代表已连通。
  3. 两项测试通过后选择 正常回复,点击 保存并重启。只排查读屏时选 聊天识别预览,不会自动调用模型。

连接测试使用固定测试句,不包含微信聊天,可能产生少量 API 费用。Key 以隐藏输入框显示,保存在本机仓库外;保存会保留其他个人配置。当前设置页配置的是 GPT + 云端 Jev;需要本地判断模型的用户仍可使用下面的手动配置方式。

也可以手动创建本机配置文件:

mkdir -p ~/.config/jev-yaba-wechat
touch ~/.config/jev-yaba-wechat/env
chmod 600 ~/.config/jev-yaba-wechat/env

用文本编辑器打开 ~/.config/jev-yaba-wechat/env,填入:

# GPT:负责写回复,填你账号可用的模型 ID
export OPENAI_API_KEY="你的GPT_API_Key"
export OPENAI_BASE_URL="https://api.openai.com/v1"
export OPENAI_MODEL="your-gpt-model-id"
export OPENAI_API_FORMAT="responses"

# Jev:负责判断;留空则使用本地模型
export TYPESAFE_API_KEY=""
export TYPESAFE_BASE_URL="https://api.typesafe.ai"
export TYPESAFE_MODEL="jev-latest"

使用兼容服务时,填写服务商提供的基础地址、Key 和模型名。Responses 会在基础地址后接 /responses,上述配置对应 /v1/responses;已填写完整 /responses 地址时不会重复追加。服务商只支持 Chat Completions 时,将 OPENAI_API_FORMAT 改为 openai。修改后重启应用。

3. 启动并授权

打开微信,进入要使用的聊天,再运行:

./start.command

首次启动会准备 Python 和运行依赖,需要联网。到「系统设置 → 隐私与安全性」开启:

权限用途
屏幕录制读取微信窗口,在本机识别聊天文字;授权后退出并重新启动助手
辅助功能将选中的回复填入微信输入框;只使用复制时可暂不开启

从源码启动时,授权对象可能是运行它的终端或 Python;使用 .app 时,为对应应用授权。

4. 在微信旁挑选回复

保持聊天窗口打开,助手读取到对方消息后自动分析。先看意图与建议,再挑选回复,点击「复制」或「填入」。确认收件人和文字后,在微信里发送。

菜单栏「哑巴」提供显示/收起、暂停读屏、立即重新分析和退出入口。

查看当前界面预览

jev-哑巴微信原生悬浮窗品牌预览

这是界面预览,图中未读取微信或调用模型。

聊天内容如何处理?

窗口图像在本机交给 OCR 识别。开启读屏后,检测到消息会自动触发分析和生成:使用 GPT 时,消息文字、近期上下文和话术说明会发往你配置的生成服务;使用 TypeSafe Jev 时,判断所需文字及候选也会发往对应服务。本地判断模式不需要将判断请求发往 TypeSafe。

助手通过窗口捕获和辅助功能工作,不注入微信进程、不 hook、不解密聊天数据库,也不自动发送消息。API Key 保存在你本机的配置文件中,不随源码发布。

当前状态与限制

当前为 0.3.1 开发预览版,已合并截至 2026-09-22 本次核对时 Mac 原版最新提交 4ae7a2f 的实际代码与历史,保留品牌、GPT Responses、模型设置和可缩放滚动窗口。本机已验证 GPT 与 Jev 真实接口连通;微信 4.1.7 的自动填入尚未通过,辅助功能授权正常但未读取到文本输入控件。可使用复制后手动粘贴。详见 本机测试记录。

  • OCR 受窗口布局和微信版本影响,可能误认说话人、引用内容或文章卡片;图片、语音和表情包的含义暂不支持可靠识别。
  • 风险分数和候选百分比是模型评估,不代表已验证的准确率或发送效果。
  • 生成速度取决于模型、服务商和网络;本地模型首次下载与加载会增加等待时间。

开发与反馈

构建本机应用:

./packaging/build_app.sh
# 生成:jev-哑巴微信.app

打包 ZIP:

./packaging/release.sh

应用采用启动器包,首次正式启动安装运行依赖。当前未做 Apple 公证。构建需要 Xcode Command Line Tools(用于编译原生启动器)。只查看界面可运行 uv run python src/hud.py --brand-preview,该模式不读取聊天或调用模型。

只排查微信读取时,可在本机配置文件加入 export JEV_READ_ONLY=1 后重启。面板会显示识别文字并标明“聊天识别预览”,不调用判断或生成模型。删除该行并重启后恢复正常流程。

遇到问题或有想要的话术,欢迎 提交 Issue。排查日志位于 ~/Library/Logs/jev-yaba-wechat.log。

许可与致谢

采用 MIT 许可,感谢 jev-chat-jarvis-mac 的开源贡献;版权与来源说明见 NOTICE。

gpt
jev
macos
ocr
python
wechat