Home
Softono
naotab

naotab

Open source MIT JavaScript
40
Stars
7
Forks
0
Issues
0
Watchers
2 months
Last Commit

About naotab

A Chrome extension that turns your browser tabs into a personal knowledge base β€” save tabs with context, auto-tag with AI, and visualize connections as a network graph.

Platforms

Web Self-hosted

Languages

JavaScript

Links

πŸ—‚οΈ naoTab β€” Your Personal Tab Knowledge Base

πŸ‡»πŸ‡³ Xem phiΓͺn bαΊ£n tiαΊΏng Việt

A Chrome Extension (Manifest V3) that turns your browser tabs into an organized, searchable personal knowledge base β€” no server, no backend, everything runs locally inside the extension.


naoTab Overview


✨ Features

  • Save tabs with context β€” add a summary, reason for saving, and tags to any tab
  • Brain Visualize β€” D3.js force-directed graph; nodes = bookmarks, edges = shared tags; blue node = has summary, grey = no summary
  • List view β€” searchable card list with full-text search across title, URL, reason, and tags
  • Node panel β€” click any node or card to open a side panel with full details and inline editing
  • Exclude tags from graph β€” temporarily hide a tag's connections without deleting it, to declutter the graph
  • AI integration (optional, off by default) β€” auto-suggest tags and summaries via OpenAI, Claude, Groq, Ollama, OpenRouter, or any OpenAI-compatible provider
  • AI Suggest in panel β€” re-run AI on any saved bookmark directly from its detail panel
  • AI Batch β€” one-click AI processing for all currently visible/filtered nodes; skips nodes that already have a summary; live progress bar with real-time color update
  • SEO meta extraction β€” reads page meta tags (og:description, keywords, author, etc.) on save; ~10Γ— more token-efficient than scraping body text
  • Save whole window β€” bulk-save all tabs in a window, each with its own meta tags captured
  • Obsidian export β€” ZIP of .md files with YAML frontmatter, ready to open as an Obsidian vault
  • JSON export / import β€” full backup and restore
  • Connected nodes β€” node panel shows all bookmarks linked to the selected node (within current filter), click to navigate between them
  • Sidebar node list β€” left sidebar split into Tags (top) + live node list (bottom), updates with filter/search in real time
  • Hover tooltips β€” hover any node or sidebar item to preview title + summary instantly
  • 100% local β€” all data in chrome.storage.local, nothing leaves your machine except optional AI API calls

πŸ“¦ Installation

  1. Download or clone this repository
  2. Open chrome://extensions/
  3. Enable Developer mode (top right)
  4. Click Load unpacked β†’ select this folder
  5. Pin the extension to your toolbar

πŸš€ Usage

Saving tabs

Action How
Save active tab Click πŸ’Ύ Tab this in the toolbar
Save any tab Click πŸ’Ύ next to a tab in the list
Save whole window Click πŸ’Ύ Save window β€” captures meta for every tab

Fill in summary (optional), reason (optional), and tags. If AI is enabled, click ✨ AI Suggest.

Brain Visualize (Graph view)

  • Default view when opening the Knowledge Base
  • πŸ”΅ Blue node = has summary (AI or manual) Β· βšͺ Grey node = no summary yet
  • Click a node β†’ side panel opens; connected nodes highlight, others dim
  • Double-click a node β†’ opens the URL in a new tab
  • Click the background β†’ reset highlights, close panel
  • Drag nodes to rearrange the layout

Excluding a tag from the graph

In the left sidebar, hover over any tag β†’ click βœ• to exclude it from graph edges. The tag turns red with strikethrough. Click ↩ to restore it. Useful when a generic tag like github connects too many unrelated nodes.

Editing a bookmark

Click any node or card β†’ edit summary, reason, and tags in the side panel β†’ πŸ’Ύ Save.

AI Suggest in the panel

If AI is configured, the ✨ AI Suggest button appears in the panel. It uses the saved page meta to re-generate tags and summary.

Settings

Click βš™οΈ β†’ choose a provider preset β†’ enter API key and model β†’ πŸ§ͺ Test connection β†’ πŸ’Ύ Save Settings.


πŸ€– AI Integration

Provider API Format
OpenAI, Groq, Ollama, OpenRouter, custom OpenAI-compatible (/chat/completions)
Anthropic (Claude) Native Anthropic API (/messages)

AI reads only page meta tags (~75 tokens) instead of full page body (~750 tokens) β€” 10Γ— more efficient.

AI is off by default. Offline keyword + domain-based tag suggestions always work without any API key.


πŸ—„οΈ Data Schema

{
  "id": "1712345678901",
  "url": "https://...",
  "title": "Page title",
  "reason": "Why I saved this",
  "summary": "AI or manual summary",
  "tags": ["rust", "async"],
  "favIconUrl": "https://...",
  "pageMeta": {
    "description": "...",
    "ogTitle": "...",
    "keywords": "...",
    "author": "...",
    "siteName": "...",
    "ogType": "...",
    "ogImage": "...",
    "lang": "en",
    "canonical": "https://..."
  },
  "savedAt": "2024-01-01T00:00:00.000Z",
  "updatedAt": "2024-01-01T00:00:00.000Z"
}

πŸ”’ Permissions

Permission Reason
tabs Read title, URL, and favicon of open tabs
storage Save bookmarks and settings locally
unlimitedStorage Remove the default 10MB cap
scripting + host_permissions Read page meta tags on demand

πŸ› οΈ Development

After editing any file, open the popup and click πŸ”„ to reload the extension.

naoTab/
β”œβ”€β”€ manifest.json              # Manifest V3
β”œβ”€β”€ popup.html / popup.css / popup.js   # Extension popup
β”œβ”€β”€ app.html / app.js          # Full-page Knowledge Base
β”œβ”€β”€ settings.html / settings.js # AI provider settings
β”œβ”€β”€ storage.js                 # Shared: bookmarks CRUD + settings + AI call
β”œβ”€β”€ d3.min.js                  # D3.js v7 (bundled locally β€” CSP)
β”œβ”€β”€ jszip.min.js               # JSZip (bundled locally β€” CSP)
└── icons/                     # Extension icons

πŸ—ΊοΈ Roadmap

  • [ ] Google Drive sync
  • [ ] Dark mode
  • [ ] Duplicate tab detector
  • [ ] AI-powered bookmark grouping
  • [ ] Browser history integration

πŸ“„ License

MIT β€” see LICENSE