Show HN: Witr – Explain why a process is running on your Linux system
227 points
13 hours ago
| 16 comments
| github.com
| HN
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

zenoprax
48 minutes 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.

reply
mh-
6 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.
reply
godelski
1 hour ago
[-]

  > the gif that loops in the README should pause on the screen
Honestly, I think a screenshot is better than a gif. That last frame says everything you need.
reply
Neywiny
5 hours ago
[-]
I would also argue it shouldn't be a gif. It's nice that it shows the command is fast I guess but it's one command that's still visible in the final frame. Not as bandwidth efficient and agreed I can't read it all in time
reply
rzzzt
3 hours ago
[-]
Also the pause button seems to take the GIF back to its first frame, then resume from where I paused... either that or I need a good sleep.
reply
stavros
5 hours ago
[-]
https://github.com/charmbracelet/vhs is a really good utility for automatically making these gifs.
reply
sestep
4 hours ago
[-]
I'm a big fan of svg-term myself: https://github.com/marionebl/svg-term-cli
reply
stavros
4 hours ago
[-]
Hm, very interesting! This only converts asciinema recordings, though, right? It doesn't automatically record anything?
reply
sestep
4 hours ago
[-]
If you have asciinema already installed then you can invoke it through svg-term like this!

  svg-term --command 'cowsay hey there'
But that has the aforementioned issues about not pausing enough, so I usually just record with asciinema first and then invoke svg-term.
reply
pranshuparmar
13 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.

reply
dcminter
8 hours ago
[-]
This is very clever. I've often needed to figure out what some running process was actually for (e.g. because it just started consuming a lot of some limited resource) but it never occurred to me that one could have a tool to answer that question. Well done.

---

Edit: Ah, ok, I slightly misunderstood - skimmed the README too quickly. I thought it was also explaining what the process did :D Still a clever tool, but thought it went a step further.

Perhaps you should add that though - combine Man page output with a database of known processes that run on various Linux systems and a mechanism for contributing PRs to extend that database...? Unlesss it's just me that often wants to know "what the fsck does /tmp/hax0r/deeploysketchyd actually do?" :P

reply
vzaliva
3 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.

reply
fouc
2 hours ago
[-]
new utility command coming soon! wdtci - "what does this curl install?"
reply
klooney
2 hours ago
[-]
`systemctl status $pid` will get you a lot
reply
DougN7
5 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.
reply
jackwilsdon
5 hours ago
[-]
It appears to walk up from the process's working directory searching for a .git directory: https://github.com/pranshuparmar/witr/blob/1e47bdb8fde179b17...
reply
be_erik
5 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!

reply
sestep
4 hours ago
[-]
Alternatively you can use Nix! :P https://github.com/pranshuparmar/witr/pull/5
reply
TheCraiggers
7 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?

reply
giancarlostoro
6 hours ago
[-]
Im not the author but I would love for an AUR made for this ;)

My favorite thing about arch is how insanely quickly AURs pop up for interesting tools.

reply
techsystems
6 hours ago
[-]
I'm really loving this!

'Responsibility chain' will become a trendy phrase.

reply
properbrew
4 hours ago
[-]
This is extremely useful, will be added to the toolbox. Thanks for sharing.
reply
4ggr0
8 hours ago
[-]
i definitely see the use for it, lots of moments where i wonder how or why something was started.
reply
fracus
2 hours ago
[-]
I really like this. Something like this should already exist, stock.
reply
wyldfire
4 hours ago
[-]
`ps uaxf` gives me pretty similar output.
reply
q2dg
8 hours ago
[-]
pstree doesn't answer the why?
reply
mathfailure
7 hours ago
[-]
No, it does not.
reply
Saris
8 hours ago
[-]
This looks very handy to have around!
reply
dontdieych
7 hours ago
[-]
Nice and installed then starred.
reply
canxerian
8 hours ago
[-]
Great idea!
reply