Capture every open tab, organize them with AI, and save structured sessions to your personal Browsing Library.
- Captures tabs across all open browser windows in one click
- Guides you through a 3-step workflow: Capture → Review → Save
- Groups tabs into editable categories automatically
- Enriches each tab with AI-generated tags, description, and summary (optional — uses your own Gemini API key)
- Saves structured sessions into Chrome bookmarks + local extension storage
- Lets you search, filter, and reopen saved tabs from the built-in Library
Click Capture & Review in the popup or Capture All Windows in the dashboard. TabLedger scans every open browser window, skips unsupported browser pages, and builds a draft workspace.
Tabs appear grouped by category. Click any row to expand its fields and edit Category, Tags, Description, or Summary.
- Use Fill with AI on a single tab or Use AI for the whole draft
- Rename a category by typing in the name field — Save confirms the rename, Delete Category removes that group from the draft
- Expand All / Collapse All to manage large sessions
Click Name & Save →, enter a session name, then Save to Library →. The newly saved session is highlighted in the Library.
Search and reopen any saved session at any time.
- Filter by title, URL, category, tag, description, or summary
- Open all matching tabs at once
- Edit or delete individual saved tabs
- Open it directly from the popup with Open Library
- Switch between Draft and Library from the workspace toggle at any point
AI runs only when you ask — it never runs automatically.
- Open Settings (gear icon, top right) and paste your Gemini API key
- Click Fill with AI on one tab or Use AI for the whole draft
- TabLedger sends only the tab title, URL, and hostname to Gemini
- Category, tags, description, and summary are filled in — your manual edits are never overwritten
The default model is gemini-2.5-flash. You can change it in Settings.
- Clone or download this repo
- Open
chrome://extensions - Enable Developer mode
- Click Load unpacked and select this folder
| File | Purpose |
|---|---|
manifest.json |
Extension manifest |
popup.html / popup.js |
Popup launcher |
dashboard.html / dashboard.js |
Main workspace UI |
background.js |
Bookmark persistence and library operations |
styles.css |
All styles |
icon-*.png |
Extension icons (16, 32, 48, 128px) |
TabLedger has no servers and collects no data. Everything stays in your browser:
- Tab data → saved to your Chrome bookmarks and
chrome.storage.local - Settings → stored in
chrome.storage.local - AI fill → only tab title, URL, and hostname are sent directly from your browser to Google Gemini using your own API key — nothing goes to any TabLedger server
TabLedger requests the smallest set of Chrome permissions needed for its current feature set:
tabs— required during capture to read each open tab'surl,title, andfavIconUrl, which TabLedger uses to build the draft, skip unsupported pages, group tabs, and show titles, links, summaries, tags, and faviconsbookmarks— required to save sessions into the Browsing Library and manage saved entriesstorage— required to persist drafts, saved session metadata, and local settings
Without tabs, the capture flow cannot reliably build a full draft from all open windows because Chrome does not expose those sensitive tab fields to extensions by default.
Vanilla JS · Chrome Extension Manifest V3 · Chrome Bookmarks API · chrome.storage.local · Gemini API (optional)



