Mindket

TrendRadar

Newversion 2 · updated
GitHub trending
Star63.5k

Overview

An open source news and public opinion monitor. It reads Chinese hot-search lists and your RSS feeds, keeps what matches your keywords or an AI score, and pushes it to Feishu, Telegram, email and more. An MCP server lets Cursor and other clients query the saved news.

TrendRadar is an open-source project on GitHub in the Research category, listed by Mindket. It is free. This is version 2, last updated on . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

At a glance

Runs in
  • Docker: the README’s recommended route, for a server, a NAS or a PC that stays on
  • Local with uv: on Windows, Mac or Linux, with no Docker
  • GitHub Actions: in your own copy of the repository, with a check-in every 7 days
  • Push channels: Feishu, DingTalk, WeCom, Telegram, email, ntfy, Bark, Slack and a generic webhook that reaches Discord, Matrix or IFTTT
Start with
git clone https://github.com/sansan0/TrendRadar.git
cd TrendRadar/docker
docker compose up -d

Platform

DockerContainer
WindowsOperating system
LinuxOperating system
CursorCode editor
ClineCoding agent
Claude CodeCoding agent

And 2 more in Where to use it

About

What it is

TrendRadar is an open source news and public opinion monitor made by sansan0. It reads the hot-search lists of Chinese platforms such as Weibo, Zhihu, Douyin, Bilibili and Baidu, plus any RSS or Atom feeds you add. It keeps the items that match your keywords, or that an AI model rates as close to interests you wrote in plain words. Then it pushes them to Feishu, DingTalk, WeCom, Telegram, email, ntfy, Bark, Slack or a generic webhook, and writes an HTML report you can open in a browser. An optional MCP server lets an AI client search and analyze the news you have saved.

  1. TrendRadar fetches the hot lists and your RSS feeds
  2. Your keywords or AI interests pick the matches
  3. The matches are pushed to your chat, mail or phone
  4. An HTML report holds the full day
  5. An AI client can query the saved news over MCP

Who it suits

Investors, content creators, PR professionals and anyone who reads a lot of news and wants it filtered before it reaches them. The README names stock monitoring, brand sentiment tracking and industry trend watching as typical uses. Its 11 default hot-list platforms are Chinese, so for other regions you rely on RSS feeds. The shipped config.yaml already lists Hacker News and Yahoo Finance.

Who uses it, and how
IndustryWho uses itHow they use itExample
InvestingTraders and investorsUse incremental mode, which pushes only new matchesA trader lists company names and gets only the items that were not pushed before.
Content creationContent creatorsUse current mode, which pushes what matches the ranking right nowA creator follows a topic’s keywords and sees which matching titles are still ranked at each push.
PR and brand workPR professionalsKeep a brand name in the keyword fileA PR lead adds a brand name and reads the matching titles from each platform in one push.
Everyday readingManagers and general readersUse daily mode, where each push holds all of the day’s matchesA manager sets daily mode and reads the day’s matched news as one summary.

Skip it if you want to search social media live for any topic you name. TrendRadar watches ranked lists and feeds, and only what they carry reaches you.

Where to use it

The README gives three routes: your own computer, a server that stays on, or GitHub Actions. Its MCP server works in any client that speaks the Model Context Protocol.

  • Docker: the README’s recommended route, for a server, a NAS or a PC that stays on
  • Local with uv: on Windows, Mac or Linux, with no Docker
  • GitHub Actions: in your own copy of the repository, with a check-in every 7 days
  • Push channels: Feishu, DingTalk, WeCom, Telegram, email, ntfy, Bark, Slack and a generic webhook that reaches Discord, Matrix or IFTTT
  • MCP clients: the README has steps for Cherry Studio, Cursor, Cline and Continue, plus a template for any other client. It has none for Claude Code, Codex or Gemini CLI

How to set it up

Get it saves a zip of Mindket’s setup notes in your downloads folder, with one page per route and per MCP client, each from TrendRadar’s own files. Docker is the main route.

