📈 GH Trending Explorer 🎲 Surprise me

← all repos

jev-chat / jev-chat-windows

git clone https://github.com/jev-chat/jev-chat-windows.git v0.1.12 · 24d ago

JevChat-Windows:聊天窗口旁挂的回复辅助。窗口截图 + 本地离线 OCR 读对方消息 → Jev 判断意图 → 3 条候选一键填入,发送永远手动

+1
stars, 24h · #9,295
+~7
stars, 7 days · #9,943
+830
stars, 30 days · #649
833
★ total · +1% this week
183
forks · 32 open issues

Star history (as recorded here)

2026-10-20 · 829 ★ 2026-10-22 · 833 ★
LanguagePython
License—
Created2026-09-21 (1mo ago)
Last push24d ago
Watchers1
OwnerOrganization

GitHub topics

Links

README excerpt
# JevChat-Windows
本仓库只维护当前这一套识别。有能力的人可以 Fork 后自行适配别的聊天窗口,作者不提供这项适配,也不对 Fork 出去的改动负责。
## 公众号
反馈和合作走公众号「恸码奇点」。扫左边的码,或者搜一搜这个名字。
聊天窗口旁挂的回复辅助:本地 OCR 读屏上的对话 → Jev 判断意图/情绪 → 给出 3 条候选回复 →
一键填入输入框。**发送永远手动,程序不替你按发送。**
判断内核来自安卓版 Finderchangchang/jev-chat-JARVIS,
这里把采集换成了 Windows 端的窗口截图 + 离线 OCR。
## 下载即用(推荐)
**普通使用直接下载,不用装 Python、不用碰源码。** 后面的「源码运行」是给开发者的。
👉 **下载最新版**
1. 在 Releases 页下载 `jev-chat-windows-vX.Y.Z.zip`(约 146 MB)
2. 解压到一个固定目录(整个文件夹一起,exe 要用旁边那堆文件)
3. 双击 `jev-chat-windows.exe`
要求:Windows 10 1903+ / 11,聊天窗口开着,两个 API key(判断一个、起草一个,见下)。
首次启动会弹设置页填这两个 key。key 写进 Windows 用户环境变量(注册表 `HKCU\Environment`)——
全程只有 `JEV_API_KEY` 和 `LLM_API_KEY` 这两个,不落任何文件;其余设置写在 exe 旁边的
`config.json`,整个文件夹拷走设置也跟着走。
> exe 没签名,SmartScreen 会拦一下:「更多信息」→「仍要运行」。介意就往下看「自己打包」,自己打的更踏实。
## 使用说明
**界面语言**
设置页顶部可选择「简体中文 / 한국어」,选择后立即生效并自动保存,无需重启。
切换语言会同步刷新主界面和调试窗口,保留正在填写的设置、聊天记录和回复候选。
如果设置了 `JEVCHAT_LANG` 环境变量,下次启动仍以该变量指定的语言为准。
**第一次启动**
设置页的「模型」卡片分两节,各填一把 key:
1. **判断 · Jev** —— 判断意图、紧张度,并给三条候选排序。来源选 **OpenRouter**(默认,key 在
 openrouter.ai 申请)或 **TypeSafe 直连**(key 在
 console.typesafe.ai 申请)。填的是哪家的 key 看你上面选了哪家。
2. **起草 · 语言模型** —— 写那三条候选。默认 **DeepSeek 官网**直连,key 在
 platform.deepseek.com 申请(很便宜,起草一次几厘钱)。
 换别家见下面的表,OpenAI / Anthropic / Gemini 三种接口都支持。
