Link Brain

v4.3.0

Local knowledge base for links. Save URLs with summaries and tags, search later using natural language, build collections, and review your backlog with space...

2· 877·7 current·8 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description match the code and SKILL.md. The package includes a CLI Python script that implements saving, searching, imports, graph export, and spaced repetition; these map to the claimed features (browser imports, local SQLite, graph HTML, auto-save network fetches). No unrelated credentials, binaries, or cloud services are requested.
Instruction Scope
SKILL.md and the script instruct the tool to scan Chrome, Safari, and Firefox and to 'auto-import everything it finds' when you run quickstart. That behavior is coherent with a bookmark-import feature but can be surprising: quickstart will read your browser bookmark files and import all bookmarks automatically. Network requests are limited to explicit --auto/auto-save operations (uses urllib per the code).
Install Mechanism
No install spec is provided (instruction-only invocation), and the Python script is bundled with the skill. Nothing in the metadata attempts to download or execute external installers. The script creates a data directory and writes its database and generated HTML there.
Credentials
No required environment variables or credentials are declared; the only optional env var is LINK_BRAIN_DIR to override the data directory. This matches the script's behavior (it defaults to ~/.link-brain and honors LINK_BRAIN_DIR).
Persistence & Privilege
always is false and the skill does not request elevated platform privileges. It creates and uses its own data directory and files under that directory. Autonomous invocation is allowed by default (normal), but there is no evidence the skill attempts persistent system-wide changes beyond its own data directory.
Assessment
This skill looks like a local bookmark manager and is generally coherent: it stores everything in ~/.link-brain (or the path you set with LINK_BRAIN_DIR) and only fetches web pages when you explicitly use --auto/auto-save. Two practical cautions before installing: (1) using the documented quickstart will auto-detect and import ALL bookmarks from detected browsers — if you have private or sensitive bookmarks you may prefer to run setup (which reports sources) and import selectively; (2) auto-save performs network fetches with urllib, so avoid auto-saving untrusted URLs if you are concerned about remote content. If you want extra assurance, run the included tests in a disposable LINK_BRAIN_DIR (export LINK_BRAIN_DIR=$(mktemp -d)) and/or read the bundled scripts/brain.py to confirm no unexpected network endpoints or subprocess calls.

Like a lobster shell, security has layers — review code before you run it.

bookmarksvk978wqhrg7twaf5ejaw5fe4t75817g3aknowledge-basevk978wqhrg7twaf5ejaw5fe4t75817g3alatestvk97ftnkr3hhwnaarc46q8raavh817jablinksvk978wqhrg7twaf5ejaw5fe4t75817g3a
877downloads
2stars
16versions
Updated 1mo ago
v4.3.0
MIT-0

Link Brain

Your personal bookmark graveyard, except things actually come back.

Quick Start

python3 scripts/brain.py quickstart           # auto-imports browser bookmarks + opens GUI
python3 scripts/brain.py save "https://example.com" --auto
python3 scripts/brain.py search "that article about sqlite"

First Run

On first run, use quickstart instead of setup. It:

  1. Creates the database
  2. Scans Chrome, Safari, and Firefox for bookmarks
  3. Imports everything it finds (skips duplicates)
  4. Generates the visual GUI console
  5. Returns JSON with import stats

setup also detects browsers and reports what it finds, but doesn't auto-import. Use quickstart when the user wants the fastest path to a working knowledge base.

What It Does

  • Saves URLs with titles, summaries, tags, and metadata
  • Full-text search with natural language filters
  • Auto-fetches and summarizes pages locally (no API keys)
  • Spaced repetition so your saved links don't rot
  • Collections for organizing reading lists
  • Knowledge graph visualization
  • Reading stats, streaks, and weekly digests
  • Imports from Chrome, Safari, Firefox, Pocket, YouTube, Reddit
  • Everything in SQLite. Everything on disk. No accounts. No telemetry.

Data lives in ~/.link-brain/. Override with LINK_BRAIN_DIR=/your/path.

Saving Links

Manual

You know the title. You know what it's about. Just tell it.

python3 scripts/brain.py save "https://docs.python.org" \
  --title "Python docs" \
  --summary "Standard library reference." \
  --tags "python, docs"

Auto

Point it at a URL. It fetches the page, extracts readable text, generates a summary, and suggests tags based on your existing collection. No LLM needed.

python3 scripts/brain.py auto-save "https://example.com"

Or equivalently:

python3 scripts/brain.py save "https://example.com" --auto

This is the only command that makes a network request. Everything else is local.

Finding Stuff

Search

SQLite FTS5 under the hood, but you can write queries like a person.

python3 scripts/brain.py search "last week unread from github"
python3 scripts/brain.py search "best rated rust"
python3 scripts/brain.py search "unrated videos from youtube"
python3 scripts/brain.py search "oldest unread" --limit 10

Tags

