Browser Extension
The official browser extension for Burdenoff Workspaces surfaces your workspaces, projects, and notifications from any web page.
Features
- Popup dashboard — workspace stats, recent projects, quick actions
- Context-aware page badge — detects Burdenoff-related pages and links them to matching workspaces
- Quick actions — create projects, send messages, upload files without opening the full app
- Dark/light theme — user preference persisted in extension storage
Install
The extension is distributed via the Chrome Web Store. For local development or sideloading:
git clone https://github.com/algoshred/workspaces-browser-extension.git
cd workspaces-browser-extension
bun install
Environment selection
The active target environment is selected at build time only via BURDENOFF_ENV. The default is prod.
| Variable | Values | Default | Description |
|---|---|---|---|
BURDENOFF_ENV | local | alpha | prod | prod | Selects the default GraphQL gateway endpoints bundled into the extension. |
Examples:
# Production build (default)
bun run build
# Local development build
BURDENOFF_ENV=local bun run dev
# Alpha build
BURDENOFF_ENV=alpha bun run build
The extension never reads
BURDENOFF_ENVat runtime. End users can still override endpoints from the options page, but the defaults are baked into the bundle.
Endpoints
Workspace-scoped operations use the public workspace gateway and global/tenant operations use the public global gateway:
| Environment | Workspace gateway | Global gateway |
|---|---|---|
prod (default) | https://graphqlworkspaces.burdenoff.com/workspaces/graphql | https://graphql.burdenoff.com/global/graphql |
alpha | https://alphagraphqlworkspaces.burdenoff.com/workspaces/graphql | https://alphagraphql.burdenoff.com/global/graphql |
local | http://localhost:4003/workspaces/graphql | http://localhost:4000/global/graphql |
Authentication uses the OAuth2 device-code flow against the global gateway, identical to the Workspaces CLI.
Build
# Production build → dist/
bun run build
# Development build with watch
BURDENOFF_ENV=local bun run dev
# Development build (single run)
BURDENOFF_ENV=local bun run build:dev
# Clean dist/
bun run clean
# Build and package extension.zip
bun run zip
Load in Chrome
- Run
bun run build(orBURDENOFF_ENV=local bun run buildfor local dev). - Open Chrome and navigate to
chrome://extensions/. - Enable Developer mode.
- Click Load unpacked and select the
distfolder. - Open the extension popup and sign in with SSO.
- Select a workspace when prompted.
Test
# Run all tests
bun run test
# Run tests in watch mode
bun run test:watch
# Run with coverage
bun run test:coverage
# Production build smoke test
bun run smoke
# Full sanity check (format + lint + type-check + build + test + smoke)
bun run sanity
Code quality
bun run lint # ESLint
bun run lint:fix # ESLint with auto-fix
bun run format # Prettier
bun run format:check # Prettier check
bun run type-check # TypeScript
Project structure
src/
├── api/ # GraphQL clients and API modules
│ ├── auth/ # OAuth + workspace token flows
│ ├── graphql/ # GraphQL client with retry logic
│ └── *.ts # Entity API modules (workspace, project, conversation, ...)
├── config/ # Environment resolution
├── core/ # Storage wrapper
├── features/ # Context menus, search, notifications
├── types/ # TypeScript definitions
├── ui/ # Popup, options, side panel
├── background.ts # Service worker
└── content.ts # Content script
public/ # Manifest, icons, styles
tests/ # Jest unit tests
scripts/ # Build helpers and smoke tests
Typical user flow
- Install the extension and open the popup.
- Click Sign in with SSO to start the OAuth2 device-code flow.
- Approve the code in the browser tab, then return to the popup.
- Select a workspace from the list.
- Use the popup to see stats, recent projects, and quick actions.
- Visit a Burdenoff-related page to see the contextual badge.
Source
- Repository:
github.com/algoshred/workspaces-browser-extension - Published on the Chrome Web Store