- JavaScript 70%
- HTML 16%
- CSS 14%
Offload #
Go through open tabs one at a time, oldest first, and file each one into Obsidian with a single key. Works in Firefox (128+) and Chrome/Edge (121+) from the same code, with no build step.
| Key | Meaning | What happens |
|---|---|---|
t |
It's a task | Appends - [ ] [Title](url) to today's daily note (or an inbox note), closes the tab |
n |
It belongs in a note | Fuzzy-pick a note (recent ones first, or type a new name), append the link, close the tab |
r |
Read later | Appends to Reading Queue.md, closes the tab |
x |
Don't need it | Logs it to Tab Archive.md, closes the tab |
k |
Still using it | Hides it from triage for 3 days |
o |
Look at it | Switches to the tab; click the toolbar button to come back |
← → / s |
Navigate | Back / skip |
u |
Undo | Reopens the last closed tab (the Obsidian line stays) |
A tab is closed only after Obsidian confirms the write, so a failed write never loses a tab.
Open triage with the toolbar button or Alt+Shift+T. The badge shows your open-tab count.
Setup #
- In Obsidian, install the Local REST API community plugin. In its settings, copy the API key and turn on
Enable Non-encrypted (HTTP) Server (port 27123). To use HTTPS (27124) instead, open
https://127.0.0.1:27124once and accept the self-signed certificate. - If tasks go to the daily note, the core Daily notes plugin (or Periodic Notes) must be enabled.
- Load the extension:
- Firefox:
about:debugging#/runtime/this-firefox→ Load Temporary Add-on… →extension/manifest.json(this lasts until you restart Firefox; see below for a permanent install). - Chrome:
chrome://extensions→ Developer mode → Load unpacked → theextension/folder.
- Firefox:
- Open the extension's settings, paste the API key, click Test connection, then Save.
Or run npm install and then npm run firefox / npm run chrome to launch a throwaway browser profile with the
extension loaded and auto-reloading.
Permanent Firefox install #
Release Firefox only runs signed add-ons. Run npm run build, then upload the zip from web-ext-artifacts/ to
addons.mozilla.org as unlisted (self-distribution). Mozilla signs it automatically, usually within minutes.
Firefox Developer Edition and Nightly can instead set xpinstall.signatures.required to false in about:config.
Development #
npm test: tests the Obsidian client against a fake servernpm run lint: runsweb-ext lint(theservice_workerwarning is expected; Chrome needs that key)
Files live in extension/: triage.* is the triage page, options.* is the settings page, common.js holds the
settings and the Obsidian client, and background.js handles the toolbar button and badge.
Ideas for later #
- Snooze: close now, reopen on a chosen date
- Group related tabs into a project note in one step
- Use an LLM to draft the todo text from the page content
- "Tab bankruptcy": dump every tab into a dated note and close them all