ThariqS/ai-newtab

Claude generates a daily new tab page based on your browser history.

TL;DR

AI Homepage is a Chrome‑extension that replaces the new‑tab page with a personalized, AI‑written summary of the sites you actually visit. It reads up to eight of your recent pages, sends a short summary plus the cleaned HTML to Claude (via your own Anthropic API key), and the model generates a React‑based homepage in whatever style you describe.


What it does (in plain language)

  1. Collects a tiny slice of your browsing history – just the top domains, visit counts and a few page titles.
  2. Opens the most‑relevant pages (up to 8) in the background, strips out the HTML, and hands those files to an Anthropic Claude agent.
  3. Claude reads the pages, extracts headlines, links, and any other content you asked for, then writes a single React component that becomes your new‑tab page.
  4. You see a fresh homepage every time you open a new tab – it can look like a newspaper, a minimalist list, a dashboard, or even a green‑on‑black terminal, depending on the prompt you give in the Settings panel.
  5. Rebuilds automatically (every 6‑48 h by default) or on demand, always using a fresh agent session tied to your own API key.

Who might find it useful?

  • Power users who want a quick, personalized digest of the web they actually read, without opening each site manually.
  • Developers / AI hobbyists interested in a concrete example of Claude Managed Agents running inside a browser extension.
  • Privacy‑conscious folks who like the idea of a local, self‑hosted AI tool that never stores data on a third‑party server (the only data that leaves the browser is the minimal summary sent to Claude).

How it works – the main pieces

Component Role
Chrome extension (MV3) UI (new‑tab page, Settings panel) + background worker that talks to Chrome APIs (history, tabs).
Agent core (host‑agnostic) The loop that calls Claude Managed Agents, provides two custom tools: getHistory and getPageHtml.
Claude Managed Agents Runs the LLM (Claude Sonnet/Haiku/Opus) in Anthropic’s sandbox, receives the scraped pages as files, and returns the generated React component.
pnpm / WXT Build system for the React UI and the extension packaging.
Bun harness Scripts for local testing of the agent core outside Chrome.

The data flow (as described in the README):

  1. getHistory → ranked list of domains.
  2. getPageHtml → opens up to 8 pages, cleans HTML, mounts as files.
  3. Agent runs grep/read on those files to pull out content.
  4. Agent writes a React component, which the extension renders.

What you need to run it

  • Chrome or any Chromium‑based browser.
  • Node 20+ (the repo uses pnpm 10.11.1 for package management).
  • An Anthropic API key (you supply it; the extension never ships its own key).

Installation steps are straightforward: clone, pnpm install && pnpm build, then load the generated apps/extension/.output/chrome-mv3 folder as an unpacked extension.


Limitations & caveats

  • Cost – each rebuild costs a Claude API call; the price depends on the model and how much page content is sent.
  • Privacy – while the extension only sends a summary and up to eight pages, those pages are still transmitted to Anthropic. The README stresses that the API key stays in local storage and that every session is deleted after the build.
  • Experimental – the project is labelled “early and experimental”; it isn’t meant for publishing to the Chrome Web Store as‑is.
  • No server side – everything runs in the browser; if you lose your API key or the extension is removed, you lose the ability to rebuild.
  • Limited content sources – it deliberately skips search engines, webmail, banking, and logged‑out marketing pages.

Quick start checklist

  1. git clone https://github.com/ThariqS/ai-newtab.git && cd ai-newtab
  2. pnpm install && pnpm build
  3. Load the unpacked extension in Chrome.
  4. Open a new tab, paste your Anthropic API key, click Build today's homepage.
  5. Tweak the prompt in Settings to get the layout you prefer.

License

MIT – you can fork, modify, and use it privately.


All information above is taken directly from the repository’s README; no external assumptions have been added.

Related

  • Project
  • Project
  • Project
  • Project