What you need first
NeedDetail
A way to run itDocker, or uv, or a GitHub account. uv installs the Python it needs, and the project asks for Python 3.12 or newer
A place for pushesA channel’s webhook address, bot token or mail login. Without one you can still read the HTML report
A model keyFor the AI analysis push, translation and AI filter, which run on LiteLLM (the README says over 100 providers). MCP chat uses the model and key you set in your client
Saved newsThe MCP server’s query and analysis tools read the output folder, not the live web. Only trigger_crawl and the two article readers go online. Run the crawler for a day, or try the README’s sample week
  1. Clone the repository. The commands below then move into its docker folder.
  2. Pick your platforms and keywords. Platforms live in config/config.yaml, keywords in config/frequency_words.txt.
  3. Put your secrets in docker/.env. That file holds webhook addresses and keys. The README says git does not track it, but the repository ships a template docker/.env, so never commit or push your filled-in copy. Never write them into config.yaml.
  4. Start the service. The compose file crawls once at start and then every 30 minutes by default.
  5. Open the report in a browser. The newest one is at http://localhost:8080 once a run has finished.
git clone https://github.com/sansan0/TrendRadar.git
cd TrendRadar/docker
docker compose up -d

Without Docker, the README’s local route is these four lines, run after you install uv.

git clone https://github.com/sansan0/TrendRadar.git
cd TrendRadar
uv sync
uv run python -m trendradar

For the MCP server, the README’s recommended STDIO mode starts it through uv from your client. Replace /path/to/TrendRadar with your project folder. This is the Cursor file, .cursor/mcp.json.

{
  "mcpServers": {
    "trendradar": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/TrendRadar",
        "run",
        "python",
        "-m",
        "mcp_server.server"
      ]
    }
  }
}

How to use it

Write what you care about in config/frequency_words.txt, then pick a push mode under report in config.yaml. The three modes are daily, current and incremental. An empty line separates one keyword group from the next. A plus sign makes a word required, so the README’s group of iPhone, Huawei and OPPO with +launch keeps launch news and drops sales news.

report:
  mode: "incremental"

To ask questions of the saved news, connect an MCP client and write in plain words. The README’s own examples are below.

Analyze recent 7 days "Tesla" popularity trend
Generate today's trending summary report
Search "Bitcoin" related news and analyze sentiment

Example

You follow AI news in English, and the plain keyword ai also catches titles about training. You put the README’s regex group in frequency_words.txt instead.

/(?<![a-z])ai(?![a-z])/
artificial intelligence

The README says “AI is the future” and “Artificial intelligence grows rapidly” now match. “Resistance training is important” does not, because that ai sits inside a word. Add => AI Related after the pattern and the push shows that name, not the regex.

For newcomers and experts

If you are new. Every platform shows a ranked list of what people are searching or reading. TrendRadar reads those lists on a timer, filters them by your rules and sends you the result, so you do not open each app. Start with Docker, one keyword group and one push channel. Add the AI features and MCP once the pushes arrive.

For experts. The keyword file has seven kinds of syntax: plain words, +required, !filter, @count, [GLOBAL_FILTER], /regex/ and => alias. Setting filter.method to ai swaps keywords for an interests file, config/ai_interests.txt, and the model scores each title. If the AI step fails, the README says it falls back to keyword matching.

The schedule section and timeline.yaml give each time period its own push mode and filter, with five presets: always_on, morning_evening, office_hours, night_owl and custom. An environment variable beats config.yaml, which matters when a Docker or NAS setup ignores your edit. The MCP server’s tools cover dates, queries, search, analysis, storage, article reading and notifications.

Two details in the maker’s files disagree. Step 6 of the README still names an AI_PROVIDER variable, which its own v5.3.0 changelog says was removed, while docker/.env uses AI_MODEL in the provider/model form. And the README reads ai_filter.min_score as 1 to 10, while the comment in config.yaml says 0.0 to 1.0. Follow your own copy of the files.

Good to know

