InsightWorker Logo
  • contact@verticalserve.com
Docs / VS Code extension / Overview

VS Code Extension

The InsightWorker VS Code extension brings the agent into your editor — chat panel on the right, code edits applied directly to files, terminal commands proposed inline.

Install

Two paths:

From the VSIX (current)

  1. Download the latest VSIX:
    curl -fLo ~/Downloads/insightworker-vscode-latest.vsix \
      https://insightworker.com/releases/insightworker-vscode-latest.vsix
  2. Install it:
    code --install-extension ~/Downloads/insightworker-vscode-latest.vsix
    or in VS Code: Extensions menu → Install from VSIX…
  3. Reload the window (Cmd+Shift+PDeveloper: Reload Window)

From source (development)

git clone https://github.com/<org>/insightworker
cd insightworker/desktop-vscode
npm install
npm run package
# Produces dist/insightworker-vscode-x.x.x.vsix in the same dir
code --install-extension dist/insightworker-vscode-*.vsix

First-time setup

On install, the extension auto-installs the insightworker CLI binary if it's not on your PATH. You can also install it manually:

npm install -g @verticalserve/insightworker

It then asks you to provide credentials for an LLM provider. The simplest paths:

Settings are read from ~/.insightworker/.env. If the file doesn't exist, the extension's onboarding panel walks you through creating it.

Layout

After install, two surfaces show up:

  1. Activity bar icon (left rail) → opens the InsightWorker chat panel
  2. Editor pane → click the InsightWorker icon at the top right of the editor for the inline mode (acts on the current file)

The chat panel docks to the right by default. If it lands on the left, use View → Move View → Right, or close and reopen via Cmd+Shift+PInsightWorker: Open Chat.

Using chat

  • Type questions and tasks in the chat textarea — Cmd+Enter (or Ctrl+Enter) to send.
  • Reference an App with @ or # — typing either character after a word boundary pops up a picker listing every App bundle in the workspace (anything with an app.yaml). Pick one with ↑/↓ Enter. At send time, @slug rewrites to /app run <slug> so the CLI handles it deterministically instead of letting the LLM improvise.
  • Copy button on code blocks — every fenced code block in the agent's response gets a "Copy" button on hover. Click once, it flashes green, your clipboard has the snippet.
  • Tool calls shown inline — each bash / write_file / etc. call renders as a one-line summary with the most useful field (command, path, pattern). Click Details to expand the full JSON input.
  • Working spinner — a braille-character spinner (⣾⣽⣻⢿⡿⣟⣯⣷) ticks alongside any active tool call; same frames as the CLI so the experience feels continuous between surfaces.
  • Stop: press Esc or the stop button to interrupt mid-run.

Apps in workspace

The sidebar's Apps in workspace tree lists every folder containing an app.yaml. The tree refreshes live as you scaffold new apps with /app create or pull existing ones with /app pull.

  • Click an App → opens its app.yaml in the editor.
  • Right-click → Run App (Widget UI) → runs insightworker -c "/app run <slug> --ui" in a fresh terminal; the per-app widget server starts and your browser opens at http://localhost:8765 (or next free port).
  • Right-click → Validate App Bundle → checks the bundle against the §15 spec.
  • Right-click → Publish App to S3 → uploads the bundle to your configured app store (IW_APP_STORE).

Tool approval flow

When the agent wants to:

  • Edit a file → diff renders inline; you click Apply or Reject
  • Run a terminal command → the command shows in a panel; you click Run or Cancel
  • Read a file → no approval needed (read-only)

You can pre-approve specific tools (or "all reads") in settings to skip the prompts. See permissions-and-safety/auto-approve-tools.md.

Settings

Open: Cmd+, → search "InsightWorker".

SettingDescription
insightworker.cliPathPath to the insightworker binary if not on PATH
insightworker.workingDirectoryOverride the working dir (default: workspace root)
insightworker.autoApproveComma-separated tool names to skip approval for
insightworker.dockSideright (default) or left
insightworker.spinnerStylebraille (default) or dots

Status bar

Bottom-right shows:

  • Model in use (e.g. gpt-5 or claude-sonnet-4-5)
  • Tokens used this session
  • Provider status — green if last call succeeded, red if last call errored

Click the status bar item to open the session log.

See also


Source: docs/vscode-extension/overview.md in the public repo. Open a PR with corrections.