ποΈ 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.

β¨ 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
.mdfiles 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
- Download or clone this repository
- Open
chrome://extensions/ - Enable Developer mode (top right)
- Click Load unpacked β select this folder
- 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