jev-chat-jarvis README

The project's README from github.com/jev-chat/jev-chat-jarvis. As one markdown file: README.md.

Jev 聊天助手

Jev 聊天助手

装在手机上的「对话副驾」:你在任何聊天 App 里聊天,它在旁边读懂对方、告诉你该怎么回,一键填进输入框,发不发由你。

Stars Forks Version Android License

官网 · 下载 APK · 历史版本 · 更新日志 · macOS 版 · Windows 版

❤️赞助商

想出现在这里?

点击折叠
博查 感谢 博查 赞助了本项目!博查是一个给 AI 用的搜索引擎,让你的 AI 应用连接世界知识,获得干净、准确、高质量的搜索结果。提供 Web Search API、Bocha Jev API 等多种联网搜索和模型服务。open.bocha.cn
小优店铺 感谢 小优店铺 赞助了本项目!小优店铺是一家数字商品与账号服务店铺,为本项目的用户提供选购渠道。点此前往。
速创猫 Vytal 感谢 速创猫 Vytal 赞助了本项目!速创猫 Vytal 是专业的 AI 视频工作流平台,提供可批量复用的视频工作流,降低内容制作门槛,服务内容创作者、培训机构及中小团队。点此前往。

截图

悬浮窗:聊天上方的 Jev 分析面板
悬浮窗:危险等级、对方真实意图、排好序的 3 条候选回复
设置页
设置页:判断 / 回复 / 视觉三路接口分别可配

为什么用它

平台支持

平台 状态 采集方式 备注
微信 Android ⏸ 已停止支持 — 微信 8.0.52+ 对普通无障碍服务隐藏了消息文字,且近期对部分账号/设备的聊天界面开启防截屏(FLAG_SECURE),两条读取路径都不通,没有干净的读取方式;1.4 起不再读取微信
QQ Android ✅ 全链路 无障碍读节点 9.3.50 实测(群聊);1v1 按同结构推断
X / Twitter 私信 ✅ 全链路 解析 Compose 节点的 content-desc 12.25 实测,中文界面;英文界面未验
飞书 / Lark ✅ OCR 兜底(真机验证) 无障碍读气泡矩形 + ML Kit 离线 OCR 识别正文 正文自绘不在无障碍树里,1.3 起对每个气泡矩形做 OCR;我/对方按已读状态判
任意其它 App ✅ 手动 悬浮窗菜单「截屏识别一次」整屏 OCR 不自动、不分我/对方(全部当作对方所说并在面板标注)
桌面端 / 网页 ⏳ 规划 截图 + OCR / 视觉 同一内核,换采集方式

本项目只读你自己设备上、你自己有权查看的聊天,不针对任何单一平台。

快速开始

1. 装包。 仓库里有签好名的 release 包:apk/jev-assistant-v1.4-release.apk(Android 11+)。各版本安装包也在 Releases。

adb install -r apk/jev-assistant-v1.4-release.apk

2. 填密钥。 打开 App → 设置 →「接口」分三张卡:判断接口 / 回复接口 / 视觉接口。最简单只填「判断接口」一栏的 OpenRouter API Key,其余两栏留空会自动继承这把密钥就能用。想换回复模型(默认 deepseek/deepseek-chat-v3.1,国内 Gemini / OpenAI 会被区域限制)就在「回复接口」选预设(OpenRouter / DeepSeek 官方 / 通义兼容)或自填地址,每张卡都有独立的一键连通测试。

3. 开权限。 按主页向导开三项:

装过 debug 包的要先卸载再装 release(签名不同),卸载会清掉密钥和设置。小米 / HyperOS 重装后悬浮窗权限会被重置,装完按向导再开一次。

功能

判断与候选回复

知识库与联系人

在设置 → 分析 →「知识库与联系人」。

接口与模型

采集与 OCR

常见问题

它会替我发消息吗?

不会。程序只把选中的回复填进输入框,发送键永远由你自己点。转账、红包、收款一律不碰。

需要 root 或 Xposed 吗?会不会封号?

不需要 root,也不用装任何模块。它不修改聊天软件的安装包、不注入进程、不调用对方 App 的接口或账号体系,只读系统无障碍服务暴露出来的界面内容,和读屏软件的工作方式一样。

我的聊天记录会被上传吗?

聊天内容只在你触发分析的那一刻,发给你自己在设置里配置的模型接口。项目没有任何自建服务器,不收集、不落盘、不进日志。历史记录默认关闭,开启后也只存在手机的 App 私有目录里。