python3 scripts/brain.py tags                    # list all tags
python3 scripts/brain.py tags python             # links tagged "python"

Related

Find links that share tags with a specific one.

python3 scripts/brain.py related 42

Tag Suggestions

Get tag ideas for a URL based on your patterns.

python3 scripts/brain.py suggest-tags "https://example.com"

Discovery

When you don't know what to read next.

  • digest pulls a batch of links for review
  • recommend surfaces links based on your most-used tags
  • gems shows your highest-rated links and hidden finds
  • random grabs something from the backlog
python3 scripts/brain.py digest
python3 scripts/brain.py recommend
python3 scripts/brain.py gems
python3 scripts/brain.py random

Reading Tracking

python3 scripts/brain.py read 42                # mark as read
python3 scripts/brain.py unread                  # show unread links
python3 scripts/brain.py rate 42 5               # rate 1-5
python3 scripts/brain.py streak                  # current streak and activity
python3 scripts/brain.py insights                # reading personality, analytics
python3 scripts/brain.py weekly                  # weekly summary, WhatsApp-ready

streak tracks consecutive days you've read something. insights tells you things like your most active hours and top domains. weekly is a formatted digest you can send straight to a chat.

Collections

Reading lists that reference your saved links.

python3 scripts/brain.py collection create "Rust" --description "Systems stuff"
python3 scripts/brain.py collection add "Rust" 42
python3 scripts/brain.py collection show "Rust"
python3 scripts/brain.py collection list
python3 scripts/brain.py collection remove "Rust" 42
python3 scripts/brain.py collection export "Rust"            # markdown
python3 scripts/brain.py collection export "Rust" --html     # standalone HTML

Review Queue

Spaced repetition for your bookmarks. Every saved link enters the queue. Intervals grow as you review: 1 day, 3 days, 7 days, and so on.

python3 scripts/brain.py review                  # next due item
python3 scripts/brain.py review done 42          # reviewed, advance interval
python3 scripts/brain.py review skip 42          # not now
python3 scripts/brain.py review reset 42         # back to 1-day interval
python3 scripts/brain.py review stats            # queue overview

Auto-Save

The --auto flag on save (or the auto-save shortcut) handles fetching, summarizing, and tagging in one shot. It uses urllib to grab the page, extracts the readable content, and picks tags that match your existing vocabulary. No external services involved.

Knowledge Graph

python3 scripts/brain.py graph --open

Generates a standalone HTML file at ~/.link-brain/graph.html with an interactive canvas. Links are nodes. Shared tags are edges. No external JS libraries. Just open it in a browser.

GUI Console

python3 scripts/brain.py gui

Opens ~/.link-brain/console.html in your browser. Single self-contained HTML file, nothing external. Includes search, tag cloud, knowledge graph, collections, review queue, reading timeline, and dark/light mode.

Add --no-open to generate without launching.

Importing

Browsers

Pull bookmarks directly:

python3 scripts/brain.py scan chrome
python3 scripts/brain.py scan safari
python3 scripts/brain.py scan firefox

Reads from the browser's local bookmark storage. No export step needed.

Platforms

Import from exported files:

python3 scripts/brain.py import pocket_export.html
python3 scripts/brain.py import youtube_history.json
python3 scripts/brain.py import reddit_saved.csv

How to get your exports:

  • Pocket: Go to getpocket.com/export. You'll get an HTML file.
  • YouTube: Use Google Takeout. Select YouTube, then pick watch history. You'll get a JSON file.
  • Reddit: Go to reddit.com/prefs/data-request or old.reddit.com and export saved posts.

Syncing

Check for bookmarks that have been removed from a browser source:

python3 scripts/brain.py sync chrome
python3 scripts/brain.py sources              # see connected sources and sync status

Feedback

python3 scripts/brain.py feedback "your message"
python3 scripts/brain.py feedback --bug "something broke"
python3 scripts/brain.py feedback --idea "wouldn't it be cool if..."
python3 scripts/brain.py debug                # system info for bug reports

Config

All data is stored in ~/.link-brain/:

  • brain.db (SQLite database)
  • graph.html (knowledge graph output)
  • console.html (GUI console)
  • collection-*.md and collection-*.html (exported collections)

Override the directory:

LINK_BRAIN_DIR=/tmp/test-brain python3 scripts/brain.py setup

Tips

  • search understands time filters like "last week" and reading states like "unread" or "best rated"
  • Use --auto on every save unless you have a specific summary in mind. It's fast and surprisingly good.
  • review stats tells you how many links are overdue. Check it weekly.
  • gems is great for rediscovering old links you forgot you loved
  • Export a collection as HTML to share a reading list with someone
  • The graph gets more interesting after about 50 links. Before that, it's a bit lonely.
  • random is the "I'm bored" button
  • Combine scan with sync to keep browser bookmarks in check

Comments

Loading comments...