Skip to content
| Marketplace
Sign in
Visual Studio Code>Notebooks>VericNew to Visual Studio Code? Get it now.
Veric

Veric

veric

|
1 install
| (0) | Free
Veric workspaces inside VS Code, Cursor, and VS Code Web.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

veric-extension

VS Code Web extension that lets users open Veric workspaces inside their existing VS Code, Cursor, or VS Code Web (vscode.dev / github.dev) install. Dual-published to the Microsoft Marketplace (veric.veric-extension) and Open VSX (veric/veric-extension).

Design doc: docs/multi-surface-uplift/surface-3-extension.md.

Targeting

This extension is web-targeted — the manifest sets browser (not main), the esbuild config sets platform: "browser", and the source must not import any Node-only API (fs, child_process, path.resolve, etc.). A web-targeted extension is the only form that runs in all three of vscode.dev, desktop VS Code, and Cursor (see design doc §2).

Scope (0.3.0)

Phases 3.1 – 3.8 are now live:

  • Commands veric.hello, veric.run, veric.showResult, veric.showTransportLog, veric.importFile, veric.exportFile.
  • VericFsProvider against the in-memory bridge shim (src/fs/bridge-shim.ts). A real remote-VFS swap-in is queued for Phase 4.8.
  • vscode-languageclient/browser language client for .while files, configured via the veric.lspUrl setting.
  • vscode.AuthenticationProvider (id veric) + OAuth URI handler.
  • Result webview panel mounting <ResultCard/> from @veric/views-react over a WebView HostBridge transport.
  • Direct kernel transport (0.3.0). veric.run resolves a kernel bridge from the cross-realm Symbol.for("veric.ide.kernel-bridge") first (so the embedded /ide route stays a thin client); when no bridge is published, the extension self-constructs one against the veric.kernelUrl endpoint (default wss://kernel.veric.dev/rpc). Bearer auth is plumbed via the Sec-WebSocket-Protocol subprotocol carrier.

Settings

Every contributed veric.* setting is listed here in one place; this table is the human-readable mirror of apps/extension/package.json contributes.configuration. A CI gate (pnpm settings-doc-check → scripts/check-settings-doc.mjs) fails any PR that adds a setting to the manifest without documenting it here, and vice-versa.

Setting Type Default Description Read by
veric.lspUrl string "" WebSocket URL for the WHILE language server (e.g. ws://localhost:7037/while). Empty disables the language client. No prod LSP endpoint is deployed yet. src/lsp/client.ts → resolveLspUrl(); src/lsp/status-bar.ts renders the resulting state in the bar.
veric.kernelUrl string wss://kernel.veric.dev/rpc WebSocket URL for the Veric kernel RPC endpoint. Default targets the hosted production kernel; set to ws://localhost:7037/rpc against a local ai-kernel-server. src/run/kernel-bridge-self.ts and src/run/run-command.ts (for the transport-log diagnostic).

Scripts

Script What it does
pnpm typecheck tsc --noEmit against the strict tsconfig (ES2022, Bundler, noUncheckedIndexedAccess, exactOptionalPropertyTypes).
pnpm build esbuild bundles src/extension.ts → dist/extension.js (browser CJS, vscode external). Also emits dist/lsp-worker.js and dist/result-webview.js.
pnpm test vitest — unit tests with a stubbed vscode module (tests/setup.ts). 57 specs at last count.
pnpm test:electron Boots a real desktop VS Code via @vscode/test-electron (web extension host, --extensionDevelopmentKind=web), installs this extension as a dev extension, and runs the Mocha smoke suite at test/host/suite/smoke.test.ts against the live vscode API. Downloads VS Code stable into .vscode-test/ on first run (~200 MB).
pnpm test:web Same suite, but against VS Code Web via @vscode/test-web + headless Chromium — proves activation on the vscode.dev / Cursor target. Downloads VS Code Insider Web into .vscode-test-web/ on first run (~45 MB).

Two test layers

The extension has two complementary test layers:

  1. vitest unit tests under tests/ mock the vscode module via tests/setup.ts. They run on plain Node, cover every provider / command handler in detail, and are the workhorse for TDD iteration.
  2. Mocha real-host smoke under test/host/ runs inside a real VS Code spawned by @vscode/test-electron or @vscode/test-web. It asserts that the manifest + the bundled dist/extension.js actually register the contributed commands / FS provider / auth provider against the genuine host. The CI publish workflow gates on pnpm test (the unit layer); the host suite is run locally and in nightly CI to catch manifest / bundler regressions that the mock layer can't see.

Release process (Phase 3.6)

Dual-publish is automated by .github/workflows/extension-publish.yml. The workflow fires on tags matching extension-v* (e.g. extension-v0.2.1) and on manual workflow_dispatch runs (dispatch defaults to dry_run=true — it builds + packages but skips the actual Marketplace / Open VSX uploads).

To cut a release:

  1. Bump version in apps/extension/package.json to the new semver.
  2. Open a PR with just the bump, get it merged to main.
  3. From a clean checkout of main:
    git pull
    VERSION=$(node -p "require('./apps/extension/package.json').version")
    git tag "extension-v${VERSION}"
    git push origin "extension-v${VERSION}"
    
  4. Watch the workflow under Actions → extension-publish. On green, the new version is live on the Microsoft Marketplace (veric.veric-extension) and Open VSX (veric/veric-extension) within a few minutes.

Required repo secrets (one-time setup)

Before the first release, configure the following GitHub repo secrets in Settings → Secrets and variables → Actions:

Secret Purpose Where to get it
VSCE_PAT Microsoft Marketplace publish token Azure DevOps PAT under the veric Marketplace publisher, scope Marketplace · Manage. See VS Code docs.
OVSX_PAT Open VSX publish token Generated at https://open-vsx.org/user-settings/tokens for an account that owns the veric namespace. See Open VSX docs.

The workflow has no fallback — if either secret is unset when a tag lands, the corresponding publish step fails loudly. That's intentional: missing secrets must not silently skip publishing.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft