A macOS app that transforms RSS news feeds into an interactive knowledge graph, enabling semantic search and multi-hop reasoning across your news sources.
NewsComb retrieves articles from your RSS feeds and uses LLM-powered extraction to build a semantic hypergraph — a knowledge graph where entities (companies, people, products, technologies) are connected by relationships extracted from the news.
- RSS Feed Aggregation: Subscribe to multiple tech news feeds and automatically fetch new articles
- Knowledge Graph Construction: Extract entities and relationships using configurable LLM prompts
- Vector Search with sqlite-vec: Embeddings are stored locally using sqlite-vec, enabling fast cosine similarity search without external dependencies
- Multi-hop Reasoning Paths: Answer questions by traversing the hypergraph to find connections between concepts, even when they aren't directly linked
When you ask a question, NewsComb doesn't just search for keywords — it finds reasoning paths through the knowledge graph. For example, asking about AI chip competition might reveal paths like:
NVIDIA → competes with → AMD → partners with → Microsoft → invests in → OpenAI
These multi-hop connections surface relationships that wouldn't appear in a simple text search.
The "Dive Deeper" feature uses a multi-agent workflow to synthesize insights with academic-style citations and generate hypotheses for further investigation.
- Download the latest DMG from Releases
- Open the DMG and drag
NewsCombApp.appto your Applications folder - Eject the DMG
Since the app is not signed with an Apple Developer certificate, macOS will block it on first launch.
To open the app:
- Try to open
NewsCombApp.app— macOS will show a warning that it cannot verify the developer - Open System Settings → Privacy & Security
- Scroll down to find the message "NewsCombApp.app" was blocked to protect your Mac
- Click Open Anyway
- macOS will ask you to confirm twice more — click Open each time
After this one-time setup, the app will open normally.
A workspace is a folder on disk that holds the SQLite database and any side artifacts for one knowledge base. NewsComb supports multiple workspaces so you can keep, say, a "Tech News" workspace separate from a "Confluence" workspace. Each workspace has its own settings, feeds, articles, knowledge graph, and theme clusters.
~/Documents/NewsComb-Workspaces/Tech/
newscomb.sqlite ← all data and settings for this workspace
NewsComb picks the active workspace on launch using the first match it finds:
--workspace <path>command-line argumentNEWSCOMB_WORKSPACEenvironment variable- The last workspace you opened (remembered in
UserDefaults) - The legacy database at
~/Library/Application Support/NewsComb/newscomb.sqlite, if present (existing installs migrate seamlessly) - A first-run picker sheet — Create New Workspace or Open Existing
- File → New Workspace… (⇧⌘N) — pick or create a folder. When the folder is brand-new, the current workspace's settings (LLM provider + API keys, embedding model, prompts, algorithm parameters) are copied into the new one so you don't have to reconfigure. Feeds are not copied — the new workspace starts empty so you can pick feeds appropriate to its domain.
- File → Open Workspace… (⇧⌘O) — open an existing workspace folder. No settings copy — the target's own settings are used.
- File → Open Recent Workspace — last 10 workspaces.
- File → Reveal Workspace in Finder.
- Settings → Workspace — shows the active path, a Switch Workspace… button, and an Open Default Workspace button that returns to the legacy
~/Library/Application Support/NewsComb/location.
Switching workspaces relaunches the app so each workspace gets a clean process state. NewsComb refuses to switch while long-running jobs (knowledge graph processing, RSS refresh, OPML import, theme clustering, etc.) are in flight — wait for them to finish or cancel them first.
| Scope | Location | Examples |
|---|---|---|
| Workspace | app_settings table inside each workspace's newscomb.sqlite |
LLM model, embedding dimension, RAG params, feeds, themes |
| App-global | UserDefaults |
last-opened workspace, recent workspaces list |
NewsComb uses on-device Nomic embeddings by default for the knowledge graph — no external service required. Alternatively, you can select an OpenRouter embeddings model in Settings.
NewsComb uses two separate LLM configurations:
- Knowledge Extraction LLM — Used to extract entities and relationships from articles when building the knowledge graph
- Analysis LLM — Used for answering questions ("Ask Your Knowledge Graph") and deep analysis ("Dive Deeper")
Both can be configured independently in Settings, allowing you to use different models for each task.
- Create an account at OpenRouter
- Generate an API key
- In NewsComb Settings:
- Knowledge Extraction: Select OpenRouter and use
meta-llama/llama-4-maverick - Analysis: Use the same model or a stronger one (e.g.,
openai/gpt-5.2for more nuanced reasoning)
- Knowledge Extraction: Select OpenRouter and use
The Llama 4 Maverick model provides an excellent balance of speed and quality for entity extraction. For analysis, you may want a more capable model if you need deeper reasoning, but Maverick works well for most use cases.
You can run LLMs locally with Ollama, but this will be significantly slower:
ollama pull qwen2.5:14bThen select Ollama as the provider in Settings and use qwen2.5:14b as the model for both extraction and analysis.
NewsComb includes a built-in Model Context Protocol (MCP) server that gives AI assistants read-only access to your knowledge graph. This lets tools like Claude Code and Claude Desktop search concepts, explore relationships, discover reasoning paths, and run full RAG queries — all backed by your local database.
| Tool | Description |
|---|---|
query_knowledge_graph |
Full RAG pipeline: keyword extraction, vector search, BFS reasoning paths, context assembly |
search_concepts |
Full-text search for entities/concepts in the knowledge graph |
search_chunks |
Full-text search over article text chunks |
get_node_neighbors |
Explore relationships connected to a concept |
find_paths |
Discover multi-hop reasoning paths between two concepts |
get_themes |
Browse HDBSCAN-discovered story theme clusters |
get_theme_details |
Detailed view of a specific theme (entities, exemplars, articles) |
get_statistics |
Knowledge graph counts (nodes, edges, articles, embeddings) |
get_recent_articles |
List recently ingested articles from RSS feeds |
The MCP server runs inside the app process and listens on http://127.0.0.1:63548. A lightweight bridge CLI (newscomb-mcp-bridge) translates between Claude Code's stdio protocol and the app's HTTP endpoint — the same pattern Xcode uses with its mcpbridge.
Claude Code ←stdio→ newscomb-mcp-bridge ←HTTP→ NewsCombApp (localhost:63548)
The app must be running before Claude Code connects (just like Xcode).
cd NewsCombMCPBridge
swift build -c releaseThe compiled binary will be at .build/release/newscomb-mcp-bridge.
Add the following to your project's .mcp.json file (create it in the repository root if it doesn't exist):
{
"mcpServers": {
"newscomb": {
"command": "/path/to/NewsComb/NewsCombMCPBridge/.build/release/newscomb-mcp-bridge",
"args": ["--workspace", "/Users/you/Documents/NewsComb-Workspaces/Tech"]
}
}
}The --workspace argument is optional but recommended. When set, the bridge asserts that the running NewsComb app is on the matching workspace; mismatches surface a clear JSON-RPC error rather than silently returning data from the wrong knowledge base. You can also pass the workspace via the NEWSCOMB_WORKSPACE environment variable.
You can keep a separate .mcp.json per project, each pointing at a different workspace — open the matching workspace in NewsComb (File → Open Workspace…) before starting the Claude Code session.
Add the same configuration to your Claude Desktop settings file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"newscomb": {
"command": "/path/to/NewsComb/NewsCombMCPBridge/.build/release/newscomb-mcp-bridge",
"args": ["--workspace", "/Users/you/Documents/NewsComb-Workspaces/Tech"]
}
}
}- NewsComb must be running — launch the app before starting Claude Code. The MCP HTTP server starts automatically on app launch.
- The running app must be on the workspace your
--workspacearg names (or omit the arg to skip the check). - The app must have RSS sources configured and articles fetched.
- The knowledge extraction pipeline must have processed at least some articles (check Settings for extraction status).
- All access is read-only — the MCP server cannot modify your knowledge graph or RSS sources
query_knowledge_graphuses on-device Nomic embeddings by default (or OpenRouter if configured in Settings); other tools work without embeddings- The bridge exits with an error if the app is not running
This project is inspired by and builds upon the hypergraph reasoning approach described in:
Higher-Order Knowledge Representations for Agentic Scientific Reasoning
Stewart, I.A. & Buehler, M.J. (2026). Constructing hypergraph-based knowledge representations that faithfully encode multi-entity relationships, with agentic traversal via node-intersection constraints. arXiv:2601.04878v1.
The original Python implementation is available at: lamm-mit/HyperGraphReasoning
Related work that informed the design:
- HyperGraphRAG: Retrieval-Augmented Generation via Hypergraph-Structured Knowledge Representation — Luo, H., E, H., Chen, G., et al. (2025). Represents n-ary relational facts as hyperedges with separate vector indexes for entities and hyperedges. arXiv:2503.21322v3.
- Do We Still Need GraphRAG? Benchmarking RAG and GraphRAG for Agentic Search Systems — Fan, D., Xue, Z., Liu, S., & Tan, Q. (2026). Comparative evaluation of RAG versus GraphRAG for agentic search systems. arXiv:2604.09666v1.
- GRDBCustomSQLiteBuild — Invaluable guide for integrating sqlite-vec with GRDB in Swift, enabling local vector search without external services
MIT License — see LICENSE for details.