The README describes no usage data sent to its maker, but several parts reach outside your machine.

  • News source: the hot lists come from the newsnow project’s API, a separate service, unless you host your own and set platforms.api_url. The README asks Docker users not to fetch from it too often
  • Model provider: every AI feature sends news titles or your interest text to the provider you set, under your own key and bill
  • Article reading: the MCP tools that read an article send its link to the Jina AI Reader service
  • Version check: it reaches GitHub, with jsDelivr and Cloudflare CDN as fallbacks. show_version_update in config.yaml turns off its notice
  • Secrets: webhook addresses, bot tokens, mail passwords and AI_API_KEY belong in docker/.env or GitHub secrets. The README says to keep a webhook address off public sites
  • Tools that act: trigger_crawl runs a crawl and send_notification pushes a message to your channels. Keep approval on for both in your client
  • Network address: the start-http scripts pass --host 0.0.0.0, which listens on every interface. The README says the Docker MCP service listens on 127.0.0.1 only, and in STDIO mode your client starts the server itself
  • GitHub Actions: use Use this template, not Fork, and check in every 7 days. Full mode needs S3-compatible storage such as Cloudflare R2
  • Time zone: the config ships as Asia/Shanghai, so set yours when push times look wrong
  • Removal: the README gives no uninstall page. For Docker, the README’s docker stop trendradar and docker rm trendradar remove the push container and keep your data. The MCP container from the compose file is named trendradar-mcp, and those lines leave it running. Deleting the output folder removes the saved news
  • License: GPL-3.0. The README says it would appreciate a credit and a link from anyone who uses its core code or logic

README and files

README

TrendRadar: setup notes

This kit holds setup notes only. Mindket wrote them. TrendRadar installs from its maker's repository: https://github.com/sansan0/TrendRadar

These notes are not made or endorsed by the maker, sansan0. The repository describes TrendRadar as an "AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts." Its Chinese description begins "告别信息过载,你的 AI 舆情监控助手与热点筛选工具!" ("Say goodbye to information overload: your AI public opinion monitor and trend filter"). Source: https://github.com/sansan0/TrendRadar

License: GPL-3.0. The GitHub page names GPL-3.0, the README's License section says "GPL-3.0 License", and the LICENSE file (https://github.com/sansan0/TrendRadar/blob/master/LICENSE) is the standard GNU General Public License version 3 text. The README says it would be greatly appreciated if anyone who uses its core code or draws on its logic credits the source in their README or documentation and links the repository. Source: https://github.com/sansan0/TrendRadar/blob/master/README-EN.md

The README links an official website and a documentation site, https://trendradar.sandev.cc/en/ and its Chinese pages under /zh/. Every command in these notes is copied from the repository's own files instead: README-EN.md, README.md, README-Cherry-Studio.md, README-MCP-FAQ.md, README-MCP-FAQ-EN.md, docker/docker-compose.yml, docker/.env, config/config.yaml, pyproject.toml and the start and setup scripts. Each file below names the one it was copied from. The README says its own page is the one to check first, because the steps change.

What it does

  • Reads hot-list pages from several Chinese platforms through the newsnow API, and RSS or Atom feeds you add.
  • Keeps the items that match your keywords, or that an AI model scores as matching your interests written in plain words.
  • Pushes them to Feishu, DingTalk, WeCom, Telegram, email, ntfy, Bark, Slack or a generic webhook, and writes an HTML report you can open in a browser.
  • Can add an AI analysis report or a translation to each push.
  • Has an MCP server, so an AI client can search and analyse the news data it has saved, in conversation.

Three ways to run it

| Route | The README's words for it | Notes |
|---|---|---|
| Docker | "Recommended", "More stable than GitHub Actions", for a server, a NAS or an always-on PC | setup/docker.md |
| Local, with uv | "Run directly on your machine, no Docker needed" | setup/local-uv.md |
| GitHub Actions | Runs in your own copy of the repository, needs a check-in every 7 days | setup/github-actions.md |

Source: https://github.com/sansan0/TrendRadar/blob/master/README-EN.md, "Quick Start"

Per-client notes (MCP, for talking to the saved news)

The README gives MCP steps for Cherry Studio, Cursor, Cline and Continue, a JSON snippet it labels "Claude Desktop / Cline", a section on MCP Inspector, and a template for any other MCP client. It gives no steps for Claude Code, Codex or Gemini CLI. setup/other-mcp-clients.md has the template in both of the README's modes: translate it into your own agent's config format.

  • setup/docker.md: the two images, the compose file, the .env file, the management commands
  • setup/local-uv.md: running it with uv, and the Windows and Mac setup scripts
  • setup/github-actions.md: your own copy of the repository, secrets, the manual test and the 7-day check-in
  • setup/ai-features.md: AI analysis push, translation and AI filtering, the model variables
  • setup/cherry-studio.md: the MCP server in Cherry Studio, which the README recommends for a GUI setup
  • setup/cursor.md: the MCP server in Cursor
  • setup/vscode-cline-continue.md: the MCP server in Cline and Continue
  • setup/other-mcp-clients.md: the Claude Desktop snippet, MCP Inspector, a template for any client and the connection checks
  • setup/mcp-questions.md: the defaults, the tools and what to ask

What you need

  • Docker, or uv, or a GitHub account, depending on the route. uv installs the Python it needs: the README says "no Python required, uv manages it automatically". The pyproject.toml file asks for Python 3.12 or newer.
  • At least one place to send pushes, unless you only read the HTML report. Every channel has its own secret or webhook address.
  • For the AI analysis push, translation and AI filter, a model API key. They run on LiteLLM, which the README says supports over 100 providers. MCP chat uses the model and key you set in your client, such as Cherry Studio.
  • For the MCP server, saved news data: its query and analysis tools read the output folder, not the live web. Only trigger_crawl and the two article readers, read_article and read_articles_batch, go online. Run the crawler for a day first, or use the sample data the README says the repository ships with.

Sources: https://github.com/sansan0/TrendRadar/blob/master/README-EN.md, "Quick Start" (Option C), "12. Let AI help me analyze hot topics" and "AI Analysis", https://github.com/sansan0/TrendRadar/blob/master/pyproject.toml, and README-MCP-FAQ.md for the client's model key and the tools that go online

Keys and addresses stay yours

Webhook addresses, bot tokens, mail passwords and AI_API_KEY are secrets. The README says to keep a webhook address off GitHub, blogs and public sites. On Docker they go in docker/.env. The README says git does not track that file, but the repository ships it as a template, so never commit or push your filled-in copy. On GitHub Actions they go in repository secrets, under the exact names the README lists. Never paste one into config.yaml on a public repository.

Sources: https://github.com/sansan0/TrendRadar/blob/master/README-EN.md and https://github.com/sansan0/TrendRadar/blob/master/config/config.yaml

Update or remove

On Docker, the README gives these two ways to update:

docker pull wantcat/trendradar:latest
docker pull wantcat/trendradar-mcp:latest
docker compose down
docker compose up -d
docker compose pull
docker compose up -d

The README gives no uninstall page. For Docker it lists these, and says removing the container keeps your data:

docker stop trendradar
docker rm trendradar

These remove the push container only. The compose file also starts the MCP container, named trendradar-mcp, and these lines leave it running.

Generated reports and data live in the project's own output folder (TrendRadar/output), so deleting that folder is what removes the saved data. The MCP container note and this last step are Mindket's notes, not the README's.

Source: https://github.com/sansan0/TrendRadar/blob/master/README-EN.md, "6. Docker Deployment"

Time zone, data and its own news source

The config file ships with timezone: "Asia/Shanghai" under app, and its comments say it affects every time shown, the schedule and the data storage. The README gives America/Los_Angeles and Europe/London as other values, so set yours when the push time looks wrong. The README also says it never deletes your data by default. Set retention_days under storage.local for auto cleanup, where 0 means keep forever.

The news itself comes from the newsnow project's API. The comments in config.yaml say you can deploy newsnow yourself and set platforms.api_url to your own instance, in the form https://your-domain.com/api/s. The maker's self-hosted sources page (linked below) says the PLATFORMS_API_URL variable overrides that setting. The shipped file also gives each platform an expected_domain, which discards data whose links are not HTTPS or not on that domain, and recommends one whenever api_url is not your own instance. That page, for building a source of your own, has prompts for an AI to deploy NewsNow or OmniTrends, and recommends Cloudflare Pages with D1: https://trendradar.sandev.cc/zh/docs/self-hosted-sources/ (in Chinese). Sources: https://github.com/sansan0/TrendRadar/blob/master/config/config.yaml and README-EN.md, "Custom Monitoring Platforms".

Outbound connections

The README says the news comes from the newsnow project's API and asks Docker users not to fetch from it too often. A version check reaches GitHub, with jsDelivr and Cloudflare CDN as fallbacks, and show_version_update in config.yaml turns its notice off. Every push goes to the channel you set, every AI feature sends news to the model provider you set, and the MCP tools that read an article send its link to the Jina AI Reader service (setup/mcp-questions.md). The README does not describe usage data sent to the maker.

Sources: https://github.com/sansan0/TrendRadar/blob/master/README-EN.md (Data Support, the v6.8.0 changelog) and https://github.com/sansan0/TrendRadar/blob/master/config/config.yaml

Sources

Files
README.md  9 KB
setup/ai-features.md  6 KB
setup/cherry-studio.md  6 KB
setup/cursor.md  3 KB
setup/docker.md  6 KB
setup/github-actions.md  6 KB
setup/local-uv.md  4 KB
setup/mcp-questions.md  4 KB
setup/other-mcp-clients.md  4 KB
setup/vscode-cline-continue.md  2 KB

10 files, 51 KB, downloaded as a zip.

What’s new

  • Version 2 · 2026-11-09

    Updated by Mindket to the current version of this kit.

  • Version 1 · 2026-11-03

Reviews

No ratings yet

Write a review

No reviews yet.

What people say

Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.

