jev-chat/jev-chat-windows

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

JevChat‑Windows – AI‑assisted reply helper for desktop chat apps

What it is

  • A Windows‑only desktop program that watches a chat window (WeChat, KakaoTalk, etc.), runs offline OCR on the screen, sends the extracted messages to a language model, and returns three suggested replies.
  • The suggestions are ranked by a small decision‑making model (Jev) that also gives a short intent/urgency summary.
  • The user manually presses Send; the tool only pastes the chosen text into the input field.

Key features

Feature What it does
Window capture + OCR Uses Windows Graphics Capture (WGC) to grab the chat window, then RapidOCR (Chinese/English) or the built‑in Windows.Media.Ocr (Korean) to read the text entirely locally.
Jev intent analysis Calls a lightweight decision model (via OpenRouter or TypeSafe) that answers seven predefined questions (intent, need, suggested action, tension level, etc.) and returns a probability for each reply.
Three AI‑generated replies Sends the Jev summary plus recent conversation context to a generative LLM (default DeepSeek‑Flash, but OpenAI, Anthropic, Gemini, Moonshot, etc. are supported) which drafts three candidate replies.
Ranking Jev re‑evaluates the three drafts and assigns a win‑probability; the highest‑scoring reply is highlighted as “recommended”.
Floating UI A small always‑on‑top overlay shows the intent summary, the three candidates, and a button to paste the chosen text.
Per‑conversation memory Each chat session is identified by the OCR‑extracted conversation title; history, context, and generated replies are kept separate per session.
Group‑chat support Detects speaker names, can target a specific participant, and optionally prefixes the reply with @name.
Debug view (optional) Opens a second window that visualises the captured frame and all OCR bounding‑boxes, helping users see why a line was mis‑detected.
No automatic sending / no data storage The program never clicks the send button, never writes screenshots or keys to disk, and only transmits the minimal text needed for inference.
Portable executable A pre‑built jev-chat-windows.exe (≈146 MB) runs without installing Python; developers can rebuild it with PyInstaller.

How it works (simplified flow)

  1. Capture – WGC continuously grabs the target chat window.
  2. Locate message area – Pixel‑based anchors find the region that contains chat bubbles.
  3. OCR – RapidOCR (or Windows OCR for Korean) reads the text, separates bubbles by colour, filters out timestamps, images, etc.
  4. Detect new incoming message – When a new message from the other party appears, the pipeline triggers.
  5. Jev analysis – Sends the recent messages + relationship setting to the Jev decision API; receives intent summary and a win‑probability ranking.
  6. Draft replies – The Jev summary is fed to the generative LLM, which produces three candidate replies.
  7. Rank – Jev is called again to rank the three drafts; the UI shows the probabilities.
  8. User action – The user clicks Fill; the text is copied to the clipboard and pasted into the chat input box. The user decides when (or whether) to send.

Setup & usage

  • Download the latest zip from the Releases page, extract the whole folder, and double‑click jev-chat-windows.exe.
  • On first run a settings window appears; you must provide two API keys:
    • JEV_API_KEY – for the Jev decision model (OpenRouter or TypeSafe).
    • LLM_API_KEY – for the generative model (default DeepSeek, others selectable).
  • Keys are stored only in the user’s environment variables (HKCU\Environment); no file contains them.
  • Choose the relationship context (e.g., “friend”, “colleague”) and optional speaking style.
  • Keep the chat window open (do not minimise it). When a new message arrives a floating panel shows the analysis and three reply options.
  • Click Fill to paste the chosen reply; edit if needed and press Send yourself.

Supported chat apps (out‑of‑the‑box)

  • WeChat – Chinese/English OCR, green‑bubble detection.
  • KakaoTalk – Korean OCR via Windows.Media.Ocr, yellow‑bubble detection.
  • Adding more apps only requires a one‑line entry in app/chatapps.py.

Privacy & security

  • All screenshot processing stays in memory; no image is written to disk or uploaded.
  • Only the text of the most recent N messages (configurable, default 10), the relationship setting, a short sample of your own recent messages, and optional style prompt are sent to the chosen LLM endpoint.
  • No telemetry besides an optional single request to GitHub Releases to check for updates.
  • The program never hooks into other processes, never reads another app’s memory, and never sends money‑related content.

System requirements

  • Windows 10 (version 1903+) or Windows 11 (required for hiding the yellow capture frame).
  • For the pre‑built exe: no additional software.
  • For building from source: Python 3.10–3.12, rapidocr, windows-capture, PySide6‑Fluent‑Widgets, and the respective LLM SDKs.

License

  • The code is released under the MIT license.
  • The bundled UI library (PySide6‑Fluent‑Widgets) is GPL‑v3, so the distributed executable as a whole is subject to GPL‑v3 for commercial use (a commercial license for that component must be obtained or the component replaced).

Who might find it useful?

  • Users who spend a lot of time in desktop chat clients and want quick, context‑aware reply suggestions without leaving the chat window.
  • Developers who want a Windows‑native example of OCR‑based screen‑scraping combined with LLM inference and a lightweight decision‑model overlay.

All information above is taken directly from the repository’s README; no additional features have been inferred.

Related

  • Project
  • Dispatch
  • Project
  • Dispatch
  • Project