悬浮球不见了,或者读不到消息怎么办?

多半是国产 ROM 把后台进程冻结了。先确认无障碍、悬浮窗、自启动、省电无限制四项都开着,小米 / HyperOS 尤其要开后两项。重装后悬浮窗权限会被重置,按主页向导再开一次。在聊天界面里随便点一下通常能自愈。

飞书里读不到正文?其它 App 能用吗?

飞书的消息正文是自绘控件,无障碍树里没有文字,1.3 起改为对每个气泡矩形做离线 OCR。没有专门适配的 App,可以在悬浮窗菜单里点「截屏识别一次」,整屏 OCR 后同样能分析,只是不区分我方和对方。

要花钱吗?

软件本身免费开源。模型调用走你自己的 API Key,按用量在对应服务商那边结算,项目不经手任何费用。

升级之后没反应?

把系统设置里的无障碍开关关掉再打开一次。1.3 起新增了截屏能力,服务需要重新绑定才会生效。

它怎么工作

QQ / X / 飞书 ──(无障碍读节点)──▶ 采集最近消息
                                  │
              ┌───────────────────┴───────────────────┐
              ▼                                        ▼
   Jev 判断(一次 7 道题)                    生成模型起草 3 条候选
   意图 / 危险 / 需求 / 动作 / 该不该回          │
              └───────────────────┬───────────────────┘
                                  ▼
                        Jev 给 3 条候选排序
                                  ▼
                半透明悬浮窗展示 → 复制 / 填入(不发送)
适配一个新的聊天 App
  1. 在 capture/ChatAppAdapter.kt 实现 ChatAppAdapter:pkg 是包名,extract(root, res) 从无障碍树取出标题和消息列表(Msg(side, text),side 为 me / other),不在聊天窗时返回 null。
  2. 在 capture/ChatCaptureService.kt 的 adapters 加一行。
  3. 判断、候选、悬浮窗、填入都不用动。

先用 adb shell uiautomator dump 看目标 App 暴露了什么,已有四个适配器覆盖了四种情况:

App 树的情况 适配器怎么做
QQ 节点开放,有 id 正文 id/mjn、标题 id/371,按气泡贴哪侧头像判谁说的
微信 已隐藏消息文字,部分设备还开启了防截屏 已停用:1.4 起不再接入采集分发,适配器代码保留在仓库中,以便日后微信策略变化时恢复
X Compose,无 id,text 为空 解析 content-desc 发件人:正文。时间。Read,发件人是「你」即我方
飞书 正文自绘,树里没有文字 树上拿 bubble_content_container 矩形与已读状态,OCR 每个矩形的正文

适配器返回 null 表示不在聊天窗,返回空消息列表表示在聊天窗但树里没正文——只有后者会触发 OCR 兜底。

QQ、X 全程只有一个 Activity,判「是不是聊天窗」要看树里有没有该有的节点(如输入框),不能看 Activity 名。

构建与目录结构

JDK 17 + Android SDK(platform 35 / build-tools 35)。

./gradlew assembleDebug      # app/build/outputs/apk/debug/app-debug.apk
./gradlew assembleRelease    # 需要仓库外的签名 properties,路径由 JEV_KEYSTORE_PROPS 指定
  • app/ — Android 应用(Kotlin,传统 View)
    • capture/ 无障碍采集:ChatAppAdapter.kt 各 App 适配器、ChatCaptureService.kt 分发服务、前台保活、ocr/ 截屏与离线识别
    • jev/ Jev 客户端与题目集 · overlay/ 悬浮窗 · core/ 配置与数据模型(含 core/kb/ 知识库存储与上下文构建)
    • KnowledgeActivity 知识库管理页(笔记 / 联系人)
  • tools/jev/ — Jev 题目集与校准脚手架(Python)
  • docs/ — 设计与验收文档
  • apk/ — 签好名的 release 包

已知限制

交流群 / 需求收集

如需联系,请公众号私信。 合作、赞助、反馈、进群失败、二维码过期,都走公众号私信,其它渠道不一定看得到。

公众号二维码

想听真实需求:你在哪个聊天 App 上最想要这个副驾?希望它判断什么、怎么提示、什么绝对不能碰?扫码进群直接说。1 至 7 群已满,不要再扫;8、9 群任选一个,请勿重复加入。

8 群
8 群
9 群
9 群

以下七群已满,请勿再扫:

