Show HN: Witr – Explain why a process is running on your Linux system (github.com)
Hi HN,
I built a small Linux CLI tool called witr (Why Is This Running?).
The idea came from a situation most of us have hit: you log into a machine, see a process or port running, and immediately wonder why it exists, who started it, and what is keeping it alive right now.
witr traces a process, service, or port back to its origin and responsibility chain and explains it in a way that’s quick to read, especially when you’re debugging under pressure.
This is v0.1.0. It’s intentionally small and focused. Feedback, criticism, and edge cases are very welcome.
56 comments
[ 0.20 ms ] story [ 119 ms ] threadHappy to answer questions or adjust direction based on feedback.
New tools are always welcome, and having a purpose to explain a purpose seems like a good pitch.
Do you have any qualms about me making an entry in the AUR for this?
'Responsibility chain' will become a trendy phrase.
The gif is adding no value. I already know what typing text into a terminal looks like.
CGO_ENABLED=0 go build -ldflags "-X main.version=dev -X main.commit=$(git rev-parse --short HEAD) -X 'main.buildDate=$(date +%Y-%m-%d)'" -o witr ./cmd/witr
Call me old-fashioned, but if there's an install.sh, I would hope it would prefer the local src over binaries.
Very cool utility! Simple tools like these keep me glued to the terminal. Thank you!
I hope they have deb package or snap some day.
> This project was developed with assistance from AI/LLMs [...] supervised by a human who occasionally knew what he was doing.
This seems contradictory to me.
https://github.com/pranshuparmar/witr/tree/main/internal/lin...
It should be the last option.
[0] https://news.ycombinator.com/item?id=46364057
However, I can’t use it in a production business environment for the same reasons other users mentioned earlier. A Debian or RPM package would be fantastic.
i see you support multiple output format including json thats nice. id recommend to assume automation (ssh script/commands) and make the default output really easily greppable , or json (jq) since itll be more appealing to parse (shouldnt reduce readability, for the default output it looks like just removing some linebreaks to make it parse more consistently. (maybe the lines are wrapped tho? unclear from the img)
to quote the top comment: just show a screenshot of its results, if its useful its fine, being fast is just gravy.