By heurema
Daily curated news digest for your domain. One command to set up, zero API keys, works offline after first fetch.
Add a news source (URL or topic keywords) to your herald config
Read today's curated news digest
Set up herald daily digest pipeline
Manually trigger herald news collection and analysis
View and manage your herald news sources
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
__ __ __
/ /_ ___ _________ _/ /___/ /
/ __ \/ _ \/ ___/ __ `/ / __ /
/ / / / __/ / / /_/ / / /_/ /
/_/ /_/\___/_/ \__,_/_/\__,_/
Local-first news intelligence for AI agents.
Collect, cluster, and rank news from RSS and Hacker News — all locally, no API keys, no cloud.
Herald collects articles from RSS feeds and Hacker News, deduplicates by URL, clusters related articles into stories using title similarity, scores them by source weight and recency, and generates a ranked Markdown digest — all locally, no API keys, no cloud.
The pipeline: collect → ingest → cluster → project.
RSS/Atom feeds ─┐
├─→ articles ─→ stories (clustered) ─→ scored brief
HN Algolia API ─┘
claude plugin marketplace add heurema/emporium
claude plugin install herald@emporium
git clone https://github.com/heurema/herald
cd herald
pip install httpx fastfeedparser pyyaml
Then symlink or copy the plugin directory into Claude Code's plugin path and run /news-init.
/news-init # creates ~/.herald/ with config and database
/news-add <url> # add an RSS feed
/news-run # collect, ingest, cluster, generate brief
/news-digest # read the latest brief
| Command | What it does |
|---|---|
/news-init | Create data directory, config template, and database |
/news-add <url> | Add an RSS/Atom feed — auto-discovers feed URL |
/news-sources | View all sources grouped by category |
/news-sources remove <name> | Remove a source from config |
/news-run | Run the full pipeline manually |
/news-digest | Read the latest brief with 5-section analysis |
/news-status | Show article/story counts and last run time |
/news-stop | Show cleanup options |
Herald v2 uses a 4-stage pipeline with SQLite storage:
SequenceMatcher title similarity with 4 merge guards (threshold, time gap, title length, version/number conflict). Canonical article re-election with hysteresis.sources → articles → mentions (cross-source)
→ article_topics
→ story_articles → stories → story_topics
source_weight + min(points/500, 3.0) + keyword_density * 0.2 + release_boostmax(article_scores) + log(source_count) * 0.3 + momentumConfig: ~/.herald/config.yaml
sources:
- id: hn
name: Hacker News
type: hn # hn | rss | tavily
weight: 0.3
category: community
- id: simonw
name: Simon Willison
type: rss
url: https://simonwillison.net/atom/everything/
weight: 0.25
category: community
topics:
ai_agents:
keywords: [agent, agents, agentic, tool use, mcp]
ai_models:
keywords: [claude, gpt, gemini, llama, llm]
clustering:
threshold: 0.65 # title similarity threshold
max_time_gap_days: 7 # max days between clustered articles
schedule:
interval_hours: 4
~/.herald/
├── config.yaml
├── herald.db # SQLite database
└── briefs/
└── {run_id}.md # generated briefs
httpx, fastfeedparser, pyyamlHerald fetches only public RSS feeds and the HN Algolia API. All data stays on your machine under ~/.herald/. No telemetry, no cloud sync. Optional Tavily adapter requires a free API key but is not needed for core functionality.
Found a bug? All heurema plugins ship with Reporter - file issues without leaving Claude Code:
claude plugin install reporter@emporium
/report bug
npx claudepluginhub heurema/heraldEvidence-driven development pipeline with multi-model code review
Multi-AI orchestrator — dispatch to Codex CLI and Gemini CLI for review, ask, implement, panel, quorum, continue, diverge, and doctor modes. Diverge generates 3 independent implementations in isolated worktrees with different strategy hints, then compares and selects the best solution. Doctor checks provider health and reports partial success when some providers are unavailable.
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Memory compression system for Claude Code - persist context across sessions
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Write feature specs, plan roadmaps, and synthesize user research faster. Keep stakeholders updated and stay ahead of the competitive landscape.