VS Code Extension
Burdenoff Workspaces brings your workspaces and projects into VS Code so the work you do every day never leaves your editor.
Features
- Workspaces sidebar — list, create, and manage workspaces from the activity bar
- Projects sidebar — list, create, update, archive, and delete projects
- Quick actions — command palette for common workspace and project operations
- Open in web — one-click to open a workspace or project in the Burdenoff web app
- Dark/light theme — matches your VS Code theme automatically
Install
Install from the VS Code Marketplace or sideload a local build:
git clone https://github.com/algoshred/workspaces-code-extension.git
cd workspaces-code-extension
bun install
bunx @vscode/vsce package # produces workspaces-<version>.vsix
code --install-extension workspaces-<version>.vsix
Environment selection
The extension resolves GraphQL endpoints, OIDC issuer, and dashboard URLs from BURDENOFF_ENV:
BURDENOFF_ENV=local # http://127.0.0.1:4003 / http://127.0.0.1:4000
BURDENOFF_ENV=alpha # alphagraphqlworkspaces / alphagraphql / alphaapp.burdenoff.com
BURDENOFF_ENV=prod # graphqlworkspaces.burdenoff.com / graphql.burdenoff.com (default)
When BURDENOFF_ENV is unset or invalid, the extension defaults to prod so Marketplace installs work without configuration.
VS Code settings under workspaces.* override the env-derived defaults. Local development is usually:
BURDENOFF_ENV=local code .
Configuration
The extension reads from VS Code settings (workspaces.*):
| Setting | Default | Description |
|---|---|---|
workspaces.workspaceEndpoint | env-derived | Workspace gateway GraphQL endpoint. Settings override BURDENOFF_ENV. |
workspaces.globalEndpoint | env-derived | Global gateway GraphQL endpoint. Settings override BURDENOFF_ENV. |
workspaces.oidcIssuer | env-derived | OIDC issuer URL. Settings override BURDENOFF_ENV; auto-derived from Global Endpoint if empty. |
workspaces.clientId | built-in | OAuth 2.0 client ID (uses built-in default if empty) |
workspaces.workspaceId | — | Workspace ID (auto-set after login) |
Self-hosted Burdenoff customers can point these settings at their own gateway URLs.
Build
bun install
bun run build # production webpack build
bun run build:dev # development build
bun run dev # watch mode
bun run build emits dist/extension.js and the webview bundles under webview-ui/dist/.
Test
bun run compile # compile src
bun run compile:test # compile tests
bun run lint # ESLint
bun run typecheck # tsc --noEmit
bun run test # full VS Code extension-host test suite
bun run smoke:build # verify build artifacts exist and are non-empty
bun run sanity # all checks (lint + typecheck + compile + build + compile:test + test + smoke)
On Linux without a display, the test runner skips the extension-host suite unless WORKSPACES_FORCE_EXTENSION_TESTS=true is set. In CI or with xvfb:
xvfb-run -a env WORKSPACES_FORCE_EXTENSION_TESTS=true bun run test
Open the repo in VS Code and press F5 to launch the Extension Development Host with the latest source.
Commands
The command palette exposes production commands grouped by domain. Top-of-mind ones:
| Command | Shortcut | What it does |
|---|---|---|
Workspaces: Quick Pick | Ctrl+Shift+W | Fuzzy palette across workspaces / projects |
Workspaces: Open Dashboard | Ctrl+K Ctrl+D | Opens the web app dashboard |
Workspaces: Create Workspace | — | Create a new workspace |
Workspaces: Create Project | — | Create a new project in the active workspace |
Workspaces: Refresh All | — | Reloads every tree view |
Workspaces: Login / Logout / Switch Workspace | — | Auth flows |
Run Workspaces: … in the command palette to see the full list.
Troubleshooting
- Tree views empty after sign-in → run
Workspaces: Refresh All; if still empty, your workspace token may be missing —Workspaces: Switch Workspacere-mints it. - Build/dev: run
bun install && bun run sanityin the repo root. - Logs:
View > Output > Workspacesfor extension host logs; webview-side errors land in the panel's DevTools.
Source
- Repository:
github.com/algoshred/workspaces-code-extension - Published on the VS Code Marketplace