Skip to main content

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.*):

SettingDefaultDescription
workspaces.workspaceEndpointenv-derivedWorkspace gateway GraphQL endpoint. Settings override BURDENOFF_ENV.
workspaces.globalEndpointenv-derivedGlobal gateway GraphQL endpoint. Settings override BURDENOFF_ENV.
workspaces.oidcIssuerenv-derivedOIDC issuer URL. Settings override BURDENOFF_ENV; auto-derived from Global Endpoint if empty.
workspaces.clientIdbuilt-inOAuth 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:

CommandShortcutWhat it does
Workspaces: Quick PickCtrl+Shift+WFuzzy palette across workspaces / projects
Workspaces: Open DashboardCtrl+K Ctrl+DOpens 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 Workspace re-mints it.
  • Build/dev: run bun install && bun run sanity in the repo root.
  • Logs: View > Output > Workspaces for 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

Next steps​