| ▲ | Show HN: Port Kill – A lightweight macOS status bar development port monitor(github.com) |
| 69 points by lexokoh 8 hours ago | 26 comments |
| |
|
| ▲ | donatj 4 hours ago | parent | next [-] |
| 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 |
| |
|
| ▲ | faangguyindia 6 hours ago | parent | prev | next [-] |
| 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 3 hours ago | parent | next [-] | | Yeah, I have a function `whoseport` which is just your subcommand. I usually manually type kill or whatever I want with `$(whoseport 3000)` | |
| ▲ | lexokoh 6 hours ago | parent | prev [-] | | Nice. I have this too. I wanted something more visual and expansive. |
|
|
| ▲ | dsab 6 hours ago | parent | prev | next [-] |
| 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 6 hours ago | parent | next [-] | | It's just a tool I built for myself. There's no business case. It just helps me | | |
| ▲ | hit8run 3 hours ago | parent [-] | | 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 6 hours ago | parent | prev [-] | | > 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 6 hours ago | parent [-] | | 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 6 hours ago | parent [-] | | The author also posted it on Reddit. He used it for himself, but some people use it even though it’s bad practice. |
|
|
|
|
| ▲ | _def 6 hours ago | parent | prev | next [-] |
| 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 6 hours ago | parent | next [-] | | 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 4 hours ago | parent | next [-] | | > Quit: Exits the application | |
| ▲ | lexokoh 6 hours ago | parent | prev [-] | | A lot of ReadMe's are generated with AI. Doesn't really mean anything. | | |
| ▲ | userbinator 6 hours ago | parent [-] | | 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 6 hours ago | parent | prev | next [-] | | the ascii tree in "Project Structure" is a dead giveaway that AI is used in this project | |
| ▲ | pacifika 6 hours ago | parent | prev [-] | | Why would you need to do that? | | |
|
|
| ▲ | hbbio 5 hours ago | parent | prev | next [-] |
| 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/. |
|
| ▲ | password4321 7 hours ago | parent | prev | next [-] |
| 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 7 hours ago | parent [-] | | Not sure I can add images here, but if you check the repo, I'll be adding one shortly. |
|
|
| ▲ | nbbaier 7 hours ago | parent | prev | next [-] |
| 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 2 hours ago | parent | prev | next [-] |
| lsof is a bit heavy, I wouldn't want that running every 5 seconds to be honest. |
|
| ▲ | incanus77 6 hours ago | parent | prev [-] |
| These would be good additions to SwiftBar/BitBar. |
| |
| ▲ | npretto 2 hours ago | parent [-] | | 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 |
|