TrendRadarDocsA PROJECT BYsansansansan's personal projects and softwaresandev.cc
HomeDocumentationCommunityPartnershipsIndividual SupportCredits
  • Start here
    • Choose a deployment
    • No server: GitHub Actions
    • Server / NAS: Docker
    • Try locally: Run with uv
    • Configure content & delivery
  • Data Sources
    • Platform Configuration
    • Self-hosted sources (AI)
    • RSS Feed Configuration
  • Content Filtering
    • Keyword Configuration
    • AI Smart Filtering
  • Push Notifications
    • Push Channels
    • Push Modes
    • Scheduling
  • AI Enhancement
    • AI Analysis & Push
    • AI Translation
    • MCP Chat Analysis
    • MCP Query Guide
  • Data & Operations
    • Storage Configuration
    • Config Editor
    • Publish web reports
    • Architecture
  • More
    • FAQ
  1. Docs
  2. /
  3. Start here
  4. /
  5. Try locally: Run with uv
Deployment optionsChoose a deploymentAfter the first messageConfigure content & delivery
© TrendRadar·GPL-3.0 License·Website·GitHub·by sansan

Local Deployment (uv)

This guide explains how to run TrendRadar directly on your own computer, without Docker. We use uv as the package manager — it automatically installs Python and all dependencies, with no manual environment setup required.
Current task · Local run
Start TrendRadar on this computer and use the first run to verify your configuration.
Choose another method
11 · Before runningConfigure one push channel
22 · Done whenNo log errors, and a test or first push arrives in the target app
33 · After it arrivesConfigure content and delivery
When to use this
Local deployment is suited to development and debugging, quick trials, or environments where installing Docker is inconvenient. If you have a server that runs long-term, we recommend the Docker deployment method.

What is uv

uv is a modern Python package manager developed by the Astral team (the same authors as ruff). Its biggest highlights are:
No pre-installed Python neededuv automatically downloads and manages Python versions, so you do not need to install Python in advance
Blazing-fast installsWritten in Rust, its dependency resolution and installation are 10-100x faster than pip
One-click environment managementAutomatically creates a virtual environment and resolves and installs all dependencies
Cross-platform supportSupports the three major operating systems: Windows, macOS, and Linux
In short, you only need to install this one tool, uv, and it takes care of everything else for you.
Python version requirement
TrendRadar requires Python 3.12 or higher. You do not need to install Python manually — uv will automatically download a suitable Python version.

Deployment steps

1
Install uv
Install the uv package manager with one command
2
Clone the project
Get the project code from GitHub
3
Install dependencies
uv automatically installs Python and all dependencies
4
Edit the configuration
Set up push channels and keywords
5
Start the program
Run TrendRadar

Step 1: Install uv

Choose the install command for your operating system. Open a terminal (Windows users, open PowerShell), then copy and run the following command:
macOS / Linux
Windows
Run in the terminal:
curl -LsSf https://astral.sh/uv/install.sh | sh
After installation, you may need to reopen the terminal window for the uv command to take effect.
After installation, verify that uv was installed successfully:
uv --version
If you see a version number printed (such as uv 0.7.x), the installation succeeded.

Step 2: Clone the project

Get the complete TrendRadar code from GitHub:
git clone https://github.com/sansan0/TrendRadar.git
cd TrendRadar
Don't have Git installed?
You can also click Code > Download ZIP directly on the GitHub page to download the archive, then unzip it and enter the TrendRadar directory.

Step 3: Install dependencies

Run the following command in the project root directory. uv will automatically download a suitable version of Python and install all dependency packages:
uv sync
This process usually takes only a few dozen seconds. Once done, the entire environment the project needs is ready.
Notes on the first run
On the first run of uv sync, uv automatically downloads the Python interpreter (about 30-50 MB) and the project dependencies. Subsequent runs use the cache directly and are faster.

Step 4: Edit the configuration

Before starting, you need to edit two key config files to set up your push channels and the news topics you care about:
Requiredconfig/config.yaml -- the core config file
In this file, set up your push channels (Feishu, WeChat, email, etc.), the news platforms to crawl, the AI feature toggles, and so on. Open it with any text editor to edit.
Requiredconfig/frequency_words.txt -- keyword configuration
In this file, define the news topics and keywords you care about. One keyword or keyword group per line, with support for advanced syntax such as grouping, regular expressions, and exclusion rules.
Configuration details
First use Push Channels to connect one destination. After the first run succeeds, use Keyword Configuration to tune filtering.

Step 5: Start the program

Once configured, run the following command to start TrendRadar:
uv run python -m trendradar
This command performs one crawl, analysis and push, then exits. timeline.yaml decides which time period and actions apply to that run; it does not keep the process looping. To run periodically, continue with the operating-system scheduler below.

Useful commands

TrendRadar provides several handy CLI commands to help you diagnose your setup and test push channels:
CommandDescription
uv run python -m trendradar --doctorRun an environment health check — verifies Python version, config files, notification channels, storage backend, and more
uv run python -m trendradar --test-notificationSend a test message to all configured push channels to verify connectivity
uv run python -m trendradar --show-scheduleDisplay the current scheduling state, including time periods and push/analysis toggles
Diagnose your setup without running a news crawl
All three commands exit after completing their task and do not start a news crawl. --doctor writes its results to output/meta/doctor_report.json. It checks the configured AI model, API key and model format, but does not send a real request to the model. --test-notification does send one real test message to every valid channel. Version checks run automatically during a normal run; there is currently no separate --version-check option.

Scheduled automatic runs

If you want TrendRadar to run automatically at regular intervals on your local machine (similar to Docker's cron mode), you can use your operating system's scheduling feature.
Linux / macOS
Windows
Use crontab to set up a scheduled task. Run crontab -e to open the editor, then add a line:
*/30 * * * * cd /path/to/TrendRadar && uv run python -m trendradar
The above example runs every 30 minutes. Replace /path/to/TrendRadar with your actual project path.

Setup helper scripts (they do not start the crawler)

The setup scripts prepare dependencies and print MCP client configuration. They do not run python -m trendradar; after setup, use the command above to run TrendRadar yourself.
Windows
macOS / Linux
Find the setup-windows-en.bat file in the project root directory and double-click to run it.
# Or run it from the command line:
setup-windows-en.bat
This script requires a working Python installation and does not start TrendRadar after preparing dependencies.
Setup complete is not the same as a successful run
After the script finishes, run uv run python -m trendradar --doctor and --test-notification, then run uv run python -m trendradar for a real crawl.

FAQ

ProblemSolution
uv sync reports a network errorIt may be an unstable network. Check your network connection, or try configuring a proxy and retry. If you are in mainland China, consider using a mirror source.
Windows says "uv command not recognized"After installing uv, you need to reopen the PowerShell window. If it still errors, check whether uv has been added to the system PATH environment variable.
macOS reports insufficient permissionsRetry by adding the sudo prefix before the install script, or check the permission settings of the install directory.
No push messages after the program startsCheck whether the push channel configuration in config.yaml is correct, and whether any keywords have been added in frequency_words.txt.
How to stop the programPress Ctrl+C in the terminal to stop it.
If you run into other issues, refer to the "FAQ" page, or report them in GitHub Issues.