A local-first knowledge graph for your browsing
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 using a fast terminal UI.
Think: Obsidian graph view, but for the web you already opened.
Why Weft?
| Tool | What it does |
|---|---|
| OneTab | Saves links in a flat list |
| Bookmarks | Folders you'll never organize |
| Weft | Builds memory from your browsing |
Features
- Knowledge Graph - Pages connected by semantic similarity, not folders
- Automatic Clustering - Groups related content by meaning and domain
- Near-Duplicate Detection - SimHash identifies similar pages across sites
- Smart Search - Fuzzy text, keyword (
#topic), and domain (@site) filters - Graph Explorer - Navigate neighbors, discover related content
- Optional LLM Summaries - Local AI via Ollama for richer understanding
- Fully Local - Your data never leaves your machine
Install
pip install weft
Or from source:
git clone https://github.com/yourusername/weft.git
cd weft
pip install -e .
Quick Start
# Build knowledge graph from your browser tabs
weft weave
# Explore in terminal UI
weft explore
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
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 |
s |
Focus search |
q |
Quit |
Search syntax:
- Fuzzy:
distributed systems - Keyword:
#performance - Domain:
@github
How It Works
Tabs → Extract → Cluster → Graph → Explore
│ │ │
▼ ▼ ▼
Keywords SimHash Similarity
TF-IDF Dedup Matrix
- Extract - Pulls tabs from Chrome/Firefox, optionally crawls page content
- Cluster - Groups by semantic similarity + domain affinity
- Deduplicate - SimHash finds near-identical content across domains
- Graph - Builds similarity edges between related pages
- Explore - Fast TUI for search, navigation, and discovery
Requirements
- Python 3.9+
- macOS (browser export uses AppleScript)
- Chrome and/or Firefox
Optional: LLM Summaries
# Install Ollama
brew install ollama
# Pull models
ollama pull llama3.1:8b
ollama pull nomic-embed-text
# Use with summarization
weft weave --summarize
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.0.0.tar.gz.
File metadata
- Download URL: weft_graph-1.0.0.tar.gz
- Upload date:
- Size: 24.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 |
1eacbfb0a71a6071c71f05978d102d6f313863622f9405d8da4a8c35a6024a92
|
|
| MD5 |
ec78b85fc2511ff301deaff12f34976e
|
|
| BLAKE2b-256 |
3296d8f33bdabf10aea0f9e3533bb988e415ab00a77b3a06727790dae5bf4c93
|
File details
Details for the file weft_graph-1.0.0-py3-none-any.whl.
File metadata
- Download URL: weft_graph-1.0.0-py3-none-any.whl
- Upload date:
- Size: 26.5 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 |
5b9ad5ca34d822bc8a86d98518838523fa50daf1f166b8f7c6182e1266f7af08
|
|
| MD5 |
fed66741bc46414bd9d8cd114ac4350a
|
|
| BLAKE2b-256 |
0f1949faf552f0423e59aea82ab4127a1cdd0d797b1cec106d4677806e098716
|