The daily AI radar you can audit.
Read the day's meaningful events, explore five transparent boards, or start with the beginner picks.
Original sources, explainable scores and six months of history. Open it and start reading.
⚡ Zero servers (GitHub Actions + Pages) · 🔍 A score you can audit · 🔗 Cross-source resonance · 🧠 183-day memory · 🔑 Bring-your-own-key AI · 🌏 English / 中文
▶ Open today's radar — nothing to install, no account
English · 简体中文
Read now · Beginner picks · Subscribe · Quick start · Features · Any topic · Deploy · MCP & API · FAQ · Contributing
Most AI digests are a feed that someone (or some model) picked for you. You can't see why an item made the cut, you only see one source at a time, and yesterday is gone. AI Resonance does it differently:
- A score you can check. Every rank has a published formula: named signals, weights, caps and curves in
config.yaml. Tap any score bar to see raw value, normalised value and points. An LLM may write a blurb. It never decides the rank. - Cross-source resonance. When the same repo, paper or launch shows up on GitHub, arXiv, Hacker News, X/Reddit and a lab's own blog on the same day, those items are linked into one cluster and shown first. Open the original sources to compare what each report supports.
- Half a year of memory. Every item keeps 183 days of history: first seen, days on board, streak, best rank,
NEW/▲3/▼1/BACKbadges and a sparkline. You can tell a one-day spike from a sustained trend.
It runs entirely on GitHub Actions and GitHub Pages. There is no backend, database or account. Daily explanations can be pre-generated by the pipeline; optional personal AI tools run in your browser with your own keys. Change YAML to adapt the daily sources and topic; the AI beginner catalogue is maintained separately.
Open the daily radar · Beginner picks · Subscribe
The beginner library always shows 100 resources: 30 resident picks and 70 dynamic recommendations. Search by keyword and type, switch between resident and dynamic picks, or filter recent entries.
Reading, Atom subscriptions, follow controls, bookmarks and reading-library backup need no key or account. A site operator can pre-generate bilingual explanations with a pipeline LLM key; coverage is shown honestly when explanations are unavailable. Deploy only if you want to run your own edition.
- Five boards, top 10 each (plus 10 runners-up): Repos, Papers, Hacker News, Social (X + Reddit) and Labs (official AI-company updates). One shared, rule-based category bar (release · product · research · tool · engineering · discussion · industry · policy) filters all of them.
- Transparent heat score. Signals, weights, caps and curves live in
config.yamland are published with the data. The How scoring works page shows the live weights and has a calculator. Ties break deterministically. - Resonance clusters. Entity keys (
gh:owner/repo,arxiv:2609.20804,hn:…,rd:…,x:…,url:…) are pulled from URLs, abstracts, READMEs and posts and joined into a graph. Echo counts in the score only as visible signals (hn_echo,paper_echo,echo), never as a hidden multiplier. - 183-day trend memory. Badges, streaks, best rank, sparklines and full rank history. Change a weight and the next run re-scores the whole half-year, so history always follows today's rules.
- Honest source status. Each board shows a chip when a source is degraded, failed or stale, instead of silently showing less.
- Read the event first. A compact header distinguishes the latest complete edition from Live. Event cards show short summaries and group clear reports of the same event; casual conversation and promotions stay out of these picks without changing the five heat boards. Item details put the content before an expandable score breakdown.
- Pick up where you left off. Follow a project or company from its details, save an item, queue it for later or mark it read/unread. Event updates distinguish added sources from changed content. The local reading library exports to JSON and previews imports before merging them with existing saves.
- Reads like a newspaper. "Newsprint": ink on warm paper, serif headlines, the boards set as ruled columns, one
vermilion for what matters; a warm charcoal night edition in dark mode. No glass, glow or gradients, no sparkle icons:
trends, resonance and categories are short words, and the score is a thin printed rule. Dark and light modes follow
your system. Two alternate presets (
titanium, a neutral sans-serif look, andterminal), plus accent, density, font size, reduced motion, custom CSS and theme import/export. The visual spec is in docs/VISUAL.md. - Phone and desktop. A front-page grid on desktop, one swipeable board at a time on a phone, a bottom tab bar,
keyboard shortcuts (
/search,[]previous/next edition). Installable as a PWA. - Bilingual, with visible coverage. English and Chinese UI, plus operator-generated blurbs, "why it matters", essence points and daily briefs when configured. The page shows how many items have explanations and any known generation issue. Missing copy falls back to the original; readers need no key, and source links remain available.
- Archive and weekly. A calendar heat-map of the retention window where any day opens again, ISO-week recaps, and "longest on the boards".
- Search that fits your habits. Archive search runs offline in your browser (English prefix and Chinese substring matching, filters for board, date, score and resonance). The Web tab opens Google · Bing · Baidu with one tap. The default follows the UI language: Bing for Chinese, Google for English, and you can change it. Add a Tavily, Serper, Bocha, Jina or Firecrawl key, a self-hosted SearXNG, or any JSON search API (URL/body templates and dot-path result mapping), and results show inside the app and can feed summaries.
- Model manager. Presets for Anthropic, OpenAI, DeepSeek, OpenRouter, Gemini, Qwen, GLM, Kimi, SiliconFlow, xAI, Mistral, Groq, Ollama and LM Studio, plus any OpenAI-compatible or Anthropic endpoint. It fetches the model list and matches live $/1M-token prices from a daily catalogue (models.dev, with LiteLLM as fallback). You can override any price.
- Thinking effort. One dial (
default · off · minimal · low · medium · high · xhigh · max) is translated into each vendor's own request fields and limited to the levels the model supports. - "Is this worth my time?" in one click. Your model streams a verdict card: TL;DR, three key points, who should care, caveats, and Dig in / Bookmark / Skip. Context is gathered in your browser (README, abstract, article text, top HN or Reddit comments). You see the estimated cost before and the actual cost after. Results are cached.
- Credential vault. One place for LLM, search, reader and GitHub keys: session-only, on-device, or on-device and encrypted (AES-GCM-256, PBKDF2-SHA256 with 310 000 iterations, auto-lock). Keys are masked, never exported by default, and there is a "wipe everything" button.
- Website on GitHub Pages (or a custom domain, or Cloudflare Pages).
- Interactive report export. One self-contained
.htmlfile for an edition, a week or a custom range of up to 31 days: board tabs, category chips, a text filter, language and theme switches, optionally your own summaries. It works offline and fromfile://, and prints cleanly. The site also hosts reports for the newest 14 editions and 8 weeks. - Scheduled e-mail through GitHub Actions. Daily, weekly or both, at your local time, from your own mailbox (QQ, 163, Gmail, any SMTP) or Resend. The mail carries the brief and the top 5 per board, with the report linked and attached. Set it up from Settings › Delivery with a token scoped to your repository. No workflow edits needed.
- Subscribe without an account. The subscription page provides Chinese and English Atom links to copy into your feed reader, alongside the Markdown digests. Scheduled e-mail remains an optional setup for the owner of a deployed copy.
- Share an event. Use your device's share menu or copy a link. Dated event and edition links have static summary pages with preview metadata and original sources. Download an image card generated in your browser as PNG, with SVG fallback when PNG export is unavailable.
-
MCP server (stdio) with six tools: today's boards, archive search, entity history, resonance clusters, weekly recap and a ready-to-quote digest. Settings › Channels shows a copy-paste config with your site's URL filled in. To try it against the public instance from a local clone:
claude mcp add ai-resonance --env RESONANCE_API=https://wzznne.github.io/AI-Resonance/api/v1 -- node <clone>/packages/channels/src/mcp.ts
-
dsh tool seam. The same tools as raw JSON-Schema definitions for dsh plugins.
-
Static JSON API at
/api/v1:manifest.json,daily/<date>.json,live.json,weekly/<week>.json,entities/…,search/index.json,pricing.json,report/…,digest.md,feed.xml, plusllms.txt, and a typed client (createClient) in@resonance/channels. -
Pluggable web app. Features register routes, settings tabs, card actions and commands through one registry. Recipes for new sources, lab sites, languages, search engines and LLM presets are in CONTRIBUTING.md.
norm = min(1, curve(raw) / curve(cap)) curve: log (= ln(1+x)) · sqrt · linear
points = norm × weight / Σ weights × 100
total = Σ points (packages/schema/src/score.ts)
A real example from the published data: the Hacker News story "An empirical study of harness design for coding agents", #2 on its board with 68.8:
| Signal | Raw | Curve · cap | Norm | Points |
|---|---|---|---|---|
points: HN points at the latest reading |
205 | log · 800 | 0.797 | 31.9 / 40 |
comments: HN comments |
57 | log · 400 | 0.677 | 10.2 / 15 |
velocity: points per hour since posting |
12.6 | sqrt · 60 | 0.458 | 9.2 / 20 |
echo: other boards its resonance cluster reaches |
1 | linear · 2 | 0.5 | 7.5 / 15 |
relevance: how squarely on-topic |
1 | linear · 1 | 1 | 10.0 / 10 |
| Total | 68.8 |
The echo points come from the paper behind the story, which is also on the Papers board that day. That link is what
puts both items into one resonance cluster. Every board has its own signal set; see the How scoring works page or
boards: in config.yaml.
| Board | Answers | Sources | Window |
|---|---|---|---|
| Repos | Which AI repos are builders starring? | GitHub Trending + GitHub Search API | star gain between two edition cutoffs |
| Papers | Which new papers are worth reading? | Hugging Face Daily Papers, arXiv, journal feeds (Nature MI, JMLR, JAIR) | edition |
| Hacker News | What are hackers discussing? | Algolia HN API | edition (story time) |
| Social | What are labs, key people and AI communities saying? | 11 AI subreddits; X: 17 official lab accounts free, the full 32-account watch list with an API key | edition (post time) |
| Labs | What did AI companies officially ship? | blogs, changelogs, release notes and GitHub/HF releases of 11 companies (Anthropic, OpenAI, Google, DeepSeek, xAI, Zhipu, Kimi, Qwen, Meta, Mistral, MiniMax) | 7-day look-back, NEW inside the edition |
Details and limits for every source: docs/SOURCES.md.
An edition is a fixed time window, by default one full US-Pacific day: [00:00, 24:00) America/Los_Angeles (DST
days are correctly 23 or 25 hours). Each timestamped item (HN story, Reddit or X post, lab post, arXiv paper) is filed
under the edition its own publish time falls in. GitHub star gains are measured between two cutoffs. While an edition
is open, the site shows it as Live. At the cutoff it closes. settleHours later (8 by default) engagement is read
again, so late posts are judged fairly, and the edition is marked settled. Prefer a Beijing or New York day? Set
edition.timezone (and optionally cutoff) in config.yaml.
You need a GitHub account. Nothing else.
-
Create your copy. Click Use this template → Create a new repository and leave "Include all branches" unticked. (A fork works too, but forks start with Actions disabled.)
-
Turn on Pages. In your copy: Settings → Pages → Build and deployment → Source: GitHub Actions.
-
Point the config at your copy. The shipped
config.yamlnames this project and its demo site. In your copy, setsite.repoUrlto your repository URL andsite.siteUrlto''(CI then derives your Pages URL). -
(Optional) Add secrets under Settings → Secrets and variables → Actions:
Secret Turns on Notes RESONANCE_LLM_API_KEY(+RESONANCE_LLM_BASE_URL,RESONANCE_LLM_MODEL)bilingual blurbs, "why it matters", essence points, daily and weekly briefs any OpenAI-compatible endpoint; default https://api.deepseek.comwith the model inconfig.yaml › enrichX_BEARER_TOKENthe whole X watch list through the official API picked up automatically ( provider: auto); without it only lab accounts are read, freeTWITTERAPI_IO_KEY·SOCIALDATA_API_KEYX through a cheaper unofficial provider see the X row under costs REDDIT_CLIENT_ID+REDDIT_CLIENT_SECRETReddit with real votes and comment counts needs an app Reddit has approved; otherwise RSS MAIL_TO+SMTP_USER+SMTP_PASS(orRESEND_API_KEY)scheduled e-mail plus the variable RESONANCE_MAIL(schedule as JSON); easier: let Settings › Delivery in the app write all of them -
First run. Actions → Daily → Run workflow. It creates the
databranch, collects every source, publishes and deploys. The first run can take up to half an hour, mostly waiting on Reddit's RSS (about one request a minute). Your radar is then live athttps://<your-name>.github.io/<repo>/and refreshes itself every three hours.
Exact menu paths, custom domains, Cloudflare Pages, e-mail setup and backfilling history: docs/DEPLOY.md.
The AI-specific parts are just data in config.yaml: keywords, GitHub topics, arXiv categories,
journal feeds, subreddits, X accounts and companies. Swap them and you have a daily radar for anything with GitHub
repos, papers and a community. A Rust radar, for example (edit these keys in place; keep every sources.* block):
site:
name: Rust Resonance
topic:
strongKeywords: [rust, rustlang, cargo, tokio, wasm, webassembly]
weakKeywords: [async, compiler, borrow, crate, memory safety]
githubTopics: [rust, rust-lang, tokio, wasm, webassembly]
domains: [rust-lang.org, blog.rust-lang.org, this-week-in-rust.org]
sources:
arxiv: { enabled: true, categories: [cs.PL, cs.SE] }
reddit: { subreddits: [{ name: rust }, { name: learnrust, weight: 0.6 }] }
labs: { enabled: false, companies: {} }The same file sets the score weights per board, the edition timezone, the retention window, the default theme and the e-mail defaults. Scoring changes re-rank the whole history on the next run. Full reference and recipes: docs/CUSTOMIZE.md.
Node ≥ 22.18 (24 recommended) and pnpm 11 (pinned in package.json).
pnpm i # install
pnpm daily # collect → file into editions → rank → publish into ./data and packages/web/public/api/v1
pnpm dev # web app with hot reload on http://localhost:5173 (reads what `pnpm daily` published)
pnpm build # production build → packages/web/dist
pnpm start # built site + live API + CORS relay on http://127.0.0.1:4173 (run `pnpm build` first)
pnpm check # pnpm lint + pnpm typecheck + pnpm test (Biome, tsc, Vitest), the same gate CI runs
pnpm pipeline --help # run · publish · serve · backfill · doctor
pnpm pipeline doctor # check Node, config.yaml, data, every source endpoint and optional keys
pnpm mcp # MCP server on stdio; needs RESONANCE_API (a URL) or RESONANCE_DIR (a folder)
pnpm mail --dry-run out --dir ../web/public/api/v1
# render the e-mail and the report into packages/channels/out/ instead of sendingPass options straight after the script name, without a -- separator (pnpm 11 would forward the -- and the CLIs
reject it). Set GITHUB_TOKEN locally, since unauthenticated GitHub allows only 60 requests an hour. Every environment
variable is listed in .env.example.
config.yaml the one file a copy edits: topic, sources, weights, edition window, theme, e-mail defaults
packages/schema data contract: types, entity keys, score maths, date helpers (zero dependencies)
packages/pipeline sources → classify → link → editions → score + resonance + trend → enrich → publish
packages/web static PWA (Vite + Preact): boards, resonance, archive, search, BYOK AI, vault, themes, export
packages/channels API client, MCP server, dsh seam, report renderer, scheduled e-mail
.github/workflows daily.yml (collect + deploy) · mail.yml (e-mail gate + send) · ci.yml (check + build)
docs/ DESIGN · VISUAL · ARCHITECTURE · SOURCES · CHANNELS · DEPLOY · CUSTOMIZE · VERIFIED
| What | Cost | Limits you will notice |
|---|---|---|
| Site, pipeline, e-mail sending | free in a public repo | In a private repo on the Free plan (2 000 min/month), the half-hourly mail check alone bills about 1 440 minutes a month. Keep the repo public, or disable the Mail workflow if you don't use e-mail. |
| Pipeline LLM copy (optional) | your provider's price | Each item is written once (cached by text hash), at most enrich.maxItemsPerRun per run. Without a key, cards show source text and there is no brief. |
| X | free for lab accounts; about $20–30/month for the full 32-account list on the official API | The free feed (syndication) is undocumented and only fresh for business-verified organisation accounts, so personal accounts need a key. twitterapi.io / SocialData cost about $3–10/month but are unofficial. monthlyUsdCap and maxPostsPerRun cap spending; also set a limit in console.x.com. X posts linked from HN, Reddit or lab pages are shown free. |
| free | Without OAuth, Reddit is read over RSS: about 1 request/minute, no vote counts (posts rank by position in each community's Top-Today list, and the card says so), fetched at most every 6 h. Reddit sometimes blocks GitHub's runner IPs; the board then keeps its last good picks, marked stale. | |
| Labs | free | x.ai blocks datacenter IPs with bot protection, so it is read through the r.jina.ai reader and marked degraded. China-hosted sites can be slow. Hugging Face and GitHub releases back up model launches. |
| Schedule | free | GitHub cron often runs 15 min to 2 h late and may drop runs at busy times. The pipeline decides from the clock, so late runs don't break anything. Mail has a 4-hour grace window. |
| Keep-alive | free | GitHub disables scheduled workflows after 60 days without activity in a public repo. Both workflows re-enable themselves every Monday; if one was disabled anyway, re-enable it in the Actions tab. |
| BYOK summaries and search | your own keys and prices | The summary sheet shows the estimated cost before a run and the actual cost after it. |
- The site ships no secrets. No backend, analytics, cookies or accounts: static files plus JSON.
- Your reading library stays local. Bookmarks, read state and follows stay in this browser. Explicit JSON export/import moves them between browsers; it is separate from ordinary settings backup and does not upload your library.
- Your keys stay in your browser. Summaries, model lists and search call the provider directly from your browser. All major hosted LLM providers allow this (CORS), so no proxy ever sees your key. A key is only sent to the endpoint it belongs to, and is never logged or exported by default.
- Vault. Each key lives where you choose: in memory for the session, in device storage, or in device storage encrypted with a passphrase (AES-GCM-256, PBKDF2-SHA256, auto-lock).
- Shared
github.ioorigin. All project pages of one GitHub account share a browser origin. Use your own copy for BYOK (not someone else's demo) and prefer encrypted mode, or deploy to a custom domain or Cloudflare Pages. - Untrusted text stays text. A strict CSP (
script-src 'self') applies. Titles, posts and LLM output render as text; the Markdown renderer is a safe subset with no raw HTML. Report files carrydefault-src 'none'and make no network requests. - Pipeline secrets live in GitHub Actions secrets and are used only by the Daily and Mail jobs. Mail addresses are masked in logs and never written to published files.
- Delivery tab. Uses a fine-grained token for your repository only, stored in the vault. Mail secrets are encrypted in the browser (libsodium sealed box) before upload; the page can write them but never read them back.
- Local relay (
pnpm start) listens on 127.0.0.1 only, forwards https to an explicit host allow-list, refuses private addresses and never forwards cookies.
How is this different from GitHub Trending or an AI newsletter? Trending pages show one source and forget yesterday. Newsletters are curated by a person or a model you can't audit. AI Resonance reads many sources, links what they have in common, ranks with a formula you can inspect, and keeps six months of history.
Does an LLM pick the stories? Daily heat ranks are calculated from published signals. With a key, an LLM writes
blurbs and the brief. Brief bullets must cite board#rank, and invalid citations are dropped. Event picks apply additional relevance rules; the beginner library uses the separate learning scores described above.
Why does the Social board show mostly Reddit? Without a key, X is read through a free feed that only covers the
official lab accounts. Add X_BEARER_TOKEN and the next run switches to the official API for the whole watch list.
X posts linked from HN, Reddit or lab pages always appear, free.
Why does a Reddit card say "ranked by position" instead of showing votes? Reddit's RSS carries no vote or comment counts. The score then uses the post's place in its community's Top-Today list, and the card says so instead of showing zeros.
Why does the Labs board show posts from earlier in the week? Official posts are sparse, so Labs looks back 7 days
and lets older posts fade (freshness halves every day). Posts from this edition are marked NEW.
Why is an edition marked preliminary? It has closed but not settled yet: engagement is re-read settleHours after
the cutoff. An e-mail sent before that carries the same banner.
Can I use a local model? Yes, with the Ollama and LM Studio presets. Ollama needs OLLAMA_ORIGINS set to your
site's origin; LM Studio needs "Enable CORS". Safari and iOS block plain-http loopback from an https page, so there run
pnpm start and open http://127.0.0.1:4173.
How do I plug in my own SearXNG? Pick the SearXNG engine in Settings › Search and enter its base URL. On the
SearXNG side, enable the json format and send an Access-Control-Allow-Origin header.
Why is there no Bing API engine? Microsoft retired the Bing Web Search API on 2025-08-11. Bing and Baidu open as normal search pages in a new tab.
I didn't get the e-mail. Check spam, then the repository's Issues: a failed send opens an issue labelled
mail-failure with the error. Actions → Mail → Run workflow with test ticked sends one immediately.
How big does the repository get? The data branch keeps at most 60 raw candidates per board per edition and drops
snapshots older than 183 days, so a few MB. Everything under /api/v1 is rebuilt from it on every run.
2026-10-23 · A new look, "Newsprint": a daily paper instead of a glass dashboard
Readers kept saying the interface looked machine-made. The redesign trades the glass dashboard for a printed page:
- Ink on warm paper with one vermilion, serif headlines over a sans for reading, and a warm charcoal night edition.
- The front page is set like a newspaper: the date as a masthead over a dateline, the brief as the lead story beside the events at a glance, the five boards as ruled columns.
- No frosted glass, glows, gradients, pointer lights, scan lines or entrance animations, and no sparkle icons. Trends, resonance and categories are short words; the score on each row is a thin printed rule (the coloured breakdown stays in the item's details).
- Plainer copy: footnotes say what they mean, and the Chinese UI calls the AI summary "AI 解读".
- The exported report and the e-mail follow the same look.
paperis the new default preset;titaniumstays as a neutral sans-serif alternate (now flat),terminalis unchanged. - The initial download got smaller (92.9 → 88.0 KB gzip).
2026-09-21 · Beginner library: 100 resources (30 resident + 70 dynamic picks), clearer edition labels, subscription page
The library always shows 100 resources: 30 resident picks plus 70 dynamic recommendations. Dynamic selection is reconsidered daily; resources need not be newly published, and useful selections stay when no better candidates qualify.
- Removed historical launch news, specialist mathematics/research textbooks and duplicate repository/tutorial entry points. A few older foundations can remain when they still help users understand current tools.
- Dynamic selection considers useful AI tools, repositories, tutorials and official releases regardless of age. Ordinary research papers, rants, hiring, funding and promotions are excluded. A reviewed starter pool and retained candidates keep all 70 slots filled while later resources compete on value.
- Residents can be replaced. Rank all eligible candidates without reserved seats and use the 100th item's score as the daily threshold. A resident strictly below it can be replaced by the highest-scoring eligible resource that appeared in the dynamic 70 during the preceding 30 days and is not already resident. Equal scores do not trigger replacement.
- Source publication or repository update dates stay separate from entry dates. Recrawling old material does not make it new.
NEWandBACKlast seven days and entry history survives deployment. - The page now prioritizes filters, short descriptions and source links. Long selection explanations, per-item recommendations and scoring details have moved out of the reading interface.
This revision retains 40 entries from the original catalogue and replaces 60, including all 15 original research papers and five historical launch stories, plus specialist or duplicate courses, textbooks and low-level library entries. New resources cover document Q&A, PDF/OCR, subtitles, speech, coding, workflows, visual creation and presentations. Examples include Claude Code, n8n, Docling, PaddleOCR, Subtitle Edit, Codex and Cherry Studio, plus ten official Chinese-language tool entry points. Paper and news categories may initially be empty; suitable later resources can still enter those categories.
The default GitHub Actions workflow collects and publishes every three hours, with extra runs around the daily cutoff. The visible page checks for updates every five minutes and supports manual refresh. This is scheduled refresh, not instant push. Initial resources receive editorial maintenance; dynamic selection and resident replacement use disclosed rules rather than individual editorial review. Missing translations fall back to the source text.
Internal learning scores combine foundation, clarity, practice and authority, each 0–5, multiplied by five. They support stable ordering and represent editorial/rule-based judgments, not popularity or measured learning outcomes. Monthly replacement uses the mean score on days a resource appeared in the dynamic selection during the past 30 days, recording each day once; ties compare current score, latest appearance and stable ID. Both a replacement's current score and monthly mean must exceed the displaced item's score. Missing days receive no invented scores; one observed day is enough to compete. The update rescreens cached candidates while preserving entry history. See data and implementation notes.
The daily reader also gains clearer edition labels, content-first details, one-click follows, reading-library migration and a dedicated subscription page. Sharing now offers static preview pages and downloadable image cards. Explanation coverage and event changes are visible, so you can tell missing copy from missing source data. Details are in the feature tour.
- Ready-made topic presets (
config.yamlvariants for Rust, robotics, security …). - More lab sites and journal feeds, contributed as small recipes.
- Reddit OAuth verified from GitHub's runners, for real vote counts.
- More UI languages (a language is one dictionary file).
- A long-running public demo with months of history.
Ideas and votes are welcome in Issues.
Bug reports, new sources, lab recipes, translations and design polish are all welcome. Start with
CONTRIBUTING.md (setup, dev loop, conventions and step-by-step recipes). The architecture is
described in docs/ARCHITECTURE.md, the product contract in docs/DESIGN.md
and the visual language in docs/VISUAL.md. Please run pnpm check before opening a pull request.
If AI Resonance saves you time, a star helps other people find it.
MIT. Data comes from GitHub, arXiv, Hugging Face, journal feeds, Hacker News, Reddit, X and the AI companies' own sites, under their respective terms. Model prices come from models.dev and LiteLLM (both MIT).











