Verstak Browser Extension — Firefox/Chromium, page/text capture, link sending, pending queue, domain bindings
 
 
 
 
Go to file
mirivlad f0b66c05ff docs: describe receiver token pairing 2026-06-29 04:52:54 +08:00
chromium Prepare browser extension release pipeline 2026-06-28 00:37:36 +08:00
firefox Prepare browser extension release pipeline 2026-06-28 00:37:36 +08:00
scripts Prepare browser extension release pipeline 2026-06-28 00:37:36 +08:00
shared Prepare browser extension release pipeline 2026-06-28 00:37:36 +08:00
.gitignore Prepare browser extension release pipeline 2026-06-28 00:37:36 +08:00
AGENTS.md docs: add AGENTS.md with platform architecture rules 2026-06-16 11:53:22 +08:00
README.md docs: describe receiver token pairing 2026-06-29 04:52:54 +08:00
package-lock.json Prepare browser extension release pipeline 2026-06-28 00:37:36 +08:00
package.json Prepare browser extension release pipeline 2026-06-28 00:37:36 +08:00

README.md

verstak-browser-extension

Verstak Browser Extension captures pages, selected text, and links and sends them to a local Verstak browser inbox receiver.

The extension does not know Notes, Files, Activity, or Journal internals. It only sends capture events through the public local receiver protocol. If the receiver is offline, captures stay in the extension pending queue.

Build

npm ci
npm test
npm run build

Build output:

  • dist/chromium
  • dist/firefox

Firefox Release

Firefox signing uses web-ext and AMO credentials from an env file. The script requires WEB_EXT_API_PROXY; AMO upload and approval polling run through that proxy.

VERSTAK_BROWSER_ENV=/home/mirivlad/git/verstak/.env npm run release:firefox

Release output:

  • release/firefox/verstak-firefox-<version>.xpi
  • release/firefox/updates.json

The XPI is signed as an unlisted/self-distributed Firefox extension. Build and release artifacts are local outputs and are not committed.

Manual Check

  1. Start Verstak desktop with the verstak.browser-inbox plugin installed.
  2. Open the Browser Inbox workspace item so it subscribes to capture events.
  3. Install/load dist/firefox or the signed XPI in Firefox.
  4. Use the popup Send Page action, or use page context menu actions for selection/link captures.

Local Receiver Protocol

Default endpoint:

POST http://127.0.0.1:47731/api/browser-inbox/v1/captures

Headers:

  • Content-Type: application/json
  • X-Verstak-Receiver-Token: <token> required when the desktop receiver is in paired mode

Payload:

{
  "schemaVersion": 1,
  "captureId": "uuid-or-generated-id",
  "capturedAt": "2026-06-27T00:00:00.000Z",
  "source": "verstak-browser-extension",
  "kind": "page",
  "page": {
    "url": "https://example.com/article",
    "title": "Example Article",
    "domain": "example.com"
  },
  "browser": {
    "name": ""
  }
}

Supported kind values:

  • page
  • selection, with selection.text
  • link, with link.url and optional link.text

Expected success response:

{ "status": "accepted", "captureId": "uuid-or-generated-id" }