Skip to content

Repository files navigation

IdeaLoom

IdeaLoom is a Chrome extension that turns the article in your active tab into one to three atomic idea cards and automatically connects them to related ideas you saved earlier.

Prerequisites

  • Node.js 22 or newer
  • pnpm
  • Google Chrome
  • An OpenRouter API key permitted to use the ZDR DeepInfra BF16 endpoint for openai/gpt-oss-20b

Configure the API key

Create .env in the repository root:

OPENROUTER_API_KEY=your-key-here

Never commit this file. IdeaLoom sends requests only to openai/gpt-oss-20b on DeepInfra BF16 with ZDR required, data collection denied, and provider fallbacks disabled.

Install and verify

pnpm install
pnpm typecheck
pnpm test
pnpm build

Start the local AI service

pnpm dev:server

The service binds to http://127.0.0.1:8787. Confirm it with:

curl http://127.0.0.1:8787/health

Load the Chrome extension

  1. Open chrome://extensions.
  2. Enable Developer mode.
  3. Click Load unpacked.
  4. Select the repository's extension/dist folder.
  5. Pin IdeaLoom to the toolbar.

After code changes, run pnpm build and click the extension's reload button on chrome://extensions.

Use IdeaLoom

  1. Open a readable article over HTTP or HTTPS.
  2. Click the IdeaLoom toolbar icon.
  3. On first use, optionally load the demo idea, then select Get started.
  4. Keep the popup open to watch extraction and analysis, or close and reopen it later.
  5. Review generated notes in Ideas.
  6. Open Graph to see automatic cross-article connections.
  7. Edit a note's title or blurb, or select an edge and press Delete to remove a poor link.

Demo path

The strongest deterministic demo starts by choosing Load one demo idea first during onboarding. Then capture an article about connected notes, knowledge retention, or spaced repetition. The wow moment is a new atomic idea appearing automatically connected to the seeded “Spaced repetition strengthens recall” idea.

Demonstrate:

  • One-click active-page capture
  • One to three atomic ideas with source metadata
  • The connection badge and Graph tab
  • A meaningful automatic connection
  • Idea editing and connection deletion
  • Persistence after closing the popup
  • Duplicate reopening when the same URL is captured again

Architecture

  • Manifest V3 action popup built with React and TypeScript
  • Background service worker owns capture jobs across popup closures
  • Mozilla Readability extracts a cloned active-page document
  • Chrome local storage persists sources, ideas, links, and jobs
  • Local Node service protects the OpenRouter API key
  • Strict JSON Schema plus Zod validation prevents malformed AI data from entering storage
  • React Flow renders the graph

Planning and verification artifacts live in docs/hackathon-build/.

Tests

pnpm test covers structured AI contracts, article extraction and length caps, URL normalization, atomic capture storage, invalid-link filtering, idea edits, and connection deletion.

Manual Chrome checks remain necessary for Manifest V3 permissions, popup lifecycle, real-page extraction, local-service connectivity, and browser-restart persistence.

Known PoC limitation

The extension UI, background lifecycle, extraction bundle, storage layer, and local AI service are implemented. In the final Chrome smoke test, the popup reached AI service unavailable, and the retry did not reach the listening local service. Direct calls to the same service and privacy-locked OpenRouter route succeeded repeatedly in 5–8 seconds. The remaining integration issue is therefore between the unpacked extension's background request and http://127.0.0.1:8787, likely in extension networking/origin configuration. This is intentionally disclosed rather than presented as a passing end-to-end test.

About

Turn articles into connected atomic ideas with a privacy-locked Chrome extension.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages