Follow the threads. See what is missing.
Threadlight is a compact, privacy-first Chrome extension that turns pages you explicitly capture or approve into a local knowledge graph. It helps you revisit connections, notice unfinished threads, and export a Markdown context bundle for ChatGPT or Claude—without sending your graph to a developer-operated server.
Most browser knowledge tools begin by watching everything. Threadlight takes the opposite approach: you choose what enters the graph, the graph stays in your Chrome profile, and every signal points back to local evidence. The extension is designed as a focused dropdown popup rather than another dashboard tab.
| Capability | What it does | Where it runs |
|---|---|---|
| Explicit capture | Adds the current page only when you capture it or allow local learning for that exact site. | Chrome extension |
| Spatial knowledge graph | Connects page, domain, topic, and tag nodes in a navigable 3D-style canvas. | chrome.storage.local |
| Node search and focus | Finds matching nodes, highlights them, and brings their local context into view. | Chrome popup |
| Learning signals | Surfaces recurring focus, open threads, source concentration, novelty, serendipity, and unanswered questions. | Derived locally |
| Portable AI context | Creates a clearly labeled Markdown bundle for you to paste into ChatGPT or Claude. | Clipboard/download only |
Threadlight is intentionally conservative. It does not record every page, run advertising analytics, sell captured data, or relay captures to a Threadlight server. It avoids many sensitive locations, including Chrome pages and common login, financial, health, and mail-related pages.
The export is local. Choosing the ChatGPT / Claude export action copies a Markdown bundle and saves a local download. Threadlight does not open, connect to, or send data to ChatGPT, Claude, or any other AI provider.
| Threadlight does | Threadlight does not do |
|---|---|
Store your approved captures and graph in chrome.storage.local |
Secretly monitor general browsing activity |
| Remember exact site origins you approve for local learning | Send your captures to a developer-operated relay |
| Show transparent, evidence-linked local prompts | Claim external virality or predict outcomes about you |
| Let you copy or download an export you control | Sell data or add advertising analytics |
For publication copy, use the hostable policy page inside the source archive’s privacy-hosting/ directory.
The verified Chrome Web Store archive is included at:
threadlight-chrome-extension-0.2.0.zip
Upload that ZIP in the Chrome Web Store Developer Dashboard. The archive contains only the manifest, popup runtime, service worker, graph logic, and required PNG icons.
- Download
threadlight-chrome-extension-source-0.2.0.zipfrom this repository and extract it. - Open
chrome://extensionsin Chrome. - Enable Developer mode.
- Select Load unpacked.
- Choose the extracted
extension/directory. - Pin Threadlight from Chrome’s extensions menu, then open the popup on a normal HTTPS page.
- Open the popup on a page you want to remember.
- Select Capture current page, or explicitly enable Learn on this site for that exact origin.
- Explore the graph by selecting nodes, orbiting, zooming, or searching.
- Review local signals and inspect the evidence behind them.
- Use Copy / export for ChatGPT or Claude when you want a portable Markdown context bundle.
The extension does not assume a site is approved simply because you visited it. You stay in control of every capture boundary.
Threadlight has no runtime npm dependencies. A recent Node.js runtime is sufficient.
npm test
npm run validate
npm run packageThe package task runs the node test suite, validates the Manifest V3 package, and rebuilds the clean ZIP under dist/. The complete repository source is also available as threadlight-chrome-extension-source-0.2.0.zip in this repository root.
| Command | Purpose |
|---|---|
npm test |
Exercises local graph learning, sensitive-page exclusions, signals, popup controls, and export behavior. |
npm run validate |
Checks Manifest V3 metadata, local runtime files, popup controls, branding, and icon dimensions. |
npm run package |
Runs tests and validation, then emits the Chrome upload archive. |
npm run icons |
Regenerates the package’s PNG icon sizes when the source icon changes. |
extension/ Manifest V3 runtime loaded by Chrome
popup.html Compact popup shell
popup-brain.js Popup controller, graph renderer, search, and interactions
graph-core.js Local graph model, signals, and Markdown export helpers
background.js Capture, permission, persistence, and download handling
compact-popup.css Popup layout and visual system
icons/ Required 16 / 32 / 48 / 128px PNG icons
scripts/ Package validation and ZIP generation
test/ Deterministic Node test suite
privacy-hosting/ Hostable Chrome Web Store privacy policy page and background asset
release/ Verified Chrome Web Store upload archive
docs/images/ Product-preview image used in this README
Before submitting a listing, confirm that you have completed the following:
- Upload
threadlight-chrome-extension-0.2.0.zip, not the source folder. - Extract the source archive and host
privacy-hosting/threadlight-privacy.htmlat a stable public URL. - Replace the policy’s contact placeholder with a monitored support email or support URL.
- Add the public privacy-policy URL to the Chrome Web Store listing.
- Keep the listing language aligned with the extension’s local-only capture, export, and Limited Use disclosures.
Threadlight uses Manifest V3 and package-local code. The extension requests only the capabilities required to capture explicitly approved pages, store a local graph, and create user-initiated exports. Optional host permissions are intended for exact user-approved origins; they are not a license to observe general browsing.
This public repository is published for review and evaluation. See LICENSE for the current rights statement. Do not redistribute the extension, screenshots, or branding without the copyright holder’s permission.
Built for deliberate browsing, not passive surveillance.
