An LLM co-pilot for Android chats that reads screens, not databases
It sits on top of your chat apps, reads the screen, and suggests what to say next without ever touching the host app's code.
An open-source Android assistant uses accessibility services and a structured judgment model to suggest replies inside WeChat, QQ, and X without ever touching an official API.

What it does
Jev Chat Assistant is an Android app that uses the system accessibility service to read messages straight off your screen, runs them through an LLM pipeline for intent analysis and reply generation, then floats a translucent panel with three ranked candidate responses. You tap one to fill the input box; sending remains entirely manual. It supports WeChat, QQ, X (Twitter DMs), and Feishu via small per-app adapters, and keeps all keys and knowledge base data in local app storage.
The interesting bit
The project treats the accessibility tree as a generic message bus. Because WeChat obfuscates its node IDs for non-system services, the app disguises itself as SelectToSpeakService to read bubble text; when apps like Feishu draw text outside the tree entirely, it falls back to on-device ML Kit OCR on the bubble rectangles. Adding a new messenger means implementing one ChatAppAdapter to map the UI tree to a message list—everything downstream stays the same.
Key highlights
- Reads chat UI via accessibility nodes; falls back to on-device ML Kit OCR when apps draw their own text (Feishu)
- One core engine with pluggable
ChatAppAdapters for each messenger; WeChat, QQ, X, and Feishu already implemented - Structured analysis (“Jev”) evaluates intent, danger level (1–9), and recommended action in about a second before drafting replies
- Local knowledge base and contact profiles can be injected into prompts for context-aware suggestions
- Never auto-sends; only fills the input box via
ACTION_SET_TEXTor clipboard paste
Caveats
- Chinese ROMs (Xiaomi/HyperOS) aggressively kill the background accessibility service even with battery exemptions, so the overlay may vanish until you interact again
- Feishu/Lark support currently depends entirely on OCR because text isn’t exposed to the accessibility tree; sender detection relies on read-status heuristics that can get “me” vs “other” backwards
- WeChat’s node obfuscation is bypassed by disguising the service class name, which could break on the next WeChat update
Verdict
Worth a look if you want an LLM wingman for Android messaging without rooting or patching apps. Skip it if you need desktop support, rely heavily on Feishu, or run a ROM that murders background accessibility services.
Frequently asked
- What is jev-chat/jev-chat-jarvis?
- It sits on top of your chat apps, reads the screen, and suggests what to say next without ever touching the host app's code.
- Is jev-chat-jarvis open source?
- Yes — jev-chat/jev-chat-jarvis is open source, released under the MIT license.
- What language is jev-chat-jarvis written in?
- jev-chat/jev-chat-jarvis is primarily written in Kotlin.
- How popular is jev-chat-jarvis?
- jev-chat/jev-chat-jarvis has 1.2k stars on GitHub.
- Where can I find jev-chat-jarvis?
- jev-chat/jev-chat-jarvis is on GitHub at https://github.com/jev-chat/jev-chat-jarvis.