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.1.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.1-py3-none-any.whl (26.6 kB view details)

Uploaded Python 3

File details

Details for the file weft_graph-1.0.1.tar.gz.

File metadata

  • Download URL: weft_graph-1.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 c5954f7260e2a896f52a03cbf05e7ebb93a21e550c5d59292e74888649b4fabc
MD5 c9db9928cca860cbbc790d483448f9bb
BLAKE2b-256 6a6bfe45f52a169bc286495c9ca90f701ac21611975025f86fc0d2d1860e31ff

See more details on using hashes here.

File details

Details for the file weft_graph-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: weft_graph-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 26.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cb95153357716953be1e84d2602b2b7d8469ec9d431929019db30c63157ef7f6
MD5 c266092f4765c9030007c7c9db85ae63
BLAKE2b-256 c0c12ddf0d7b396945e1663afd360e3a48d9bb77e5fe1554a88fd1f8365d0d69

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