Find out which app is squatting on port 3000 before starting a new dev server
Kill every process listening on a range like 3000 to 3010 in one command
List every TCP port currently being listened on across the machine
Force kill a stuck process with -f when SIGTERM is ignored
Single Go binary; on Unix it shells out to lsof, so a system without lsof in PATH will need it installed.
Dahmer is a small command line program that solves a common annoyance for developers: a program is holding on to a network port, often something like 3000 or 8080, so a new project cannot start because that port is already in use. Dahmer tells you which program is holding the port and, if you want, kills it for you. It runs on macOS, Linux, and Windows from a single binary. The basic command is just the port number. Running dahmer 3000 prints a small framed box showing the process id, the name of the program, and the user account that owns it, or a friendly message if the port is free. You can ask about several ports at once by listing them, or about a whole range by writing something like dahmer 3000-3010, in which case the results come back as a table. The command dahmer ls shows every TCP port that is currently being listened on. To stop the offending process you add the word kill, as in dahmer 3000 kill. That sends the polite SIGTERM signal, equivalent to taskkill on Windows, asking the program to shut down cleanly. Adding the -f flag escalates to a forced SIGKILL when the program refuses to exit. Ranges and lists can also be killed in one shot, and the work happens in parallel. Internally the tool is written in Go using the Cobra library for the command structure and Bubble Tea for the styled output. It shells out to lsof on Unix and netstat plus tasklist on Windows. The project is released under the MIT license.
Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.