JumpStart Workbench Deployment
Build, packaging, distribution, and installation for the JumpStart Workbench VS Code extension and desktop app
Updated 2026-11-03
Verified 2026-11-03
JumpStart Workbench is distributed as two self-contained artifacts — a VS Code extension (ey-cosmos.cosmos-workbench, display name JS Workbench) published to the VS Code Marketplace, and a packaged Electron desktop app — plus an optional CLI/server mode for browser/PWA use. There is no hosted multi-tenant deployment; each consultant installs the extension or desktop app on their own machine.
Build And Package
Packaging always runs from the cosmos-workbench repo root, with cosmos-code (and cosmos-sdk-typescript) checked out as siblings (see Integration for the required layout).
VS Code Extension
bun run vscode:package # host platform only
node packages/vscode/scripts/package-vsix.mjs darwin-arm64 win32-x64 # standard publish set
node packages/vscode/scripts/package-vsix.mjs --all # same standard set
Each target produces one platform-specific .vsix in packages/vscode/dist-vsix/; no universal VSIX is built because each one carries the matching runtime binary:
| File | For |
|---|---|
cosmos-workbench-<version>-darwin-arm64.vsix | Apple Silicon Mac (M1 and later) |
cosmos-workbench-<version>-win32-x64.vsix | Windows on Intel or AMD |
These two targets are the standard publish set. Other targets (darwin-x64, win32-arm64, linux-x64, linux-arm64) can be built by passing them explicitly when there is demand.
Build the Cosmos Code runtime first with bun run build --skip-embed-web-ui in cosmos-code/packages/opencode; the packaging script only copies whatever is already in dist/, so a stale build silently ships an old runtime. Build feature branches with OPENCODE_CHANNEL=develop, because the runtime stores sessions in a per-channel database and a different channel opens an empty one.
Packaging stages the built Cosmos Code binary into packages/vscode/resources/opencode-cli/ and verifies it against a cosmos-runtime.json manifest before producing the .vsix. Rebuilding the VSIX for a plain code change is the slow path — use bun run vscode:dev for iteration (see DEV-LOOP.md in the repo).
Desktop App
bun run electron:build
Runs, in order: build the web UI and stage it into packages/electron/resources/web-dist; stage the built Cosmos Code runtime into packages/electron/resources/opencode-cli; bundle Electron main code; rebuild native modules for the Electron runtime; run electron-builder.
| Platform | Artifacts |
|---|---|
| macOS | .dmg, .zip (needs Xcode/build tools for notarized builds) |
| Windows | NSIS installer (unsigned if no Windows signing env is set) |
| Linux | AppImage, built natively per architecture (OPENCHAMBER_TARGET_ARCH=x64 or arm64) |
Linux AppImages require FUSE (libfuse2/libfuse2t64) to run, or APPIMAGE_EXTRACT_AND_RUN=1 as a fallback. Auto-update on Linux only works when the app is running from a writable AppImage path.
Distribution
The VS Code extension is published as ey-cosmos.cosmos-workbench to the VS Code Marketplace, and the CI workflow (.github/workflows/vscode-extension.yml, run on v* tags or by manual dispatch) also publishes it to Open VSX. A local publish uses vsce publish --packagePath <vsix> for each target with a Marketplace PAT for the ey-cosmos publisher; the repo's docs/PUBLISHING.md describes the full release steps, including bumping the version in all five package.json files together. Desktop installers and side-loaded .vsix files can still be shared directly, matched to the recipient's OS and architecture.
Install (VS Code Extension)
Install JS Workbench (ey-cosmos.cosmos-workbench) from the Extensions view, or side-load a .vsix as below. The extension requires VS Code 1.106 or later.
- Uninstall the old extension first, if present. The extension identifier changed from
ey-cosmos.cosmos-dev-studiotoey-cosmos.cosmos-workbench; VS Code treats them as separate extensions and will run both (two runtimes, two chat views) if both are installed:bashCredentials (code --uninstall-extension ey-cosmos.cosmos-dev-studio~/.local/share/cosmos-code/auth.json) and settings keys are unaffected by the rename. - On macOS, clear the download quarantine before installing a
.vsixthat arrived via Teams, email, or a browser — otherwise macOS kills the embedded runtime on launch:bashxattr -dr com.apple.quarantine cosmos-workbench-<version>-darwin-arm64.vsix - Install via the Extensions view (
...menu → Install from VSIX...) or:bashcode --install-extension cosmos-workbench-<version>-darwin-arm64.vsix - Reload VS Code, open the JS Workbench view, then go to Settings → Providers → Cosmos and click Sign in to Cosmos. Sign-in uses OAuth with PKCE — no client secret or config file needed. The workspace is bound to the organization named
jumpstartwhen you belong to it (or to your only organization); otherwise pick one, then confirm a project. Use Change Organization or Change Project from the Command Palette to switch later.
The extension writes ~/.config/cosmos-code/cosmos-code.jsonc (Windows: %USERPROFILE%\.config\cosmos-code\cosmos-code.jsonc) with Cosmos service endpoints on first activation and adds a cosmos provider if one is missing. When a release raises the config migration version, the five Cosmos service URLs are reset to the bundled defaults once and the stored token is cleared, so you sign in again; other settings are kept. It also registers the bundled SAP MCP server as mcp.sap unless you defined that entry yourself. Credentials live separately in ~/.local/share/cosmos-code/auth.json, never in the config file.
Network Notes
The extension relaxes TLS verification for the runtime it starts (NODE_TLS_REJECT_UNAUTHORIZED=0), because EY network interception re-signs traffic with a CA the bundled runtime does not trust by default. To keep verification enabled instead, set NODE_EXTRA_CA_CERTS to the corporate CA bundle before starting VS Code; an explicitly set NODE_TLS_REJECT_UNAUTHORIZED is also respected. SAP connections have their own certificate settings (see Integration).
Troubleshooting
| Symptom | Likely Cause | Fix |
|---|---|---|
| Only "Sign in to load your agents" in the model picker | Not signed in, or session expired | Sign in from Settings → Providers → Cosmos; check the JS Workbench and JS Workbench Runtime output channels and ~/.local/share/cosmos-code/log/cosmos.log for cosmos.catalog.* entries |
| View loads forever / stays empty | Wrong .vsix architecture installed, or runtime cannot start | Reinstall the .vsix matching your OS/architecture; check the output channel for the resolved runtime path |
| "Command not found" or unexpected runtime version | cosmos.opencodeBinary setting (or an opencodeBinary value in the shared OpenChamber settings) pointing at a stale or missing binary | Clear the setting unless deliberately running a custom build |
| Sign-in prompt reappears after an update | The release migrated Cosmos endpoints and cleared the old token | Sign in again; the token from the previous environment is no longer valid |
| SAP tools fail or are missing | No SAP connection saved, password not stored, or runtime not restarted after saving | Run SAP: Test Connection, then restart the runtime; check that a user-defined mcp.sap entry is not shadowing the bundled one |
| Two chat views / duplicate runtimes | Old ey-cosmos.cosmos-dev-studio extension still installed alongside ey-cosmos.cosmos-workbench | Uninstall the old extension identifier |