3. 选「你们的关系」(恋人 / 朋友 / 同事 / 家人 / 自定义),保存。可以用了。
两把 key 各管一节,互不相干;同一节里换来源要重填一次 key(只存这一把)。
**为什么起草默认 DeepSeek 官网直连**
起草是两次网络调用里重的那次。OpenRouter 在国外,从国内过去要等好几秒、还时不时抽风;
DeepSeek 官方 API(`api.deepseek.com`)国内直连,起草基本就是一次 HTTP 请求的时间,体感差好几倍。
所以起草默认就是它,不用改。
判断那一步比起草轻得多,慢一点无所谓,默认走 OpenRouter 即可;嫌慢就把它也换成 TypeSafe 直连。
两把 key 都只进注册表,不落文件。
**日常怎么用**
- 聊天窗口开着、别最小化(用别的窗口盖住没事),把要聊的会话点开
- 对方来一条消息 → 悬浮窗几秒后给判断摘要 + 三条候选(带 Jev 给的胜出概率)
- 点「填入」→ 文字进输入框 → **你自己看一眼、改一改、按发送**。程序永远不碰发送
- 你切到哪个会话,悬浮窗就跟到哪个;群聊会带上发言人名,想指定回复给谁去设置里开「群聊指定回复对象」
- 暂时不想让它读聊天:标题栏开关拨到「已暂停」
**花多少钱**
只有对方来新消息才调一次模型:一次起草(DeepSeek Flash)+ 一次 Jev 判断,十分钟没人说话就是十分钟零调用。
思考模式默认关,别开——起草三句话用不上,慢好几倍还贵。
## 支持的聊天软件
| 软件 | OCR | 自己的气泡 | 窗口 |
|---|---|---|---|
| 微信 | RapidOCR(中英文模型) | 绿色 | 标题为「微信」的主窗口 |
| KakaoTalk(韩国) | Windows.Media.Ocr(系统语言包,离线) | `#FEE500` | 一个对话一个窗口,主列表窗除外 |
RapidOCR 自带的只有中英文模型,韩文整段都是乱码:同一个 KakaoTalk 窗口实测 8 条气泡 0 条认对,
一帧 2.0s,而且全被判成对方发的(气泡颜色规则只认微信绿)。韩文界面改走 Windows 自带 OCR 之后
9 条全认对、自己/对方分得清,一帧 0.20s。做法和实测见 docs/KOREAN.md;
新增一个软件只要在 `app/chatapps.py` 里加一行。
## 截图
 回复建议:「当前会话」跟随当前窗口、群聊多一行「回复对象」,3 条候选带 Jev 概率百分比,推荐那条置顶 
 设置:关系背景、说话风格、参考上下文条数、群聊指定回复对象(往下还有「模型」卡片) 
 采集暂停:不再读取聊天,已有候选照样能填入、能复制 
## 功能
- **跟着当前会话走**:会话名从面板头部 OCR 出来,记录、上下文、候选都按会话分开存;也可以自己
 在下拉框里选另一个会话,翻它的记录和上次的建议(那会儿只能看不能填)。
- **群聊**:每条消息前面的发言人名会一起喂给模型,所以它知道哪句是谁说的;打开「群聊指定回复对象」
 还能选回复给谁,三条候选都按 TA 写,填入时可带「@名字 」前缀(纯文本)。
- **3 条候选**:每条带 Jev 给的胜出概率百分比,按概率排序,推荐那条置顶并标「推荐回复」;
 每条都有「填入」和复制按钮。
- **判断摘要**:建议动作、可能意图、对方可能需要、紧张度 0–9。
- **采集开关**:标题栏一拨就停,WGC 会话一起停掉(Win10 的黄框跟着消失),已有候选不受影响。
- **实时聊天记录**:底部展开,看 OCR 到底读出了什么,认错了一眼就能发现。
- **调试视图**(可选):另开一个窗口,实时画出截到的画面和每个识别框——绿 = 我、蓝 = 对方、
 灰 = 过滤掉的灰字、橙 = 当成发言人名、红 = 当成图片丢掉、黄 = 小字丢掉,外加消息区和头部的框、
 OCR 耗时、这一帧读出来的每一行。识别不对时一眼看出是哪一步的锅。只在内存里画,不存图。
- **两个模型都能换**:判断走 OpenRouter 或 TypeSafe 直连;起草有 12 家预设(默认 DeepSeek 官网),
 Open