Show HN: Port Kill – A lightweight macOS status bar development port monitor

71 lexokoh 26 8/24/2025, 3:08:15 AM github.com ↗

Comments (26)

donatj · 5h ago
Ports 2000 - 6000?

I know I am getting old but when did we stop running things on 8xxx? The more 8's the more dev it was. 8000, 8080, 8088, 8888

userbinator · 3h ago
To me, 8xxx is for proxy servers.
faangguyindia · 7h ago
On macOS i've this in my zshrc file:

`killport() { kill -9 $(lsof -t -i :$1 -sTCP:LISTEN) }`

i use it like killport 8000

porridgeraisin · 4h ago
Yeah, I have a function `whoseport` which is just your subcommand. I usually manually type kill or whatever I want with `$(whoseport 3000)`
lexokoh · 6h ago
Nice. I have this too. I wanted something more visual and expansive.
dsab · 7h ago
What is "development process" ??? What is "business use case" of this tool? Such a big readme and no introduction to why I should be interested in this tool.
lexokoh · 6h ago
It's just a tool I built for myself. There's no business case. It just helps me
hit8run · 3h ago
Which is perfectly fine and a fun thing to do. I personally use the terminal but such a little monitoring tool can be quite fun and we should embrace the fun in doing things more. People over here are so soaked up by the Open Source as a business model VC-Pitch that they can't believe it when someone builds a little hobby tool with no business plan for a multi billion dollar exit. You're doing it right buddy. Don't let these Crypto-SaaS-AI-Bros ruin the fun for you.
motorest · 6h ago
> Such a big readme and no introduction to why I should be interested in this tool.

This.

Why in the hell would anyone want to kill random processes that open a port in the tange 2000-6000? And why is this need so pressing as to require a full blown monitor integrated in a task bar?

Without context, this sounds like a complete random silly project that makes no sense and serves no purpose at all.

bigyabai · 6h ago
Without context, it sounds like something someone vibe-coded and git push-ed up to the internet. Which is fine, but it's just unusually precise and verbose for something that would end up being a shell alias for most developers.
todotask2 · 6h ago
The author also posted it on Reddit. He used it for himself, but some people use it even though it’s bad practice.
_def · 7h ago
I'm not looking forward to the near future where it will become harder and harder to distinguish little projects like this from AI generated tools.
userbinator · 6h ago
The README already has a rather repugnant LLM-ish feel to it; lots of lists and verboseness, while saying very little.

Also, this is a perplexing choice (which also serves to illustrate the above point regarding verboseness):

    White background with red center: 1-9 processes (some development servers) 
    White background with orange center: 10+ processes (many development servers)
nojs · 5h ago
> Quit: Exits the application
lexokoh · 6h ago
A lot of ReadMe's are generated with AI. Doesn't really mean anything.
userbinator · 6h ago
You're right. A lot of words that don't really mean anything; and that's exactly why you should not do it if you want actual humans to read it.
AbuAssar · 6h ago
the ascii tree in "Project Structure" is a dead giveaway that AI is used in this project
pacifika · 6h ago
Why would you need to do that?
userbinator · 6h ago
To filter out the spam.
password4321 · 8h ago
Interesting idea ("manages development processes running on ports 2000-6000"), and props for hitting the front page though technically this is a "Show HN". Screenshot(s)?
lexokoh · 8h ago
Not sure I can add images here, but if you check the repo, I'll be adding one shortly.
hbbio · 6h ago
Didn't expect to see the FSL for that kind of project :)

The part I'm interested in is the tray_icon crate but I'll look at the package directly https://docs.rs/tray-icon/latest/tray_icon/.

nbbaier · 7h ago
Neat! There's also a raycast extension for this kind of thing for anyone who wants to go that route:

https://www.raycast.com/lucaschultz/port-manager

sgt · 2h ago
lsof is a bit heavy, I wouldn't want that running every 5 seconds to be honest.
incanus77 · 6h ago
These would be good additions to SwiftBar/BitBar.
npretto · 3h ago
a couple of prompts of claude code gave me this, works well enough, but while I agree that this is sometimes useful, it may indeed better served by a couple of aliases in the terminal ``` #!/bin/bash

# SwiftBar Port Monitor # Monitors processes on TCP ports 2000-6000

# Menu bar title echo " Ports" echo "---"

# Get processes listening on TCP ports 2000-6000 processes=$(lsof -iTCP:2000-6000 -sTCP:LISTEN -n -P 2>/dev/null | awk 'NR>1 {print $2 "|" $1 "|" $9}' | sort -t'|' -k3 -n)

if [ -z "$processes" ]; then echo "No processes found on ports 2000-6000" exit 0 fi

# Process each line while IFS='|' read -r pid name port_info; do if [ -n "$pid" ] && [ -n "$name" ] && [ -n "$port_info" ]; then # Extract port number from format like :3000 port=$(echo "$port_info" | sed 's/.://')

        # Menu item with port and process name
        echo "[$port] $name | color=blue"
        
        # Submenu items
        echo "--Kill (TERM) | shell=kill param1=$pid terminal=false refresh=true"
        echo "--Kill Force (KILL) | shell=kill param1=-9 param2=$pid terminal=false refresh=true"
        echo "--Process Info | shell=ps param1=-p param2=$pid param3=-o param4=pid,ppid,user,command terminal=true"
        echo "-----"
    fi
done <<< "$processes"

# Refresh option echo "---" echo "Refresh | refresh=true