@toolhunt.bsky.socialХватит тонуть в инфошуме! TrendRadar мониторит тренды, фильтрует новости через AI и присылает готовые аналитические брифинги прямо в мессенджер. Docker, MCP, полный контроль над данными. https://github.com/sansan0/TrendRadar #OpenSource #AI #Python1 like@MIAOYOTOP每天刷几个平台,新闻重复看,关心的消息还容易漏 分享一个开源工具 TrendRadar,聚合多平台热榜和 RSS,按关键词或 AI 筛选,再推送到飞书、Telegram、邮件。 支持本地部署,想少刷点信息流的可以尝试下 https://t.co/eVgVHnUOcR #开源工具 #信息聚合r/SATNA_PROJECT15 GitHub projects with 1.2M+ combined stars that can form a real agent stackデイリーGitHubトレンド今日のGitHubトレンド sansan0/TrendRadar 提供されたREADMEの内容が空であるため、リポジトリが何を目的に作成されたのかを特定することはできません。 リポジトリの目的をまとめるためには、READMEまたは関連する情報提供をお願いします。1 like@HongyeMain这五个工具串起热点、订阅、改写和发布。 1 TREND RADAR:关键词筛选多平台热点并推送 2 RSSHUB:把网站和平台内容接成 RSS 3 BEACON:热榜、竞对和多平台改写放在一起 4 MEDIA MANAGER:写作、配图、发布和复盘串成闭环 5 OMNIPOST:多平台上传任务统一准备@10ton.bsky.social你不要再手动刷十几个资讯平台了 推荐一个 GitHub 6 万+ Star 的开源项目:TrendRadar 仓库:github.com/SANSAN0/TRENDRADAR 1.全网热点聚合,默认监控11个主流平台,也可以自行增加额外的平台 2.不用把所有热搜照单全收,既能按关键词筛选,也可以直接写下自己关心的方向,让 AI 判断哪些新闻值得看 3.支持邮箱、微信、飞书、钉钉、Telegram、Slack 等渠道推送,也能通过 MCP 让 AI 查询和分析积累下来的新闻 4.高度自定义,任何需求让Codex帮你改,注意是任何 5.简单说,它帮你收集资讯,也帮你过滤噪音@ruyi3699信息差就是钱差,下面这5个开源项目给你备齐,直接搭一套Web3 + AI全自动情报流水线, 让有价值的Alpha主动送上门: 1️⃣ Web3信息源大全 600+条精选RSS,覆盖300+项目动态、GitHub Release、研报和VC情报,一键导入,省得你满世界找源。 🔗 https://t.co/oThrY4jaHT 2️⃣ 免费加密新闻API 200+来源、66万+篇新闻、18种语言,永久免费,还自带AI摘要和情绪分析。Claude、ChatGPT都能直接对接,不用自己再去爬数据。 🔗 https://t.co/QU6eMebo1g 3️⃣ 全网热搜监控雷达…デイリーGitHubトレンド今日のGitHubトレンド sansan0/TrendRadar このリポジトリは、部署内で話題になっているニュースや情報を効率的に収集・共有するためのツールTrendRadarを開発・公開しています。 不要な情報の排除に重点を置き、関心のある情報のみを迅速に把握できるよう設計されています。 RSSや各種通知機能に対応しています。@DanKornas$83デイリーGitHubトレンド今日のGitHubトレンド sansan0/TrendRadar TrendRadarは、部署内で話題になっているニュースや情報を効率的に収集・共有するためのツールです。 不要な情報のスクリーニングを行い、関心のある情報のみを迅速に把握できます。 企業や個人向けの各種通知機能(微信、Telegram、メール等)に対応し、GitHub Actionsによる自動化やDockerによる簡単なデプロイも可能です。@goan999999真替你激动!你苦苦找了半年的 AI 公众号工具,今天终于被我挖出来了! 半个月前,我跟我朋友说让他做公众号、贴图号,今天非常兴奋的给我反馈了,接了个800的商单【看图】,他只是刚干半个月,都给我惊呆了 这 3 个工具,助力你快速起号 1、Doocs MD:公众号免费排版神器 文章写完还要花半小时调字体、颜色、间距? 直接粘贴 Markdown 内容,自动转换为适合公众号的图文格式,支持多种排版主题、图片管理、代码高亮,还有 AI 助手 2、TrendRadar:全网热点挖掘神器 做公众号最怕找不到选题,用它就能更快发现行业热点…デイリーGitHubトレンド今日のGitHubトレンド sansan0/TrendRadar 提供された情報(README)が空欄のため、リポジトリの作成目的を特定することはできません。

Searched

More from Mindket

See all from Mindket

Bonsai-27B-GGUF

lmstudio-community · Kit

A GGUF conversion of the 27B Bonsai model for LM Studio, with a 3.80 GB Q1_0 language file and a 0.93 GB BF16 vision projector. Tested for text, vision and par…

New

Runs DeepSeek-V4.1-Flash-1017 as a 2.9 bits-per-weight EXL3 quantization, a 196 GiB copy for people serving large models on their own hardware. Perplexity stay…

New

MusicGen Small

facebook · Kit

Generates short music clips from a text description or an audio prompt, in the small checkpoint of facebook's MusicGen. It suits developers and music hobbyists…

New

Similar projects

See all in Research

Scrapling

D4Vinci · Kit

This Python web scraping framework combines fast HTTP requests, browser automation, and data parsing into one library. It includes an MCP server for AI agents…

New99.9k

Crawl4AI

unclecode · Kit

UncleCode’s open source web crawler and scraper for language models and AI agents. It loads a page in a browser and returns clean Markdown, or JSON in a shape…

New87k

Context7

upstash · MCP server

Upstash’s hosted MCP server that hands your coding assistant current docs and code examples for the library and version you ask about.

New64.3k