{
  "schemaVersion": "1.0",
  "item": {
    "slug": "link-brain",
    "name": "Link Brain",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/jakes420/link-brain",
    "canonicalUrl": "https://clawhub.ai/jakes420/link-brain",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/link-brain",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=link-brain",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/examples.md",
      "references/v4.0.0-release-notes.md",
      "scripts/brain.py",
      "tests/fixtures/hackernews-favorites.json",
      "tests/fixtures/instapaper-export.csv"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/link-brain"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/link-brain",
    "agentPageUrl": "https://openagent3.xyz/skills/link-brain/agent",
    "manifestUrl": "https://openagent3.xyz/skills/link-brain/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/link-brain/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Link Brain",
        "body": "Your personal bookmark graveyard, except things actually come back."
      },
      {
        "title": "Quick Start",
        "body": "python3 scripts/brain.py quickstart           # auto-imports browser bookmarks + opens GUI\npython3 scripts/brain.py save \"https://example.com\" --auto\npython3 scripts/brain.py search \"that article about sqlite\""
      },
      {
        "title": "First Run",
        "body": "On first run, use quickstart instead of setup. It:\n\nCreates the database\nScans Chrome, Safari, and Firefox for bookmarks\nImports everything it finds (skips duplicates)\nGenerates the visual GUI console\nReturns JSON with import stats\n\nsetup 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."
      },
      {
        "title": "What It Does",
        "body": "Saves URLs with titles, summaries, tags, and metadata\nFull-text search with natural language filters\nAuto-fetches and summarizes pages locally (no API keys)\nSpaced repetition so your saved links don't rot\nCollections for organizing reading lists\nKnowledge graph visualization\nReading stats, streaks, and weekly digests\nImports from Chrome, Safari, Firefox, Pocket, YouTube, Reddit\nEverything in SQLite. Everything on disk. No accounts. No telemetry.\n\nData lives in ~/.link-brain/. Override with LINK_BRAIN_DIR=/your/path."
      },
      {
        "title": "Manual",
        "body": "You know the title. You know what it's about. Just tell it.\n\npython3 scripts/brain.py save \"https://docs.python.org\" \\\n  --title \"Python docs\" \\\n  --summary \"Standard library reference.\" \\\n  --tags \"python, docs\""
      },
      {
        "title": "Auto",
        "body": "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.\n\npython3 scripts/brain.py auto-save \"https://example.com\"\n\nOr equivalently:\n\npython3 scripts/brain.py save \"https://example.com\" --auto\n\nThis is the only command that makes a network request. Everything else is local."
      },
      {
        "title": "Search",
        "body": "SQLite FTS5 under the hood, but you can write queries like a person.\n\npython3 scripts/brain.py search \"last week unread from github\"\npython3 scripts/brain.py search \"best rated rust\"\npython3 scripts/brain.py search \"unrated videos from youtube\"\npython3 scripts/brain.py search \"oldest unread\" --limit 10"
      },
      {
        "title": "Tags",
        "body": "python3 scripts/brain.py tags                    # list all tags\npython3 scripts/brain.py tags python             # links tagged \"python\""
      },
      {
        "title": "Related",
        "body": "Find links that share tags with a specific one.\n\npython3 scripts/brain.py related 42"
      },
      {
        "title": "Tag Suggestions",
        "body": "Get tag ideas for a URL based on your patterns.\n\npython3 scripts/brain.py suggest-tags \"https://example.com\""
      },
      {
        "title": "Discovery",
        "body": "When you don't know what to read next.\n\ndigest pulls a batch of links for review\nrecommend surfaces links based on your most-used tags\ngems shows your highest-rated links and hidden finds\nrandom grabs something from the backlog\n\npython3 scripts/brain.py digest\npython3 scripts/brain.py recommend\npython3 scripts/brain.py gems\npython3 scripts/brain.py random"
      },
      {
        "title": "Reading Tracking",
        "body": "python3 scripts/brain.py read 42                # mark as read\npython3 scripts/brain.py unread                  # show unread links\npython3 scripts/brain.py rate 42 5               # rate 1-5\npython3 scripts/brain.py streak                  # current streak and activity\npython3 scripts/brain.py insights                # reading personality, analytics\npython3 scripts/brain.py weekly                  # weekly summary, WhatsApp-ready\n\nstreak 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."
      },
      {
        "title": "Collections",
        "body": "Reading lists that reference your saved links.\n\npython3 scripts/brain.py collection create \"Rust\" --description \"Systems stuff\"\npython3 scripts/brain.py collection add \"Rust\" 42\npython3 scripts/brain.py collection show \"Rust\"\npython3 scripts/brain.py collection list\npython3 scripts/brain.py collection remove \"Rust\" 42\npython3 scripts/brain.py collection export \"Rust\"            # markdown\npython3 scripts/brain.py collection export \"Rust\" --html     # standalone HTML"
      },
      {
        "title": "Review Queue",
        "body": "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.\n\npython3 scripts/brain.py review                  # next due item\npython3 scripts/brain.py review done 42          # reviewed, advance interval\npython3 scripts/brain.py review skip 42          # not now\npython3 scripts/brain.py review reset 42         # back to 1-day interval\npython3 scripts/brain.py review stats            # queue overview"
      },
      {
        "title": "Auto-Save",
        "body": "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."
      },
      {
        "title": "Knowledge Graph",
        "body": "python3 scripts/brain.py graph --open\n\nGenerates 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."
      },
      {
        "title": "GUI Console",
        "body": "python3 scripts/brain.py gui\n\nOpens ~/.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.\n\nAdd --no-open to generate without launching."
      },
      {
        "title": "Browsers",
        "body": "Pull bookmarks directly:\n\npython3 scripts/brain.py scan chrome\npython3 scripts/brain.py scan safari\npython3 scripts/brain.py scan firefox\n\nReads from the browser's local bookmark storage. No export step needed."
      },
      {
        "title": "Platforms",
        "body": "Import from exported files:\n\npython3 scripts/brain.py import pocket_export.html\npython3 scripts/brain.py import youtube_history.json\npython3 scripts/brain.py import reddit_saved.csv\n\nHow to get your exports:\n\nPocket: Go to getpocket.com/export. You'll get an HTML file.\nYouTube: Use Google Takeout. Select YouTube, then pick watch history. You'll get a JSON file.\nReddit: Go to reddit.com/prefs/data-request or old.reddit.com and export saved posts."
      },
      {
        "title": "Syncing",
        "body": "Check for bookmarks that have been removed from a browser source:\n\npython3 scripts/brain.py sync chrome\npython3 scripts/brain.py sources              # see connected sources and sync status"
      },
      {
        "title": "Feedback",
        "body": "python3 scripts/brain.py feedback \"your message\"\npython3 scripts/brain.py feedback --bug \"something broke\"\npython3 scripts/brain.py feedback --idea \"wouldn't it be cool if...\"\npython3 scripts/brain.py debug                # system info for bug reports"
      },
      {
        "title": "Config",
        "body": "All data is stored in ~/.link-brain/:\n\nbrain.db (SQLite database)\ngraph.html (knowledge graph output)\nconsole.html (GUI console)\ncollection-*.md and collection-*.html (exported collections)\n\nOverride the directory:\n\nLINK_BRAIN_DIR=/tmp/test-brain python3 scripts/brain.py setup"
      },
      {
        "title": "Tips",
        "body": "search understands time filters like \"last week\" and reading states like \"unread\" or \"best rated\"\nUse --auto on every save unless you have a specific summary in mind. It's fast and surprisingly good.\nreview stats tells you how many links are overdue. Check it weekly.\ngems is great for rediscovering old links you forgot you loved\nExport a collection as HTML to share a reading list with someone\nThe graph gets more interesting after about 50 links. Before that, it's a bit lonely.\nrandom is the \"I'm bored\" button\nCombine scan with sync to keep browser bookmarks in check"
      }
    ],
    "body": "Link Brain\n\nYour personal bookmark graveyard, except things actually come back.\n\nQuick Start\npython3 scripts/brain.py quickstart           # auto-imports browser bookmarks + opens GUI\npython3 scripts/brain.py save \"https://example.com\" --auto\npython3 scripts/brain.py search \"that article about sqlite\"\n\nFirst Run\n\nOn first run, use quickstart instead of setup. It:\n\nCreates the database\nScans Chrome, Safari, and Firefox for bookmarks\nImports everything it finds (skips duplicates)\nGenerates the visual GUI console\nReturns JSON with import stats\n\nsetup 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.\n\nWhat It Does\nSaves URLs with titles, summaries, tags, and metadata\nFull-text search with natural language filters\nAuto-fetches and summarizes pages locally (no API keys)\nSpaced repetition so your saved links don't rot\nCollections for organizing reading lists\nKnowledge graph visualization\nReading stats, streaks, and weekly digests\nImports from Chrome, Safari, Firefox, Pocket, YouTube, Reddit\nEverything in SQLite. Everything on disk. No accounts. No telemetry.\n\nData lives in ~/.link-brain/. Override with LINK_BRAIN_DIR=/your/path.\n\nSaving Links\nManual\n\nYou know the title. You know what it's about. Just tell it.\n\npython3 scripts/brain.py save \"https://docs.python.org\" \\\n  --title \"Python docs\" \\\n  --summary \"Standard library reference.\" \\\n  --tags \"python, docs\"\n\nAuto\n\nPoint 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.\n\npython3 scripts/brain.py auto-save \"https://example.com\"\n\n\nOr equivalently:\n\npython3 scripts/brain.py save \"https://example.com\" --auto\n\n\nThis is the only command that makes a network request. Everything else is local.\n\nFinding Stuff\nSearch\n\nSQLite FTS5 under the hood, but you can write queries like a person.\n\npython3 scripts/brain.py search \"last week unread from github\"\npython3 scripts/brain.py search \"best rated rust\"\npython3 scripts/brain.py search \"unrated videos from youtube\"\npython3 scripts/brain.py search \"oldest unread\" --limit 10\n\nTags\npython3 scripts/brain.py tags                    # list all tags\npython3 scripts/brain.py tags python             # links tagged \"python\"\n\nRelated\n\nFind links that share tags with a specific one.\n\npython3 scripts/brain.py related 42\n\nTag Suggestions\n\nGet tag ideas for a URL based on your patterns.\n\npython3 scripts/brain.py suggest-tags \"https://example.com\"\n\nDiscovery\n\nWhen you don't know what to read next.\n\ndigest pulls a batch of links for review\nrecommend surfaces links based on your most-used tags\ngems shows your highest-rated links and hidden finds\nrandom grabs something from the backlog\npython3 scripts/brain.py digest\npython3 scripts/brain.py recommend\npython3 scripts/brain.py gems\npython3 scripts/brain.py random\n\nReading Tracking\npython3 scripts/brain.py read 42                # mark as read\npython3 scripts/brain.py unread                  # show unread links\npython3 scripts/brain.py rate 42 5               # rate 1-5\npython3 scripts/brain.py streak                  # current streak and activity\npython3 scripts/brain.py insights                # reading personality, analytics\npython3 scripts/brain.py weekly                  # weekly summary, WhatsApp-ready\n\n\nstreak 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.\n\nCollections\n\nReading lists that reference your saved links.\n\npython3 scripts/brain.py collection create \"Rust\" --description \"Systems stuff\"\npython3 scripts/brain.py collection add \"Rust\" 42\npython3 scripts/brain.py collection show \"Rust\"\npython3 scripts/brain.py collection list\npython3 scripts/brain.py collection remove \"Rust\" 42\npython3 scripts/brain.py collection export \"Rust\"            # markdown\npython3 scripts/brain.py collection export \"Rust\" --html     # standalone HTML\n\nReview Queue\n\nSpaced repetition for your bookmarks. Every saved link enters the queue. Intervals grow as you review: 1 day, 3 days, 7 days, and so on.\n\npython3 scripts/brain.py review                  # next due item\npython3 scripts/brain.py review done 42          # reviewed, advance interval\npython3 scripts/brain.py review skip 42          # not now\npython3 scripts/brain.py review reset 42         # back to 1-day interval\npython3 scripts/brain.py review stats            # queue overview\n\nAuto-Save\n\nThe --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.\n\nKnowledge Graph\npython3 scripts/brain.py graph --open\n\n\nGenerates 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.\n\nGUI Console\npython3 scripts/brain.py gui\n\n\nOpens ~/.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.\n\nAdd --no-open to generate without launching.\n\nImporting\nBrowsers\n\nPull bookmarks directly:\n\npython3 scripts/brain.py scan chrome\npython3 scripts/brain.py scan safari\npython3 scripts/brain.py scan firefox\n\n\nReads from the browser's local bookmark storage. No export step needed.\n\nPlatforms\n\nImport from exported files:\n\npython3 scripts/brain.py import pocket_export.html\npython3 scripts/brain.py import youtube_history.json\npython3 scripts/brain.py import reddit_saved.csv\n\n\nHow to get your exports:\n\nPocket: Go to getpocket.com/export. You'll get an HTML file.\nYouTube: Use Google Takeout. Select YouTube, then pick watch history. You'll get a JSON file.\nReddit: Go to reddit.com/prefs/data-request or old.reddit.com and export saved posts.\nSyncing\n\nCheck for bookmarks that have been removed from a browser source:\n\npython3 scripts/brain.py sync chrome\npython3 scripts/brain.py sources              # see connected sources and sync status\n\nFeedback\npython3 scripts/brain.py feedback \"your message\"\npython3 scripts/brain.py feedback --bug \"something broke\"\npython3 scripts/brain.py feedback --idea \"wouldn't it be cool if...\"\npython3 scripts/brain.py debug                # system info for bug reports\n\nConfig\n\nAll data is stored in ~/.link-brain/:\n\nbrain.db (SQLite database)\ngraph.html (knowledge graph output)\nconsole.html (GUI console)\ncollection-*.md and collection-*.html (exported collections)\n\nOverride the directory:\n\nLINK_BRAIN_DIR=/tmp/test-brain python3 scripts/brain.py setup\n\nTips\nsearch understands time filters like \"last week\" and reading states like \"unread\" or \"best rated\"\nUse --auto on every save unless you have a specific summary in mind. It's fast and surprisingly good.\nreview stats tells you how many links are overdue. Check it weekly.\ngems is great for rediscovering old links you forgot you loved\nExport a collection as HTML to share a reading list with someone\nThe graph gets more interesting after about 50 links. Before that, it's a bit lonely.\nrandom is the \"I'm bored\" button\nCombine scan with sync to keep browser bookmarks in check"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/jakes420/link-brain",
    "publisherUrl": "https://clawhub.ai/jakes420/link-brain",
    "owner": "jakes420",
    "version": "4.3.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/link-brain",
    "downloadUrl": "https://openagent3.xyz/downloads/link-brain",
    "agentUrl": "https://openagent3.xyz/skills/link-brain/agent",
    "manifestUrl": "https://openagent3.xyz/skills/link-brain/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/link-brain/agent.md"
  }
}