gitmyhub

nan-sentinel

Python ★ 59 updated 13d ago

Windows desktop app that monitors QQ group chats in the background, uses AI to sort incoming messages into four categories, notices, chatter, listings, and junk, and shows them in a real-time dashboard.

PythonFastAPIReactTypeScriptSQLiteNapCatsetup: hardcomplexity 3/5

This is a Windows desktop application designed for students who belong to many QQ group chats and find it impossible to keep up with the flood of messages. QQ is a popular Chinese messaging platform, and university group chats tend to fill up quickly with a mix of official announcements, casual conversation, and people selling second-hand items. This tool monitors those groups in the background and uses an AI language model to automatically sort every incoming message into one of four buckets: important notices (exam schedules, deadlines, school announcements), campus chatter (discussions, opinions, humor), second-hand listings (items for sale, ride-shares, tutoring offers), or junk (emoji-only messages and meaningless filler).

The classified messages appear in a dashboard with live counters and a real-time feed. You can browse by category, search by keyword or sender, save messages to custom folders, and generate a weekly AI summary of what happened across all three main categories. The app also supports forwarding newly classified messages to a Feishu (Lark) group chat via webhook, which is useful if your team wants to share a single stream of relevant intelligence.

On the processing side, the tool offers two modes. Real-time mode sends each message to the language model immediately as it arrives, giving results within seconds. Batch mode stores messages in a buffer first and lets you trigger classification manually, which costs less in API calls and gives the model more conversational context to work with.

The backend is built with Python and FastAPI, the frontend with React and TypeScript, and the QQ connection is handled through NapCat, an open protocol client for QQ. The whole thing is packaged into a Windows installer so no Python or Node.js installation is required. User data stays local in a SQLite database. An optional Vercel cloud component lets multiple users pool their collected data.

Where it fits