A news reader helps us get through our subscriptions. AIHOT goes further: it runs the publication. It collects reports, decides which deserve attention, writes summaries, groups coverage of the same event and assembles editions. We supply the sources and the judgment about what matters.
AIHOT's English README explains why its creator, 数字生命卡兹克, or Khazix, shared it. Friends wanted versions for law, HR, finance and precious metals. The creator could share the machinery, but those fields needed their own experts.
pay.news shows that idea applied to payments. Its About page explicitly credits AIHOT. We examined the upstream code and public pages to separate what the engine supplies from what a specialist publication adds.
A production engine with an editorial starting point
AIHOT is a TypeScript application built around Node.js 24, React Router server-side rendering, Fastify, PostgreSQL 17, the pg-boss job queue and Tailwind. Server-side rendering means the server produces the page HTML. A job queue runs collection and model work separately from reader requests.
The author describes the repository as an export of the production engine, with rough edges. It is not a polished universal publishing platform. The interface, prompts and generated writing default to Chinese. The production source list and operating data are excluded. The demo contains 18 RSS sources, although the engine supports other inputs.
The code is MIT-licensed. NOTICE excludes the AIHOT name and logo from that license. We need our own branding, and the code license gives us no rights to publishers' articles.
The public repository was created September 28, 2026. Our October 21 check found 8,232 stars, 1,974 forks and 145 default-branch commits. There were no GitHub releases. That is substantial early interest, with a short public maintenance history. It is not evidence of editorial accuracy or reliability.
On the original site's About page, the workflow is visible: sources flow into selected AI news, events and a morning briefing. Its live model leaderboard and reset monitor are site-specific features that the exported framework leaves out.
How material becomes a publication
The selection documentation describes several decisions between collection and publication. Passing one does not guarantee passing the next.
Scroll to compare columns and rows when the table extends beyond the box.
| Stage | What happens | Why we care |
|---|---|---|
| Collect | Read RSS, web listings, JSON APIs, X accounts, WeChat Official Accounts or pushed material | We choose the evidence the publication sees |
| Deduplicate | Recognize repeated URLs and content | Repeated collection should not manufacture news |
| Pre-screen | Check whether the material belongs to the field | Clearly irrelevant material stays out of public output |
| Score and structure | Score twice; extract categories, subjects and facts | Importance and factual identity are separate decisions |
| Write | Produce a headline, answer-first summary and reading reason | Readers get the change before background |
| Group | Identify the same occurrence, follow-ups and genuinely new information | Reworded coverage should not occupy another news slot |
| Publish | Serve selected items, event rankings and scheduled editions | People and agents read the same published material |
Sources have three scoring tiers. T1 means official first-hand sources. T1_5 covers official accounts and semi-official creators. T2 covers media and individuals. These are editorial configuration choices, not automatic guarantees of truth.
The pre-screen allows uncertain cases to continue. Ordinary articles with only a title wait for usable material rather than inviting a model to invent a summary. Material without a trustworthy publication time waits before public release.
Two scores, with real thresholds
A large language model, or LLM, scores each promising item twice against the same rubric. Independent calls do not necessarily mean different models.
The actual values in industry/selection.ts are:
Scroll to compare columns and rows when the table extends beyond the box.
| Tier | Required average | Equivalent score sum |
|---|---|---|
| T1 | 60 | 120 |
| T1_5 | 65 | 130 |
| T2 | 76 | 152 |
Each score is between 0 and 100. The sum must be at least twice the threshold. Official material gets a lower hurdle because the design favors first-hand reporting.
Clearing that hurdle only makes an item a candidate. Grouping must still establish its news identity and added value. An unselected item with an average strictly above 50 can receive the richer headline-and-summary treatment; lower scores use a cheaper summary path. That writing threshold is not the selection threshold.
The prompt files divide the work into relevance screening, scoring, fact extraction, writing, translation, grouping and edition introductions. Shared rules ask for source-supported names, self-contained headlines and summaries that open with the answer. Source text is treated as untrusted material. These guards reduce specific mistakes; they do not prove every sentence correct.
Events, then heat
An event holds reports about the same unfolding story. AIHOT looks for candidates from the previous two weeks using embeddings, numerical representations of textual meaning, or text overlap when embeddings are unavailable. A model judges the relationship. A separate merge review can use another provider. Manual grouping corrections are preserved.
The heat calculation ranks events by attention from independent participants. Its exact rule is:
H = sum over participants of 0.5 ^ (ageHours / 24)
displayedHeat = round(H * 100) / 10
For each participant, use its latest qualifying evidence with a source timestamp newer than 48 hours ago and no later than now. The timestamp is the source's time, not collection time. A fresh participant contributes 10 on the displayed scale; after 24 hours it contributes 5. Evidence exactly 48 hours old is excluded. Repeated posts can refresh that participant's time but cannot create extra contributions. Ranking requires at least two participants, including an editorial participant.
“Independent” depends on configuration. The code can combine company channels by owner, combine a media group, or distinguish authors on configured community feeds. Without those identities, it falls back to individual source IDs. We should not assume different feed URLs represent different organizations.
Editions without rewriting everything
Daily editions default to 08:00 Beijing time. Rules choose and arrange existing material without a new model call. Repeated events need qualifying developments to return. Weekly editions default to Monday at 10:00, monthly editions to the first at 10:30, configured through EDITION_TIMES in site/site.ts.
Weekly and monthly editions select from the dailies. Models write overview prose and section introductions, not the item list. Guards reject introductions with unsupported names or numbers. Reading a page does not itself trigger a model call.
The architecture puts pages, RSS, the public API, MCP and agent-readable Markdown behind one publication layer. Withdrawals and full-text permissions can therefore follow the content across those outputs.
What pay.news changed
pay.news's About page describes payments research covering rails, cards, banking, acquiring, regulation and licensing, with stablecoins where they affect money movement. It says Dogpay operates the publication. The footer and Terms identify Dogads Limited. We draw no conclusions about traffic, revenue or team size.
At our check, About reported 48 sources: 43 RSS, two web sources and three APIs. Those are the site's reported counts. Its nine interface-language choices are Simplified Chinese, English, Traditional Chinese, Japanese, Korean, German, Spanish, French and Brazilian Portuguese. Language choices do not establish that every article has a complete translation; the fetched daily response identified its content as Chinese.
The llms.txt guide lists payments categories: payments, banking, cards, stablecoins, crypto, compliance, licensing, web3-ai and fintech. Branding, domain vocabulary, categories and source choices are visible customizations.
It also lists payment-license and licensed-institution directories, an agent-products directory and a model leaderboard. These extend beyond the exported framework's core. The original AIHOT site also has a leaderboard, so we should not attribute the entire idea to pay.news. Public pages establish what is offered, not which private code implements it.
For readers, the site offers selected news, all updates, an event-based hot list and daily, weekly and monthly editions. About states an 08:00 Beijing daily brief, Monday weekly review and monthly roundup on the first. The fetched hot-topics response supplied ranked events with source names and story links. We verified that output, not the underlying payments claims against their original reporting.
For agents, the access guide documents anonymous, read-only interfaces requiring no key:
- RSS, a feed format readers can subscribe to, includes selected items and category feeds.
- REST API v1 returns structured data over HTTP. We read its OpenAPI specification, current hot topics and latest daily response.
- MCP, the Model Context Protocol, exposes named tools to compatible assistants at
https://pay.news/api/mcp. - llms.txt maps the site; Markdown companions provide simpler reading pages for machines.
The five documented MCP tools are dogpay_news_get_latest, dogpay_news_search, dogpay_news_get_hot_topics, dogpay_news_get_story and dogpay_news_get_daily. We read their documentation without invoking the tools. An assistant can request recent coverage, find an event and retrieve a briefing. It still needs to verify important facts against originals.
Terms distinguish anonymous reading from permission to republish commercially or in bulk. An open endpoint is not an unrestricted content license.
Building our own field's version
The README setup starts with Use this template for an independent repository, or a fork when we want upstream changes. We need Docker with Compose, Node.js 24 for initialization and an OpenAI-compatible model API key.
After cloning our repository, the documented steps are:
node scripts/init-env.ts --llm-key <your-model-api-key>
docker compose up -d --build
These are instructions for a future installation. We did not run AIHOT's installer, containers or tests for this article. Initialization defaults to DeepSeek; .env.example explains alternative endpoints and model settings. Actual keys belong outside version control.
Next, the README suggests giving a coding agent the repository, asking it to read AGENTS.md and docs/customize.md, and describing our sources, important developments and unwanted noise. We also ask it to translate interface text and prompts, run the documented checks and return decisions that still need our judgment.
Most identity and presentation changes belong in site/. Our categories, topics, sources, prompts and thresholds belong in industry/. Site-specific features can become modules. Our field knowledge needs concrete examples: which regulatory changes matter, what counts as a product release, and which promotional announcements should be rejected.
Deployment notes recommend at least two CPU cores and 4 GB of memory for a cloud build. Their demo observation was about 930 model calls for 152 initially imported items. That is a workload example, not a monthly price. Feed volume, models, translation and event processing determine recurring consumption. Optional X, WeChat and Jina collection can add charges.
The admin exposes call counts, token usage, failures and manual corrections. Budget breakers pause paid services at per-minute, hourly and daily request ceilings. Stored receipts help reuse paid results during retries. Request ceilings limit activity, but we still need to monitor actual spending.
Before publishing, we need our own source permissions, corrections process and reviewed terms. Chinese text appears beyond the main configuration file. X and WeChat integrations do not grant permission to collect or redistribute platform content. Default summaries and original links are a sensible starting point; full-text republication needs explicit permission.
Similar projects solve different parts
All counts and last-push dates below were read October 21, 2026 from GitHub metadata; roles come from their READMEs. Last push can include branches or automation and is not a release date. Stars measure interest. We searched news-aggregator, daily-digest, content-curation and LLM/RSS candidates and added UglyFeed as an active close fit.
Scroll to compare columns and rows when the table extends beyond the box.
| Project | Kind and AI role | License | Stars; last push | Self-hosted? |
|---|---|---|---|---|
| AIHOT | News-site engine; selection, writing, grouping | MIT, branding excluded | 8,232; 2026-10-21 | Yes |
| TrendRadar | Trend monitor; AI analysis and alerts | GPL-3.0 | 63,063; 2026-10-20 | Yes |
| NewsNow | Hot-news reader; MCP access, no stated AI editorial pipeline | MIT | 22,095; 2026-10-13 | Yes |
| DailyHotApi | Hot-list API/RSS plumbing; no stated AI curation | MIT | 4,090; 2026-03-11 | Yes |
| Folo | Reader; AI-assisted reading | AGPL-3.0, icon exception | 39,129; 2026-10-20 | Client source; service dependencies |
| RSSHub | Source plumbing; generates RSS | AGPL-3.0 | 46,599; 2026-10-20 | Yes |
| FreshRSS | Reader; extensions, no stated core LLM editor | AGPL-3.0 | 16,344; 2026-10-20 | Yes |
| Miniflux | Reader; no stated core LLM editor | Apache-2.0 | 9,810; 2026-10-21 | Yes |
| Glance | Dashboard; feed widgets, no stated AI editor | AGPL-3.0 | 37,585; 2026-10-20 | Yes |
| auto-news | Personal aggregator; LLM insights and recaps | MIT | 909; 2025-07-19 | Backend; Notion client |
| RSS-GPT | Personal digest script; summaries via Actions | MIT | 355; 2025-09-08 | Fork/workflow |
| Kagi News / Kite | News front end; hosted LLM summaries | MIT code; CC BY-NC 4.0 data | 1,087; 2026-10-19 | Front end only |
| BestBlogs | Reading service/resources; AI scoring | No license found | 4,057; 2026-07-08 | Full engine not established |
| UglyFeed | Feed publishing pipeline; LLM grouping/rewriting | AGPL-3.0 | 321; 2026-10-17 | Yes |
We would choose TrendRadar for monitoring and alerts, NewsNow for browsing hot lists, or DailyHotApi for feeding another application. RSSHub supplies missing feeds. FreshRSS and Miniflux suit a personal reading queue; Folo adds AI-assisted reading, while Glance combines feeds with other dashboard widgets.
UglyFeed is closer when the desired output is a rewritten RSS feed. auto-news and RSS-GPT target personal digests, but their older push dates deserve attention; RSS-GPT explicitly says its hosted feed updates are suspended. Kagi shares its front end, not the complete news-generation engine. BestBlogs is useful to study, but an unlicensed public repository is not permission to reuse a full publishing system.
The part worth copying
AIHOT makes editorial decisions inspectable. We can change a prompt, see why a candidate failed and compare another model against our own labels. Two scores can reduce an unlucky judgment, but shared model bias survives both calls. Event grouping reduces repetition, while a bad merge can hide a distinct story. Heat measures configured attention, not truth or importance.
The calibration guide recommends labeling 100 to 200 examples ourselves, including difficult cases, and reserving some for a final check. SelectBench shows mistakes and model failures. We should improve the rubric before moving thresholds and compare coverage alongside accuracy. Story-summary changes need separate human review.
That is the useful bargain: editable editorial rules, event-based reading, decaying attention, predictable daily assembly and agent-readable outputs. We still own the source choices, permissions, spending and published mistakes.
Fact-check notes and sources
All sources read 2026-10-21 UTC. Repository snapshot: a0d1e75b00ede7e503ca948e71a468db964b2df2.
- AIHOT README, NOTICE and repository metadata: purpose, branding, setup and repository figures. Commit history and releases: commit count and absence of releases.
- Sources, thresholds, selection, heat code, schedule and deployment: counts, numbers and mechanics.
- Live AIHOT and machine guide, observed 03:32 UTC; pay.news About, agent guide, llms.txt, hot topics, latest daily, RSS and Terms, observed 03:32 UTC: public offerings and stated policies. No installation or independent content-accuracy benchmark was performed.
- Comparison rows cite each repository. GitHub repository API metadata and each README were read on the same date; license qualifications are explained above. These are documentation comparisons, not deployment tests.
Related reading
- RSS and JSON Feed from the same content
- Running our own email digest
- What held up when making websites agent ready
- llms.txt and keeping its mirror consistent
This post is informational, not legal, financial or investment advice. Every product and company named is mentioned under nominative fair use. We are not affiliated with AIHOT, its author, pay.news or Dogpay. No other affiliation or endorsement is implied.