Skip to main content

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.

Weft Demo

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
  1. Extract - Pulls tabs from Chrome/Firefox, optionally crawls page content
  2. Cluster - Groups by semantic similarity + domain affinity
  3. Deduplicate - SimHash finds near-identical content across domains
  4. Graph - Builds similarity edges between related pages
  5. 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

weft_graph-1.0.0.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

weft_graph-1.0.0-py3-none-any.whl (26.5 kB view details)

Uploaded Python 3

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

Hashes for weft_graph-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1eacbfb0a71a6071c71f05978d102d6f313863622f9405d8da4a8c35a6024a92
MD5 ec78b85fc2511ff301deaff12f34976e
BLAKE2b-256 3296d8f33bdabf10aea0f9e3533bb988e415ab00a77b3a06727790dae5bf4c93

See more details on using hashes here.

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

Hashes for weft_graph-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b9ad5ca34d822bc8a86d98518838523fa50daf1f166b8f7c6182e1266f7af08
MD5 fed66741bc46414bd9d8cd114ac4350a
BLAKE2b-256 0f1949faf552f0423e59aea82ab4127a1cdd0d797b1cec106d4677806e098716

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page