НЯН (Nyan) is a news aggregator that scrapes news from different Telegram channels, clusters similar posts, and forms a united feed. All sources are split into several groups, so anyone can understand whether they can trust them.
Channel itself: NyanNews
Extensive description (in Russian): Whitepaper
Detailed instruction (in Russian): Как поднять свой НЯН
Install git and pip
sudo apt-get install git python3-pip
Clone repo
git clone https://github.com/NyanNyanovich/nyan
Install Python requirements
pip3 install -r requirements.txt
Download models
bash download_models.sh
Install Docker and Docker Compose.
- Docker instructions: https://docs.docker.com/engine/install
- Docker Compose instructions: https://docs.docker.com/compose/install
Provide Telegram API credentials to configs/client_config.json.
Run Mongo container
docker-compose up
Run crawler
bash crawl.sh
Run server
bash send.sh
You can provide OPENAI_API_KEY environment variable to use LLM-related features.
It can also be put into a .env file in the repo root:
OPENAI_API_KEY=...
OPENROUTER_API_KEY=...
# optional
LLM_PROVIDER=openrouter
OPENROUTER_SITE_URL=https://t.me/nyannews
OPENROUTER_APP_NAME=nyan
The model is set in configs/llm_config.json, passed to the daemon with
--llm-config-path like every other config:
{
"model_name": "deepseek/deepseek-v4-pro",
"provider_name": "openrouter"
}
With provider_name set to null the provider is taken from LLM_PROVIDER, and
otherwise from the model name: namespaced names such as anthropic/claude-sonnet-4.5
go to OpenRouter, bare ones such as gpt-4o to OpenAI.
