Nopilot: setup and debugging
Get the lab installed and your debugging tools working. No exploitation on this page, just the toolkit. When you can do everything here, open the flag console and start.
1. What you need
- VS Code 1.95+ (or a fork that installs a
.vsix: Cursor, VSCodium, Windsurf). - A Chromium browser (Chrome, Edge, Brave) for attaching to the extension host.
- The extension: nopilot.vsix.
No Node install is required to run the lab.
2. Install the extension
Any one of these:
UI
- Open the Extensions view (Ctrl/Cmd+Shift+X).
- Click the
...menu at the top, then Install from VSIX... - Pick
nopilot.vsix. Reload if prompted.
Command palette
- Ctrl/Cmd+Shift+P, then Extensions: Install from VSIX...
- Pick
nopilot.vsix.
CLI
code --install-extension nopilot.vsix
# or: cursor --install-extension nopilot.vsix
# or: codium --install-extension nopilot.vsix
Verify
Open any folder. The Nopilot icon appears in the activity bar and the chat sidebar
auto-focuses. Type hello and it should answer.
3. The debugging toolkit
These are the skills the flag console rewards. Get each working once here.
Webview developer tools
The chat sidebar is a web page (a webview). To inspect it:
- Focus the Nopilot chat.
- Ctrl/Cmd+Shift+P, then Developer: Open Webview Developer Tools.
- Use the Elements tab to read the DOM and the Console to run JavaScript in the page.
If you see more than one frame, pick the active one. This is where you inspect rendered content and
watch postMessage traffic:
window.addEventListener('message', e => console.log(e.data));
Attach a debugger to the extension host
The privileged half of the extension runs in a Node process. Attach to it:
- Close all editor windows.
- Relaunch with the inspector on:
code --inspect-extensions=9229 - Open a Chromium browser at
chrome://inspect, click Configure, addlocalhost:9229, then click inspect on the target that appears. - In the Sources tab, open the extension's
out/extension.js, set a breakpoint, and drive the extension to hit it. Inspect locals in the Scope pane.
Working from source instead? Open the extension/ folder and press F5 (Run
Extension) to launch an Extension Development Host with the debugger already attached.
Read the installed source
What ships is compiled, and it lives on disk. Find it:
~/.vscode/extensions/vscodelab.nopilot-*/ # VS Code
~/.cursor/extensions/vscodelab.nopilot-*/ # Cursor
~/.vscode-oss/extensions/vscodelab.nopilot-*/ # VSCodium
%USERPROFILE%\.vscode\extensions\ # Windows
The bundle is out/extension.js; the manifest is package.json.
Unpack the .vsix
A .vsix is a zip. Take it apart without installing:
unzip nopilot.vsix -d nopilot-unpacked
# contents land under nopilot-unpacked/extension/
Read the logs
Extensions log where you can watch them:
- View, then Output, and choose Nopilot in the dropdown.
- The same dropdown has Log (Extension Host) for lower-level messages and errors.
4. Next
Open the flag console, collect the setup flags to prove each tool works, then move on to the bug hints. The slides cover the concepts.
Uninstall when done
code --uninstall-extension vscodelab.nopilot
Or in the Extensions view: find Nopilot, gear icon, Uninstall.