A local-first knowledge graph for your browsing - Chrome extension + CLI
Project description
Weft
A local-first knowledge graph for your browsing.
Weft turns your browser tabs into a searchable, clustered knowledge graph. Instead of drowning in hundreds of tabs or flat bookmark lists, Weft groups related pages, removes duplicates, and lets you explore your browsing context visually.
Think: Obsidian graph view, but for the web you already opened.
Two Ways to Use Weft
| Chrome Extension | CLI (Python) | |
|---|---|---|
| Best for | Live tracking, visual exploration | Batch processing, scripting |
| Graph View | Interactive sidepanel | Terminal UI |
| Navigation Tracking | Automatic | Manual export |
| Install | Load unpacked extension | pip install weft-graph |
Chrome Extension
Live knowledge graph that tracks your browsing in real-time.
Features
- Live Tab Tracking - Automatically captures tabs as you browse
- Navigation Edges - Tracks how you move between pages (including SPAs)
- Graph Visualization - Interactive Cytoscape.js graph with zoom/pan
- Smart Grouping - Clusters related pages by content similarity
- Keyword Extraction - Automatic keyword detection from page content
- Search - Fuzzy text,
#keyword, and@domainfilters - Import/Export - Compatible with CLI JSON format
- Daily Insights - View personalized reports on your browsing habits (requires server)
- Real-time Sync - Send live tabs to local server for instant analysis
Install Extension
- Clone or download this repo
- Open Chrome →
chrome://extensions - Enable "Developer mode" (top right)
- Click "Load unpacked" → select the
extension/folder - Click the Weft icon or open sidepanel
Extension Usage
Views:
- Groups - Browse tabs organized by topic clusters
- Graph - Visual knowledge graph with similarity and navigation edges
- Insights - View summary of top research topics and key themes
Search Syntax:
- Fuzzy:
distributed systems - Keyword:
#database - Domain:
@github.com
Actions:
- Click any tab to see details (URL, keywords, group)
- Click "Open Tab" to open in browser
- Use refresh button to rebuild graph after browsing
- Export/Import for backup or CLI compatibility
- Click "Refresh Insights" to sync live tabs and generate report
CLI Tool
Batch processing and terminal UI for exploring your knowledge graph.
Install CLI
pip install weft-graph
Or from source:
git clone https://github.com/Avi-141/weft.git
cd weft
pip install -e .
Quick Start
# Build knowledge graph from your browser tabs
weft weave
# Explore in terminal UI (press 'i' for insights)
weft explore
# Run the API/MCP server
weft serve
Commands
weft weave
Extracts tabs from browsers and weaves them into a knowledge graph.
# From all browsers (default)
weft weave
# Chrome only
weft weave --browser chrome
# Firefox only
weft weave --browser firefox
# With LLM summaries (requires Ollama)
weft weave --summarize
# Fast mode (tab titles only, no crawling)
weft weave --no-crawl
weft explore
Interactive TUI for exploring your knowledge graph.
# Default graph
weft explore
# Specific file
weft explore my_graph.json
weft insights
Print a markdown report of your browsing habits, top topics, and key themes.
weft insights
weft serve
Run the Weft API and MCP server. This enables:
- Real-time Insights in the browser extension
- Claude Desktop integration (MCP)
weft serve
# Server runs at http://localhost:8000
weft install-mcp (macOS)
Automatically configure Claude Desktop to talk to Weft.
weft install-mcp
Once installed, ask Claude: "Summarize my research on Python async libraries."
weft export-obsidian
Export your knowledge clusters as markdown files to your Obsidian vault.
weft export-obsidian "/Users/you/Documents/MyVault"
Creates a Weft Browsing folder with tagged and linked notes for each cluster.
Keyboard Shortcuts
| Key | Action |
|---|---|
[ / ] |
Navigate groups |
{ / } |
Navigate tabs in group |
o |
Open tab in browser |
g |
Open all tabs in group |
v |
Switch to graph view |
i |
Switch to insights view |
s |
Focus search |
q |
Quit |
How It Works
Tabs → Extract → Analyze → Dedupe → Cluster → Graph → Explore
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
Browser Keywords SimHash Union Similarity
Tabs Content Matching Find + Navigation
- Extract - Captures tabs from browser (live or batch)
- Analyze - Extracts keywords from page content
- Deduplicate - Canonical URL matching + SimHash for near-duplicates
- Cluster - Groups by similarity using Union-Find algorithm
- Graph - Builds similarity edges + navigation edges between pages
- Explore - Visual graph or terminal UI for discovery
Edge Types
| Type | Description | Visual |
|---|---|---|
| Similarity | Pages with related content | Light edges |
| Navigation | You clicked from A to B | Bold edges |
Similarity Computation
| Mode | Method |
|---|---|
| Default | Jaccard similarity on keywords |
With --summarize |
Cosine similarity on embeddings |
A domain bonus (default: 0.25) is added when tabs share the same domain.
Clustering Algorithm
Uses Union-Find with two strategies:
- Domain Pre-grouping - Tabs from the same domain grouped together
- Mutual KNN - Two tabs cluster only if they mutually consider each other neighbors
Requirements
Extension
- Chrome/Chromium browser
CLI
- Python 3.9+
- macOS (browser export uses AppleScript)
- Chrome and/or Firefox
Optional: LLM Summaries (CLI)
# Install Ollama
brew install ollama
# Pull models
ollama pull llama3.1:8b
ollama pull nomic-embed-text
# Use with summarization
weft weave --summarize
Privacy
Weft is fully local. Your browsing data never leaves your machine:
- Extension uses IndexedDB (browser local storage)
- CLI stores data in local JSON files
- No analytics, no cloud sync, no external requests
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file weft_graph-1.2.0.tar.gz.
File metadata
- Download URL: weft_graph-1.2.0.tar.gz
- Upload date:
- Size: 33.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b93ea8c65f11b66a36fb6234aeb503c27f26dcd7dcfd422f3f8696c7500071e2
|
|
| MD5 |
27a99c896c5ea617b7ff500fa754963b
|
|
| BLAKE2b-256 |
454c5c3d61b20ed6bc9dd0e386df6da7cc5e2bacfbdb1183889791ede74a9a2c
|
File details
Details for the file weft_graph-1.2.0-py3-none-any.whl.
File metadata
- Download URL: weft_graph-1.2.0-py3-none-any.whl
- Upload date:
- Size: 35.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de2871a63248fb2c9ef051afab3e97fff145c5ec3dd3e7c415ab8f53baf5ab09
|
|
| MD5 |
e1773bd10a4b27b9238828a71195f2e5
|
|
| BLAKE2b-256 |
eb2f7f59a8d0bdfa6542bc95c66796e0b8197cf299c30e04b6b14f4746f7e458
|