Show HN: Witr – Explain why a process is running on your Linux system

github.com

352 points by pranshuparmar 21 hours ago


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.

Repo: https://github.com/pranshuparmar/witr

mh- - 14 hours ago

This is great. Small, trivial suggestion: the gif that loops in the README should pause on the screen w/ the output for a few seconds longer - it disappears (restarts) too quickly to take in all of the output.

pranshuparmar - 21 hours ago

A quick note on scope: this is not meant to replace existing monitoring or observability tools. It’s designed for those moments when you SSH into a box and need to quickly understand “why is this running” without digging through configs, cron jobs, or service trees manually.

Happy to answer questions or adjust direction based on feedback.

saidnooneever - an hour ago

seems handy but mostly the ppid is outputted as the reason for starting. its 'who dun it', not really _why_ it was started. (service file, autorun, execve etc.)

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)

vzaliva - 12 hours ago

Sounds like something I could use, but installing a binary via `curl` doesn't sit right with me. Next problem you have is "explain how this thing was installed on my system" followed "is it up to date (including security patches).

I hope they have deb package or snap some day.

zenoprax - 9 hours ago

> witr is successful if users trust it during incidents.

> 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.

be_erik - 14 hours ago

If you're looking to build and install this from source, here's the incantation:

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!

cedsam - 4 hours ago

This is amazing and really useful to me. Great job.

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.

DougN7 - 14 hours ago

What does this means for context: “Git repository name and branch” Does this mean it detects if something is running from within a git repository folder? Couldn’t find the code that checked this.

epiccoleman - 7 hours ago

Cool idea. Reminds me of my alias "whodis" which just lsofs a port to find out the pid who's got it open, but way more functional.

TheCraiggers - 16 hours ago

This is amazing. Thank you for sharing this.

Do you have any qualms about me making an entry in the AUR for this?

jsomedon - 2 hours ago

Brilliant stuff! Any plan to support macos?

techsystems - 15 hours ago

I'm really loving this!

'Responsibility chain' will become a trendy phrase.

4ggr0 - 17 hours ago

i definitely see the use for it, lots of moments where i wonder how or why something was started.

properbrew - 12 hours ago

This is extremely useful, will be added to the toolbox. Thanks for sharing.

fracus - 11 hours ago

I really like this. Something like this should already exist, stock.

q2dg - 16 hours ago

pstree doesn't answer the why?

wyldfire - 13 hours ago

`ps uaxf` gives me pretty similar output.

Saris - 17 hours ago

This looks very handy to have around!

dontdieych - 16 hours ago

Nice and installed then starred.

canxerian - 17 hours ago

Great idea!

pcdoodle - 11 hours ago

[dead]

tototrains - 7 hours ago

Worth mentioning: I had claude code find a crypto miner on an infected system which had been running for ~5 months undetected. Up-to-date windows 10 machine. Single prompt saying "This PC is using too much power or fans, investigate". Took minutes, completely cleaned up the infection (I hope) and identified its source. Fantastic use-case.