1 群(已满)
1 群
2 群(已满)
2 群
3 群(已满)
3 群
4 群(已满)
4 群
5 群(已满)
5 群
6 群(已满)
6 群
7 群(已满)
7 群

群二维码 7 天有效(本批到 2026-09-29),过期了公众号私信要新码。

姊妹项目

同在 jev-chat 组织下:

隐私政策见 PRIVACY.md(说明读取了什么、发给谁、存在哪里、怎么删除)。

版权与许可

Copyright © 2026 Finderchangchang 与 jev-chat 贡献者。代码以 MIT 协议开源,另见 NOTICE。

免责声明:本项目只处理你自己设备上、你自己有权查看的聊天。请遵守微信、QQ、X、飞书等各软件的许可协议与当地法律法规,作者不对使用后果负责。

☕ 请我喝杯咖啡

如果你觉得我写的这玩意儿对你有点帮助,欢迎请我喝杯咖啡。咖啡因一到位,脑子就开始冒泡,源源不断地驱动我往前跑;哪天我更新得特别勤,说明这杯续上了 😄

微信赞赏码(姓名已隐去)

随手支持,不用有压力;不支持也没关系,点个 Star 或提条建议同样能让我开心很久。

jev-chat-jarvis (jev-chat/jev-chat-jarvis)

Searching Database…

Что это такое?Jev — приложение для Android, которое следит за экраном чата в приложениях вроде QQ, X или Feishu, оценивает истинные намерения собеседника и уровень риска и готовит три варианта ответа, которые можно тапом вставить в поле ввода, — отправить всё равно решаете вы сами.
Это отдельное приложение или нечто, встраивающееся в мои чат-приложения?Это отдельное Android-приложение на Kotlin, которое использует Accessibility Service Android для чтения текста чата с экрана — оно никогда не встраивается, не патчит и не трогает данные, интерфейсы или аккаунты самого чат-приложения.
Как его запустить?Установите подписанный релизный APK (apk/jev-assistant-v1.4-release.apk, Android 11+) из репозитория или GitHub Releases, откройте настройки и вставьте API-ключ в карточку интерфейса суждения, затем выдайте разрешения для accessibility, плавающих окон и автозапуска/отключения оптимизации батареи.
Нужен ли API-ключ для использования?Да — нужен ключ от OpenRouter, официального DeepSeek или эндпоинта, совместимого с Tongyi, для модели суждения (интерфейсы ответов/зрения могут использовать тот же ключ), либо можно воспользоваться встроенным временно бесплатным пресетом 'Bocha Jev'.
Работает ли он с WeChat?Нет — WeChat 8.0.52+ скрывает текст сообщений от сервисов accessibility, а некоторые устройства теперь блокируют скриншоты экранов чата, так что ни один путь чтения не работает; начиная с v1.4 приложение вообще больше не пытается читать WeChat.
С какими чат-приложениями реально работает, и это Android-версия?Этот репозиторий — Android-приложение: QQ и X/Twitter полностью работают через чтение accessibility, Feishu переключается на локальный OCR, а любое другое приложение можно один раз захватить вручную через меню распознавания скриншота. Сестринские репозитории той же организации покрывают macOS и Windows.
Как Jev решает, что мне показать?Сначала модель суждения оценивает истинные намерения собеседника, уровень опасности от 1 до 9 и стоит ли отвечать немедленно; отдельная генеративная модель готовит три варианта ответа в разговорном стиле, которые модель суждения затем ранжирует.
Он помнит, с кем я разговариваю?Да — локальная база знаний позволяет сохранять заметки и профили контактов (имя, псевдонимы, отношения, примечания); подходящие заметки и история автоматически прикладываются к анализу, чтобы ответы оставались согласованными с тем, что вы ему рассказали.
Почему он не отправляет ответ автоматически?По замыслу он лишь вставляет выбранный ответ в поле ввода или буфер обмена — он никогда не нажимает отправку и не трогает переводы, красные конверты или платежи, так что отправку всегда делаете вы сами.
Как добавить поддержку нового чат-приложения?Реализуйте небольшой ChatAppAdapter в capture/ChatAppAdapter.kt, который превращает accessibility-дерево текущего окна в заголовок и список сообщений, зарегистрируйте его в ChatCaptureService.kt — и суждение, ранжирование, оверлей и вставка текста заработают автоматически.
Creator
jev-chat
Size
70.5 MB
Stars
7.9K
Age
27d
Commits · 90 Days