Skip to content

digitalgrove-bit/fathom

Repository files navigation

Fathom

AI-powered term definitions for any web page. Fathom underlines unfamiliar technical terms inline and shows context-aware definitions on hover — so you can keep reading without opening five new tabs.

What it does

You're reading an article about gRPC and eBPF. The page mentions XDP, sk_buff, and BPF maps. Instead of context-switching to Wikipedia for each one, Fathom underlines those terms in place. Hover or click and a tooltip explains them — tuned to the article's domain (networking, not audio engineering).

  • Context-aware — the same word means different things in finance vs. medicine vs. networking. Fathom classifies the page first, then defines terms in that frame.
  • Reader-level adaptive — surfaces what a generally educated reader probably doesn't know, not every term an absolute beginner would miss.
  • Non-invasive — subtle underlines only. No banners, sidebars, or layout shifts.
  • Privacy-first — your API key stays in chrome.storage.local. Page content is sent to Anthropic for analysis but not retained by Fathom.
  • BYOK — you use your own Claude API key. No middleman server, no subscription.

Install (from source)

Until Fathom is on the Chrome Web Store, load it as an unpacked extension:

  1. Clone this repo and build it:
    git clone https://github.com/digitalgrove-bit/fathom.git
    cd fathom
    npm install
    npm run build
  2. Open chrome://extensions in Chrome.
  3. Toggle Developer mode on (top right).
  4. Click Load unpacked and select the dist/ folder inside the cloned repo.
  5. Pin the Fathom icon to your toolbar.

Configure

  1. Get a Claude API key from console.anthropic.com.
  2. Click the Fathom icon in your toolbar.
  3. Paste your key (sk-ant-...) and click Save & Start.

The key is stored locally in your browser. API requests go directly from your browser to Anthropic.

Use

  1. Open any article.
  2. Click the Fathom icon and hit Scan This Page.
  3. Watch unfamiliar terms get underlined as Fathom processes the page in chunks.
  4. Hover or click a term to see its definition.
  5. Optionally Export to Markdown to save the definitions list.

How it works

Two-phase pipeline, both powered by Claude:

  1. Classify — extract a skeleton of the page and ask Claude to classify its domain (e.g., "Linux kernel networking").
  2. Detect — chunk the visible text, send each chunk + the domain context to Claude, get back a list of terms an average reader probably wouldn't know.

Terms are annotated in the DOM with a rust-colored underline. Hover triggers a popover with the context-aware definition.

Project structure

src/
├── features/          # vertical features (page-analysis, popover, annotation)
├── platform/
│   ├── domain/        # pure types and interfaces
│   └── infra/         # external clients (Anthropic) and storage
├── shell/             # Chrome extension entry points
│   ├── content-script.ts
│   ├── service-worker.ts
│   └── popup/
└── manifest.json

Development

npm run watch      # rebuild on save
npm run typecheck  # tsc, no emit

After a rebuild, click the refresh icon on the Fathom card at chrome://extensions to reload.

License

MIT — see LICENSE.

About

AI-powered term definitions for any web page. Underlines unfamiliar technical terms inline and explains them in context, powered by Claude.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors