Free for Windows 10 & 11

Every dev server on your PC. Sorted.

DevDuck shows what's listening on every port, grouped by project, and says what each one is. One click opens, restarts or stops the whole thing.

Native Rust app + CLI~10 ms scansMIT licensed

DevDuck, a cartoon yellow duck proudly holding up a network cable plug
The DevDuck window: a sidebar with views and favorites, cards for each dev server showing its framework, ports, page title, HTTP status, memory, CPU and uptime, and a detail drawer with actions, ports and a QR code.

Demo data. Every card is a project; the drawer has its ports, process tree, command, logs and a QR code for your phone.

The problem

"Something's already on port 3000."

You have five projects, two databases and a Storybook running somewhere. netstat gives you a PID. Killing it leaves three orphaned node processes behind, and you still don't know which project it was.

Before
> netstat -ano | findstr :3000
  TCP  0.0.0.0:3000  LISTENING  30752
> taskkill /PID 30752 /F
SUCCESS: The process with PID 30752 has been terminated.
# ...and its workers keep running
With DevDuck
> devduck who 3000
acme-storefront  (Next.js)
  folder   ~\acme-storefront
  tree     6 processes
> devduck kill 3000
Stopped acme-storefront (6 processes); freed 3000

What it does

A dashboard for the servers you forgot you started

It refreshes every couple of seconds and works with whatever you already run: Next.js, Vite, Remotion, Astro, Storybook, Python, .NET or Docker.

Grouped by project, not by PID

DevDuck walks each process tree past npm, vite, next, uvicorn and friends to find the project folder that owns a port, so five ports from one next dev show up as one card.

Knows what it is

Framework badge, the page's real <title>, HTTP status and response time, and which port is the web port.

Stops the whole tree

No orphaned workers. The confirmation says exactly what will end, and Windows system processes are off-limits.

Restart with logs

Restart re-runs the exact command in the same folder and captures its output, so the drawer can show you the logs.

Favorites you can start

Star a project or container and it stays in the sidebar even when it's stopped. Press ▶, or Start all to bring your whole stack up.

Live, honest stats

CPU and memory for the whole process tree, with sparklines. That's what stopping it would actually free.

Test on your phone

See which servers your LAN can reach and scan a QR code to open one on your phone. If it's localhost-only, DevDuck tells you the flag to fix that.

Docker aware

Containers that publish ports get their own cards with image, uptime and docker logs. Stop, restart and start work too.

Jump straight in

Open in the browser, copy the URL, or open the folder in VS Code, Cursor or a terminal.

Command line

A real CLI for scripts and AI agents

devduck is a proper console program: it waits, prints, and returns exit codes your scripts can trust. Run it with no arguments to open the window.

DevDuck commands
CommandWhat it does
devduckOpen the window.
devduck listEvery listener as a table. Add --json for bind addresses, framework, process count and working directory.
devduck who 3000What's on a port: app, folder, process tree, command.
devduck kill 3000Stop whatever owns a port: the whole tree, or docker stop. Refuses Windows system processes.
devduck open 3000Open http://localhost:3000.

Install

Three commands and it's yours

DevDuck builds from source with Rust. There's nothing to configure and you don't need admin rights.

  1. Have Rust ready

    Windows 10 or 11 with the MSVC Rust toolchain (1.88 or newer). If you don't have it, rustup sets it up in a few minutes.

  2. Clone and install

    The script builds a release, copies devduck.exe and devduck-app.exe to ~\.local\bin, and adds DevDuck to the Start menu.

    git clone https://github.com/drhalto/devduck cd devduck .\scripts\install.ps1
  3. Open it and pin it

    Start DevDuck from the Start menu, then right-click its taskbar icon and choose Pin to taskbar. Make sure ~\.local\bin is on your PATH to use devduck in a terminal.

Keyboard

Keyboard shortcuts
Ctrl KSearch apps, ports, folders, frameworks and page titles
↑ ↓Move between servers
EnterOpen in the browser
DelStop the selected server
Ctrl BShow or hide the sidebar
F5Refresh now

Safety & privacy

It only touches what you point at

DevDuck runs entirely on your machine. There's no account, no telemetry and no network calls beyond your own localhost.

  • Never walks into shells, editors or Windows services. Explorer, terminals, VS Code, Cursor and core services are protected, and system processes are never killed from the CLI.
  • Only re-runs commands it saw. Restart, Start and favorites use the command DevDuck saw running from that folder, nothing else.
  • One polite HTTP check. A single GET / to each dev-server port when it appears, and again when you ask. It never probes databases, apps, containers or internal ports, and you can turn it off.
  • Your data stays put. Settings, favorites and logs live in %APPDATA%\DevDuck.
DevDuck wearing headphones and giving a thumbs up

Why a duck?

Rubber-duck debugging, but this duck actually knows what's on port 3000. It also beats calling the app "Port Listener Utility".

Get DevDuck on GitHub