Skip to content
| Marketplace
Sign in
Visual Studio Code>Debuggers>GumRunNew to Visual Studio Code? Get it now.
GumRun

GumRun

Preecha Gum

|
3 installs
| (0) | Free
Start / stop / restart your dev / web servers from VS Code — Go, Node, Python, Rust, .NET, Java, PHP, Ruby presets, plus custom commands.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GumRun

Start · Stop · Restart your dev / web servers from VS Code — without dropping into a terminal manually every time.

Supports Go, Node.js, Python, Rust, .NET, Java, PHP, Ruby, Elixir, Deno, Bun out of the box, plus any custom command.

Features

  • ▶ One-click Start / Stop / Restart — from the activity-bar sidebar or the status bar
  • 🔍 Auto-detect services in your project (go.mod, package.json, Cargo.toml, manage.py, pom.xml, Gemfile, *.csproj, …)
  • 📁 Add From File… (NEW v0.4) — pick any file (Makefile, package.json, Cargo.toml, .sh, .ps1, *.go, *.py, …) and GumRun figures out how to run it; supports multi-target picks (Makefile targets, npm scripts, cargo bins)
  • 🎯 Real port detection — reads config.yaml, config.toml, .env, appsettings.json, npm script --port flags so GumRun uses the actual port your project listens on, not a generic default
  • 🧩 Multiple services per project — run frontend + backend together (e.g. npm run dev + go run ./cmd/api)
  • 📋 Per-project config at .vscode/gumrun.json — version-controllable
  • 🌐 Open in Browser — jump to your dev server URL
  • 🎨 Live status icons — green (running), yellow (starting), grey (stopped)
  • ⚙️ Per-service environment variables, working directory, and command
  • 🛑 Graceful stop — sends Ctrl+C first, then disposes terminal

Built-in Presets

Language Presets
Go go run, air (hot reload), Fiber, Gin
Node npm run dev, npm start, nodemon, tsx watch, Vite, Next.js
Deno / Bun deno task dev, bun run dev
Python Uvicorn, Flask, Django, Gunicorn, Streamlit, Poetry, plain script
Rust cargo run, cargo watch, Actix Web, Axum
.NET dotnet run, dotnet watch run
Java Spring Boot (Maven / Gradle), java -jar
PHP Laravel artisan serve, built-in php -S, Symfony
Ruby Rails, Sinatra, Jekyll
Elixir Phoenix
Static Vite preview, http-server, python http.server
Custom any shell command

Quick Start

  1. Install GumRun
  2. Click the green ▶ icon in the activity bar (left side)
  3. Auto-detect — scans for known config patterns (go.mod, package.json, Cargo.toml, …)
  4. Add From File… — point at any Makefile / package.json / Cargo.toml / .sh / .py / etc. and GumRun figures out the right command (and lists all sub-targets to pick from)
  5. Add a custom service — paste any shell command yourself

After services are added, click any one to start it. Click again to stop.

Add From File… examples

File you pick What you get
Makefile List of all targets (make run, make dev, make test, …) — pick one
package.json All scripts entries via the right package manager (npm/pnpm/yarn/bun)
Cargo.toml cargo run, cargo run --release, plus each [[bin]]
pyproject.toml Each [tool.poetry.scripts] entry as poetry run X
Procfile One option per process line
docker-compose.yml docker compose up (foreground or detached)
*.sh / *.bat / *.ps1 Direct execution with the right shell
main.go / app.py / index.ts go run, python, npx tsx accordingly
*.csproj dotnet run / dotnet watch run

Port detection

When you add a service GumRun reads project config to use the real port, not a hardcoded default:

Source Pattern
config.yaml / config.yml server: \n port: NNNN (nested) or top-level port: NNNN
application.yml Same — Spring Boot
config.toml / rocket.toml port = NNNN
.env PORT=, SERVER_PORT=, HTTP_PORT=, APP_PORT=, LISTEN_PORT=, BIND_PORT=
appsettings.json "applicationUrl": "http://...:NNNN"
npm scripts --port NNNN flag

Configuration

GumRun stores its services in .vscode/gumrun.json:

{
  "services": [
    {
      "id": "svc-abc123",
      "name": "API",
      "language": "go",
      "command": "go run ./cmd/api",
      "cwd": "${workspaceFolder}",
      "url": "http://localhost:8080",
      "ports": [8080]
    },
    {
      "id": "svc-def456",
      "name": "Web",
      "language": "node",
      "command": "npm run dev",
      "cwd": "${workspaceFolder}/frontend",
      "url": "http://localhost:5173",
      "ports": [5173],
      "env": {
        "NODE_ENV": "development"
      }
    }
  ]
}

Variables available in cwd:

  • ${workspaceFolder} — absolute path of the workspace folder

Status Bar

Click the status bar item (bottom-left) to toggle the primary service:

  • ▶ name → click to start
  • ⏹ name → click to stop

Configure which service shows up via gumRun.statusBar.serviceName.

Commands (Command Palette)

Command What it does
GumRun: Auto-detect Services Scan workspace, suggest services to add
GumRun: Add Service Pick a preset, customize, save
GumRun: Start / Stop / Restart Toggle a service
GumRun: Start All / Stop All All services in workspace
GumRun: Open Config Edit .vscode/gumrun.json
GumRun: Open in Browser Launch the configured URL

Settings

Setting Default Description
gumRun.statusBar.enabled true Show the status bar quick toggle
gumRun.statusBar.serviceName "" Primary service name shown on status bar
gumRun.killSignal "auto" How to stop: auto, SIGINT, ctrlC
gumRun.restartDelayMs 800 Delay between stop/start when restarting

Tip — restart-after-edit

For projects where you edit code and need to bounce the server:

  1. Click the service in the GumRun sidebar — it goes from green → grey
  2. Click again — server restarts

Or use GumRun: Restart from the Command Palette (and bind it to a keyboard shortcut for one-key restart).

Companion extensions

Part of the Gum Suite:

  • 🟢 GumRun — start / stop / restart dev servers
  • 🟦 GumGo Preview — Go HTML template preview with click-to-jump
  • 🟣 GumDotNet Form Viewer — preview C# / VB.NET WinForms designer files

License

MIT

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