Glassy Companion¶
The Glassy Companion is a browser extension for Chrome, Firefox, Edge, and Opera that lets you capture web content — bookmarks, articles, screenshots, highlights, and page elements — directly into your Glassy library.
Current version: v2.13.0 (released July 22, 2026).
What you can do with Companion¶
- One-keystroke capture — save bookmarks, full-page Markdown, region screenshots, and structured captures without leaving the page you're on.
- Unified Save Card — a single progressive-disclosure form: the essentials (title, collection, tags, note, Save) stay visible; one tap on Smart capture expands content-type presets, visibility toggles, and an inline preview — no screen swap, no duplicated fields.
- Smart Save with type presets — auto-detects content and offers four structured types: Article, Video, Repo, Bookmark. Type chips re-run the page interpreter on change so metadata is always fresh before you save.
- Element picker — hover any page element, click to capture it as rich Markdown with the CSS selector persisted for re-captures.
- Highlights from any page — select text → right-click → Save selection to Glassy. The source URL and a timestamp are captured automatically.
- Offline queue — saves are queued in browser storage and synced when your server comes back. You never lose a capture.
- Multi-account routing — pick which Glassy account a capture is written to, directly in the popup.
- KB search — a dedicated KB 🧠 tab in the popup searches your Glassy knowledge base (bookmarks, notes, vault files) with debounced hybrid search and source filters.
- Obsidian Bridge — when your Glassy server cannot reach Obsidian on
127.0.0.1:27124(WSL2 / Docker Desktop on Windows), the extension proxies Obsidian requests for the server and pushes captures directly to your vault as Markdown files with YAML frontmatter. - MCP config snippets — Settings → Integrations shows copy-pasteable config snippets for Claude Desktop, Cursor, Windsurf, OpenCode, Hermes, Openclaw, Pi, and any other MCP-compatible client, with the live server URL.
Installation¶
Pick the install path that matches your browser:
| Browser | Install |
|---|---|
| Chrome / Edge / Opera / Brave / Arc | Download the .zip from the latest GitHub release, extract, and load as an unpacked extension. |
| Firefox 121+ | Install the signed .xpi from the same GitHub release, or open it through about:addons. |
| Inside Glassy | Open app.glassy.fyi/#/extension — the authenticated extension page shows the live download link for your browser. |
The Companion is also available from the in-app #/extension route on a self-hosted instance, where the download links reflect your server URL automatically.
What's new¶
v2.13.0 — July 22, 2026 — Obsidian Bridge MV3 reliability¶
A critical fix for Chrome MV3 service-worker eviction. Previously, Chrome could kill the service worker after ~30 seconds of inactivity, silently dropping the SSE connection that powers the Obsidian Bridge while the popup still showed "Bridge connected" (stale chrome.storage.local status).
- SSE EventSource moved to a persistent offscreen document — Chrome does not evict offscreen documents, so the bridge stays alive indefinitely while the browser is open. A legacy
connectSSEInServiceWorker()path is retained as a fallback for Firefox versions that lack the offscreen Documents API. chrome.runtime.onSuspendhandler — flips the bridge status toconnected:falsewhen the service worker is evicted, so the UI never shows a stale "connected" indicator.- Test Connection now tests the full bridge loop — both the SSE bridge to the server and the direct extension→Obsidian fetch. A green result confirms both legs; a yellow warning surfaces if the SSE bridge is offline while the direct fetch works.
- Settings sync to server — on SSE
onopen, the extension pushes its Obsidian URL to the server'susers.obsidian_urlcolumn, eliminating drift between the web-app database and extension storage. The Obsidian API token never leaves the extension. - Membership gate removed from popup — the extension no longer does any client-side entitlement gating for
glassy_keep. The server remains the single gatekeeper viarequireKeep. This removes the "Unlock GlassyKeep" upsell wall for self-hosted admins (whoseclear_lifetimetier is resolved server-side). - Softer entitlement toast — a 403 from the server now reads "Save unavailable — Saving from the extension requires a Pro plan. Manage your items in your Glassy workspace." instead of "Upgrade required."
Full release notes: github.com/0Reliance/glassy-companion/releases/tag/v2.13.0.
v2.12.0 — July 8, 2026 — Unified Save Card & Obsidian Bridge¶
- Unified Save Card — Quick Save and Smart Save are merged into a single progressive-disclosure card. Essentials (title, collection, tags, note, Save) are always visible; one tap on Smart capture expands content-type presets, visibility toggles, and inline preview. No screen swap, no duplicated fields.
- Obsidian Bridge — the extension acts as a local proxy between the Glassy server and Obsidian Local REST API. The server pushes proxy requests to the extension via SSE; the extension calls Obsidian on
127.0.0.1:27124and returns the result. Bypasses WSL2 / Docker Desktop networking entirely. - Push-to-Obsidian — captures saved via the extension can be pushed directly to the vault as Markdown files with YAML frontmatter, with no server round-trip.
- Cloud → self-host switching — changing the server URL in extension settings detects the change, prompts re-authentication, reconnects the Obsidian Bridge SSE, and invalidates caches.
- Optional host permissions — declares
optional_host_permissionsfor127.0.0.1:27123/27124so users can opt into localhost access for the Obsidian Bridge without widening the base permission set. - Firefox
.xpiavailability — signed.xpibuilds are now published on every GitHub Release for Firefox users who prefer manual install.
Full release notes: github.com/0Reliance/glassy-companion/releases/tag/v2.12.0.
How the extension talks to your server¶
The extension is configured for one Glassy instance at a time. The server URL lives in extension settings — https://app.glassy.fyi for the public instance, https://clear.glassy.fyi for Clear, or your self-hosted URL.
- Authentication — sign in with the same email and password you use in the web app. A JWT token persists in
chrome.storage.localso you stay signed in across browser restarts. - Switching servers — change the URL in Settings. The extension detects the change, prompts you to re-authenticate, reconnects the Obsidian Bridge SSE, and invalidates caches.
- Multi-account — open the popup account picker to choose which account a capture is written to. Captures no longer silently land in the wrong profile.
Capture pipeline (the short version)¶
Every capture — full page, highlight, element, screenshot — travels through the same reliable pipeline before it lands in your library. See the Capture Pipeline guide for the full walkthrough, including:
- The Chrome offscreen-document / Firefox service-worker routing
- The extractor quality gate (rejects navigation-heavy shells and falls back to a clean bookmark)
- Premium Markdown formatting with metadata header
- Screenshot upload as WebP to
POST /api/ext/capture-image - Offline queue with O(n) flush (v2.5.0+)
When things go wrong¶
- "Couldn't establish connection" errors — usually a content-script injection failure on the active tab. The extension's
ensureContentScript()fallback retries before failing. - Captures queue but never sync — open Settings → Debug → Offline Queue. Check the server URL, the last error, and the attempt counter.
- Obsidian Bridge shows offline — verify the URL and API token, click Test Connection. If only the SSE bridge is down, toggle the bridge off and on to re-establish it.
- Server returns 403 on save — Companion no longer blocks saves client-side; this is a real server response. See Common Issues for the server-side reasons.
Learn more¶
- Capture Pipeline — how each capture type is processed
- Offline Behavior — the queue, the flush algorithm, and the O(n) commit
- Obsidian Vault Integration — full Bridge setup, including the WSL2 / Docker Desktop fixes
- Companion track on Glassy Learn — video lessons
- Glassy Companion GitHub releases — full version history with
.zipand.xpiassets