Run vscode.dev locally to test the VS Code workbench and Agents window.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "vscode-dev-workbench" skill from askskill: 1. Download https://raw.githubusercontent.com/microsoft/vscode/main/.github/skills/vscode-dev-workbench/SKILL.md 2. Save it as ~/.claude/skills/vscode-dev-workbench/SKILL.md 3. Reload skills and tell me it's ready
Guide me to start the vscode.dev development server from local microsoft/vscode sources and show me how to open the workbench in the integrated browser using a URL with vscode-quality=dev.
Step-by-step startup instructions, required commands, and the exact method to open the local workbench with the specified URL.
I want to test browser interactions in a local vscode.dev environment. Give me a workflow to open the page, navigate to Explorer, open the Command Palette, and verify basic functionality.
An actionable browser test flow to verify that core workbench interactions are functioning correctly.
Explain how to connect a mock agent host while running vscode.dev locally to test the Agents window, including required configuration, startup steps, and validation checks.
A local mock agent host integration plan covering configuration, run commands, and a validation flow for the Agents window.
The vscode-dev repo is the vscode.dev server. When run locally with ?vscode-quality=dev, it serves the VS Code web workbench (or Agents window at /agents) from the sibling microsoft/vscode checkout. This is the fastest way to validate web-only changes to the workbench without shipping an Insiders build.
vscode-dev and vscode must be sibling folders:
<workRoot>/
vscode/ # microsoft/vscode checkout
vscode-dev/ # microsoft/vscode-dev checkout
If your paths differ, check server/ in vscode-dev for the source root resolution — the /vscode-sources/* route maps to ../vscode.
Critical: Run npm run dev from the vscode-dev folder, NOT from vscode. The vscode repo has no dev script and will fail with npm error Missing script: "dev". Terminal tools that simplify/strip leading cd into separate commands will silently keep the cwd of a previous terminal — always use an absolute pushd or verify with pwd before npm run dev.
cd /path/to/vscode-dev # NOT /path/to/vscode
npm run dev # runs watch + nodemon; serves https://127.0.0.1:3000
If you're driving this through an agent/terminal tool, prefer:
pushd /absolute/path/to/vscode-dev >/dev/null && pwd && npm run dev
On first start you may see one crash like Cannot find module './indexes' — it's the watcher racing the first build. nodemon restarts automatically once out/ finishes compiling. The server is ready when curl -sk -o /dev/null -w "%{http_code}" https://127.0.0.1:3000/ returns 200.
https://127.0.0.1:3000/?vscode-quality=dev — main workbench, local dev sourceshttps://127.0.0.1:3000/agents?vscode-quality=dev — Agents window, local dev sourceshttps://127.0.0.1:3000/?vscode-version=<commit> — pinned production commit&vscode-log=trace for verbose client loggingUse open_browser_page and the standard browser tools.
The chat input is a Monaco editor — page.keyboard.press('Enter') inserts a newline. To send, click the Send button (a[aria-label^="Send"]) or use the send keybinding.
The service worker caches client assets aggressively. A plain reload can still serve stale modules:
await page.evaluate(async () => {
const regs = await navigator.serviceWorker?.getRegistrations() ?? [];
await Promise.all(regs.map(r => r.unregister()));
const keys = await caches?.keys() ?? [];
await Promise.all(keys.map(k => caches.delete(k)));
});
await page.reload({ waitUntil: 'domcontentloaded' });
The integrated browser panel clamps width, so page.setViewportSize() and CDP setDeviceMetricsOverride narrow the viewport only as far as the panel allows. User-Agent override and touch emulation work fine:
const client = await page.context().newCDPSession(page);
await client.send('Emulation.setUserAgentOverride', {
userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1',
platform: 'iPhone'
});
await client.send('Emulation.setTouchEmulationEnabled', { enabled: true, maxTouchPoints: 5 });
await client.send('Emulation.setDeviceMetricsOverride', {
width: 393, height: 852, deviceScaleFactor: 3, mobile: true,
screenOrientation: { type: 'portraitPrimary', angle: 0 }
});
await page.reload();
For a true mobile viewport, drive a standalone Playwright script with devices['iPhone 14 Pro'] instead of the integrated browser. If a mobile-responsive overlay intercepts pointer events during automation, fall back to { force: true } on click().
…
Validate Azure DevOps pipeline changes and troubleshoot builds and YAML faster.
Upgrade Anthropic SDKs, migrate versions, and fix dependency or typing issues.
Generate or update chat customization files for AI coding agents.
Find and read Code OSS dev build logs for faster debugging.
Merge session branch changes back into the base branch cleanly.
Create and maintain screenshot test fixtures for UI components effectively.
Run, filter, and debug unit tests in the VS Code repository.
Run and filter integration tests in the VS Code repo confidently.
Expose VS Code's integrated browser to AI agents and scripts locally.
Let AI control VS Code for coding, debugging, screenshots, and test automation.
Give your VS Code agent real debugging with breakpoints, stepping, and inspection.
Launch VS Code OSS in isolation for automation and multi-process debugging.