Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>DevPortsNew to Visual Studio Code? Get it now.
DevPorts

DevPorts

Ignacio Utreras Urrutia

| (1) | Free
See every dev port you have listening in the status bar. Open, copy, or kill them from one dropdown.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info
DevPorts

Kill directly your servers in one click

Every dev port you have listening, in the statusbar. Open, copy or kill them from one dropdown
maintained by @utreras

Marketplace  Installs  VS Code ^1.81  macOS and Linux  zero dependencies  MIT


Why?

lsof on a normal machine returns thirty-odd listening sockets, almost all of them system noise: Control Center, Spotify, Adobe, mDNS helpers. DevPorts watches only the ranges you actually develop on, so the list stays the length of your dev servers

The status dot

The dot reports a state the extension actually measured:

dot state meaning
hollow grey all inactive nothing listening in your ranges
solid green serving every port answered an HTTP request
solid amber starting a port is bound but did not answer, compiling, hung, or not an HTTP service

A listening socket always accepts a TCP connection, so connecting proves nothing. Only a real HTTP reply separates "serving traffic" from "bound but silent", which is why the check is an actual HEAD /

It runs once per server. A server that answered will keep answering, so its verdict is cached and never requested again. A port that stays silent is retried a few times and then left alone, because it is probably not an HTTP service at all. In practice each dev server sees a single HEAD / for its whole lifetime, which keeps your terminal free of a request every few seconds. Press the refresh button in the dropdown to force a re-check, or turn the whole thing off with devports.healthCheck

The dropdown

Click the status bar item:

  • Enter kills the selected port with SIGTERM, the same signal Ctrl-C sends
  • Globe opens http://localhost:PORT
  • Clipboard copies the URL
  • Bolt force kills with SIGKILL
  • Kill all sends SIGTERM to every port in range, behind a confirmation

Each row shows the owning process, its pid, the HTTP status it answered with, and the working directory it was started from, which is how you tell which of your checkouts is holding :3000

Ports are named by their project, not by their runtime. lsof truncates the command to nine characters and reports every JS server as node, so DevPorts reads the name field of the package.json at the process working directory instead

Settings

setting default what it does
devports.ranges 3000-3999, 4000-4999, 5173, 8000-8099, 8787 ranges to watch
devports.refreshSeconds 5 rescan interval
devports.healthCheck true send HEAD / to classify each port
devports.healthTimeoutMs 900 health check timeout

Requirements

macOS and Linux. DevPorts reads ports through lsof, which Windows does not ship; on Windows the extension loads but stays inert rather than guessing

Privacy

No network access beyond a HEAD / to 127.0.0.1 on ports you configured, once per server. No telemetry. Processes are signalled through Node's process.kill, so no shell command is ever assembled from process data

License

MIT

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