Skip to content

jev.tg

Local Telegram filter that batches channel messages to Jev or a local Laya model and keeps only those matching your conditions.

Projectbeta

Overview

JEV Telegram filter is a local FastAPI and SQLite application with a web UI, packaged as a Windows exe or macOS app with a system tray. You log in with one Telegram account (QR or phone code), choose which channels to listen to, and create tasks with a name, a natural-language prompt describing the condition, a batch size (default 50), a hit threshold, bound channels and up to 254 labels, with other reserved automatically.

Messages are stored locally and, once a task's batch fills within the day window, sent to the analysis backend: TypeSafe Jev with your API key, or Laya running locally through Ollama or Unsloth Desktop on a /v1/systemone endpoint. Only hits are shown in the results column, and images are downloaded only after a match. Search and filters by task, type and minimum noul are applied server-side. Concurrency and a recent-days window are configurable. The UI supports Traditional Chinese, Simplified Chinese and English; the README is in Traditional Chinese.

What the decision model decides

TypeQuestionAnswers
Yes / noDoes this message match the task's natural-language condition?(inferred)—
ChoiceWhich label (or other) applies to this message?(inferred)—

How it works

  1. Receive messages from subscribed channels into local SQLite
  2. When a task's batch fills, send it to Jev or local Laya
  3. Keep messages above the hit threshold; label them
  4. Show hits only, downloading images after a match

Strengths

  • Messages stay local; a fully local Laya option exists
  • Batching reduces calls
  • Packaged desktop builds via CI releases

Caveats

  • Uses a personal Telegram account session
  • Documentation in Chinese
  • Laya quality not compared with Jev in the README

Getting started

uv sync && uv run python -m server, then `cd web && npm install && npm run dev` and open http://localhost:5173.

At a glance

Type
Project
Status
beta
Language
Python
Runtime
Desktop app (FastAPI + web UI)
Has code
yes

Use cases and integrations

How curated lists describe it

  • Local Telegram filter stores channel messages locally and sends them in batches to Jev or a local model to keep only messages matching natural-language conditions.

    logicrw/awesome-jev-projects

Frequently asked questions

Can it run without TypeSafe?

Yes, it can use a local Laya model through Ollama or Unsloth Desktop.

Which messages are shown?

Only messages that match a task above its threshold; misses are not listed.

Where is data stored?

Locally, in a data directory such as %APPDATA%\jev_tg on Windows.

Related projects

  • Multi-user Telegram bot that judges every new post in public channels with Jev templates and routes matches to your DM or channels.

    ProjectbetaPython
  • Telegram channel X-ray: Jev judges up to 1,500 public posts for kind, paid ads, clickbait and pressure, producing a shareable card.

    ProjectbetaJavaScript
  • Local-first feed that merges arXiv, GitHub, Hacker News and Bilibili results, with optional Jev title-relevance scores as a filter.

    ProjectbetaTypeScript
  • Self-hosted podcast ad remover that transcribes episodes and uses an LLM or System One to detect and cut ad segments.

    Servicebeta
  • macOS menu bar screen-time app that asks Kev or Jev whether each screen breaks your rules and steps in with a pop-up.

    ServicebetaPython
  • Chrome extension that scores loaded X posts against your reading goal with Jev and ranks top matches pairwise.

    ProjectbetaJavaScript