Services
A service is a process you own that is holding at least one listening socket on a non-system port. That predicate is the entire definition.
Derived, not declared
LocalDocks has no list of known program names, and no table mapping ports to products. A service is an observation about the machine: something you started is listening. That is why a dev server on an unusual port is found without configuration, and why a program nobody has heard of is found too.
What a service is — development work or otherwise — is a separate question, answered by classification and never by the fact that it is listening.

Columns
| Column | Meaning |
|---|---|
| SERVICE | A friendly label derived from the endpoint and the process, with the runtime beneath it. |
| ENDPOINTS | The primary port, plus a v4+v6 chip when the process holds both an IPv4 and an IPv6 socket on it. |
| PROCESS | The executable name. |
| PID | The process identifier. On its own this is not an identity — see Processes. |
| CPU | Share of the interval this process was executing, from cumulative kernel and user time deltas, divided across logical cores. |
| MEMORY | Working set — the column Task Manager labels “Memory”. |
| UPTIME | Time since process creation. |
Every column except ENDPOINTS sorts. The default is memory, because that is usually the column that explains a slow machine.
Dual-stack grouping
Dev servers routinely bind both IPv4 and IPv6 on the same port. Services groups sockets by the owning process, so that pair reads as one service with a v4+v6 chip rather than as two services that happen to share a number.
Filters
Four chips — All, Node, Python and Databases — plus a free-text filter matching the label, process name, framework, PID and any of the ports. The row count always reads “N of M”, so a filtered table is never mistaken for the whole set.
Actions
Clicking a row opens the detail panel, which offers three actions:
- Open — launches the service’s localhost URL in your browser. The URL is validated against an
http/httpsallowlist before the operating system ever sees the string, and no shell is invoked. - Copy URL — puts the same URL on the clipboard.
- Terminate — opens the confirmation described in Processes.
The framework column is empty in V1
The service model carries a framework field — the “Vite · React” line a mature version would show. Project and framework detection is V2 and is not built, so the row falls back to the process name rather than inventing a label.
If a service is missing
- It may hold no listening socket. A background worker is development work but is not a service; look in Processes.
- It may be classified as something other than development work. Switch to System mode to check.
- It may belong to another account. LocalDocks never elevates, so it cannot see those processes.