Intelligence reads dozens of public news sources, strips opinion and emotional language, and surfaces only what actually happened — classified, scored, and summarized in plain language. No ads. No algorithms. No subscription.
Three purpose-built views for different reading modes. Switch instantly — no page reload, all live data.
Nvidia posted $30.0B in revenue for the quarter, topping analyst expectations of $28.6B, with data center revenue accounting for $26.3B — a 154% year-over-year increase driven by H100 GPU demand from hyperscalers.
Earnings beat by 12% on data center demand. Q3 guidance came in above the Street. Analysts at Goldman and JPMorgan both raised price targets overnight. Goldman raises PT to $165. Options market pricing in ±8% move on the open.
Services revenue steady. EU Digital Markets Act compliance deadline extended to Q1. Analyst at Bernstein maintained Outperform, $220 target unchanged.
Every article passes through four gates before it reaches you. Most don't make it — which is the point.
Per-ticker Yahoo Finance RSS feeds plus dynamic Google News queries built from your watchlist. 14+ static sources run in parallel.
Whole-word keyword matching against your targets. "Golden Gate Capital" doesn't match a search for Gold. Zero AI cost at this gate.
Gemini 2.5 Flash extracts facts, opinions, entities, themes, event type, hype score, and impact score. Structured JSON every time.
Material events (earnings, upgrades, M&A) always pass. Pure opinion with negative signal is discarded. Everything else is scored.
Track any equity ticker, company, person, macro theme, or sector. Add or remove targets live — next ingest picks up the change. Portfolio tickers auto-sync from Trust.
Every article gets a Signal score: Impact − Hype. Articles with negative Signal are suppressed. High-impact, low-hype reporting rises to the top automatically.
48-hour half-life decay on Signal scores. A 2-day-old article at Impact 80 scores the same as a fresh article at Impact 40. Stale news never dominates the feed.
Gemini synthesizes the last 24 hours of articles per target into 4–8 punchy sentences. One development per sentence, facts only, leading with the most significant event.
Live earnings dates from Yahoo Finance for all tracked tickers. Today, Tomorrow, and day-of-week labels. Confirmed vs. estimated dates flagged.
AI-extracted IPO filings, S-1s, and going-public events from the news feed. Filed S-1 → Scheduled → Going Public → Priced stages. Forward-looking only — no post-IPO noise.
Interactive force-directed graph showing connections between your targets, AI-extracted macro themes, and the news sources covering them. Click any node to drill in.
Per-source pass rate, dedup rate, and average hype score. SEC EDGAR and PR Newswire consistently outperform click-bait outlets. Enable or disable any source at runtime.
Every Gemini call is logged: prompt tokens, completion tokens, thinking tokens, latency, and estimated cost in USD. Live totals shown in the header bar every session.
The scheduler fires on weekdays at 7 AM, 12 PM, and 3 PM local time. AI briefings regenerate 60 minutes after each ingest. Everything can also be triggered manually.
| Time (local) | Task | Manual command (Docker) |
|---|---|---|
| 7:00 AM | Ingest new articles from all sources | docker exec intelligence python ingestor.py |
| 8:00 AM | Regenerate AI briefings for all targets | docker exec intelligence python summarizer.py |
| 12:00 PM | Ingest new articles | Same commands |
| 2:00 PM | Regenerate AI briefings | |
| 3:00 PM | Ingest new articles | |
| 5:00 PM | Regenerate AI briefings |
The UI auto-detects when news is stale (>8 hours) and triggers a fresh ingest automatically on page load. The status bar shows the last ingest timestamp, an animated dot while running, and a countdown to the next scheduled run.
Intelligence reads RSS feeds — structured data feeds that publishers maintain specifically for automated consumption. Per-ticker feeds are built dynamically from Yahoo Finance for each equity in your watchlist. Topic targets generate dynamic Google News RSS queries. Static feeds cover the major financial outlets.
Sources can be enabled or disabled at runtime from the Analytics → Filters tab without restarting.
To add a new RSS source: open the Analytics tab, and use the Sources panel — or add it directly to
config/default_sources.json and restart the ingestor.
Everything is plain Python and SQLite. No framework magic to fight. Add a source, change the AI prompt, add a new event type, or embed the component in another app.
Use the UI (Tracking → Edit) or the REST API directly. The ingestor picks it up immediately on the next run.
Each target has a keyword list that powers the Deflector. Add synonyms, brand names, or subsidiary names to catch more relevant articles.
Any public RSS feed works. The engine resolves publisher names from the article domain automatically.
NewsView.jsx is a standalone React component. Set VITE_INTEL_API in the host app's .env to call Intelligence cross-origin.
The Gemini model, temperature, and extraction schema are all in ingestor.py and summarizer.py. Swap in any model that supports structured JSON output.
Everything lands in intelligence.db — a standard SQLite file. Use any SQLite client, pandas, or DuckDB to run your own queries.
Two prerequisites, one script.
Download from docker.com and open it. Wait for the whale icon in your menu bar to stop animating. That's it — no configuration needed.
Go to aistudio.google.com/apikey. Sign in with a Google account and click Create API key. Takes 30 seconds. No credit card required — the free tier handles most personal installations.
The script prompts for your API key, builds the Docker container, and starts the service. First build: 2–4 minutes. After that, starts take under 5 seconds.
Navigate to http://localhost:8001. Click ✎ Edit in the Tracking panel. Type a ticker like AAPL or a topic like Gold and press Enter.
Articles appear in 1–2 minutes. The scheduler takes over from here — you won't need to run this again manually unless you want fresh news right now.
Prefer to run natively without Docker? See INSTALL_NO_DOCKER.md for the Python virtual environment setup. Requires Python 3.11+ and Node.js 18+.