Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>JB RunnerNew to Visual Studio Code? Get it now.
JB Runner

JB Runner

IvanMarchenko

| (0) | Free
JetBrains-style run toolbar for VS Code and Cursor: pick an npm script, hit ▶, stop with ⏹ — right in the status bar.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

JB Runner

JetBrains-style run toolbar for VS Code and Cursor. Pick an npm script, hit ▶, stop with ⏹ — right from the status bar.

Features

  • Status bar tri-state — config picker → green ▶ run → red ⏹ stop.
  • package.json CodeLens — ▶ Run above every entry in scripts; turns into ⏹ Stop while that script is running. Toggle via jbRunner.packageJsonCodeLens (default true).
  • Auto-discover — scans every package.json in the workspace (node_modules excluded), exposes all scripts as run configurations.
  • Custom configurations — add your own shell commands (make run, python manage.py runserver, anything) with optional cwd and env. Values support variable substitution: ${workspaceFolder}, ${userHome}, ${env:NAME}, etc.
  • Package manager detection — uses the right tool based on lockfile (bun.lockb → bun, pnpm-lock.yaml → pnpm, yarn.lock → yarn, falls back to npm).
  • Monorepo-aware — multiple package.json files group by package name in the picker.
  • One terminal per run — named ▶ <package>: <name> so you always know which terminal is yours.
  • Clean stop — sends Ctrl+C first, disposes the terminal after 1.5 s if the process is still alive.
  • Spinner in the status bar while a script is running; MRU of the last 5 configs surfaced at the top of the picker.
  • Remembers last pick per workspace.

Custom configurations

For anything that isn't an npm script — a Makefile target, a Django server, a Rust binary — add it to .vscode/settings.json (workspace) or User Settings:

{
  "jbRunner.configurations": [
    { "name": "Run Python",   "command": "make run" },
    { "name": "Django dev",   "command": "python manage.py runserver", "cwd": "backend" },
    { "name": "With env",     "command": "node server.js", "env": { "PORT": "4000", "DEBUG": "app:*" } },
    {
      "name": "Java Runner",
      "command": "java -cp af-quality-agents-service com.reltio.services.afq.Runner",
      "cwd": "${workspaceFolder}/services",
      "env": {
        "VAULT_URL": "https://vault.example.com:8200",
        "SPRING_PROFILES_ACTIVE": "dev"
      }
    }
  ]
}

Fields:

  • name (required) — label shown in the picker and status bar.
  • command (required) — shell command, passed to the terminal verbatim.
  • cwd (optional) — absolute path, or relative to the first workspace folder.
  • env (optional) — map of environment variables merged into the terminal.

Variable substitution

command, cwd and every env value expand the following tokens before launch — same style as launch.json / tasks.json:

Token Expands to
${workspaceFolder} Absolute path of the first workspace folder
${workspaceFolderBasename} Its folder name only
${userHome} Current user's home directory
${env:NAME} Host environment variable NAME (empty if unset)
${cwd} Process working directory at launch
${pathSeparator} / on macOS/Linux, \ on Windows

Add via wizard

JB Runner: Add custom configuration walks you through four prompts — name, command, cwd, env. The env step accepts IntelliJ-style semicolon-separated pairs:

VAULT_URL=https://vault.example.com:8200;SPRING_PROFILES_ACTIVE=dev

Leave any optional step empty to skip it.

Editor title bar buttons

▶ and ⏹ are also contributed to the editor title bar (top-right, next to the split and ⋮ icons). If they don't appear there, Cursor / VS Code may have collapsed them into the ⋮ overflow menu by default — open it, right-click the item and choose Pin to Actions Bar (or drag it out). This is a one-time action per workspace.

If you prefer not to have them at all, set "workbench.editor.editorActionsLocation": "hidden" — or just ignore them and use the status bar / keybindings.

Status bar

$(project) my-app: dev   ▶    $(terminal)   ⏹
│          │        │    │    │             │
│          │        │    │    │             └─ Stop (visible while running)
│          │        │    │    └─ Show output (visible while running)
│          │        │    └─ Run (hidden while running)
│          │        └─ Script name
│          └─ Package name (from package.json)
└─ Click to pick a different script

Keybindings

Action Mac Win / Linux
Run current config Cmd+Alt+R Ctrl+Alt+R
Stop Cmd+F2 Ctrl+F2
Pick config Cmd+Alt+Shift+R Ctrl+Alt+Shift+R

Commands

  • JB Runner: Run current configuration
  • JB Runner: Stop running configuration
  • JB Runner: Pick run configuration
  • JB Runner: Show output of running configuration
  • JB Runner: Add custom configuration
  • JB Runner: Edit configurations (settings.json)

License

MIT

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