Product Positioning & Context
ps, top and lsof tell you what is running. witr tells you why. Point it at a process, PID, port, container or file and it traces the chain that explains it - systemd, supervisor, shell or cron - plus who started it, when, from where, and the warnings worth knowing. Run it bare for an interactive TUI with Processes, Ports, Containers and Locks tabs. Or script it: --short for a one-line chain, --json with real exit codes. One static Go binary for Linux, macOS, Windows and BSD.
Related Ecosystem & Alternatives
Discover adjacent products, open-source repositories, and developer tools sharing similar technical architecture.
Deep-Dive FAQs
What is witr?
witr is a digital product or tool described as: Why is this running? Trace process, port, container or file
Where did witr originate?
Data for witr was aggregated directly from the Product Hunt community ecosystem, representing raw developer and early-adopter sentiment.
When was witr publicly launched?
The initial public indexing or launch date for witr within our tracked developer communities was recorded on July 31, 2026.
How popular is witr?
witr has achieved measurable traction, logging over 140 traction score and facilitating 31 recorded discussions or engagements.
Which technical categories define witr?
Based on metadata extraction, witr is categorized under topics such as: Linux, Open Source, Developer Tools.
What are some commercial alternatives to witr?
Our semantic intelligence engine identifies potential commercial alternatives in the SaaS space, such as Wispr Flow for Android, which offers overlapping value propositions.
How does the creator describe witr?
The original author or development team describes the product as follows: "ps, top and lsof tell you what is running. witr tells you why. Point it at a process, PID, port, container or file and it traces the chain that explains it - systemd, supervisor, shell or cron - pl..."
Community Voice & Feedback
Filing Asad's bug within hours of him raising it says more about where this tool will be in a year than the feature list does.One push on the product itself. The chain answers what started it. It does not answer why, and you have named the tool after the harder claim.systemd started it because a unit file says so. The real why is whether anyone still wants it running, and that lives outside the box entirely.So the output I would value most is the inverse of ancestry. This is running, and nothing on this machine explains why it still should be. Started from a shell session that ended months ago. Unit enabled by someone who has left. Container from a compose file that is no longer in the repo.That is the thing I actually go hunting for at 2am, and nothing tells me.Is orphan detection something the ancestry data you already collect could support?
The Locks tab caught my eye. Does it cover advisory file locks (flock/fcntl) alongside mandatory ones, or is it scoped to one type? I work with Node.js processes sharing a SQLite file across workers, and the symptoms are usually slow queries rather than visible contention. Knowing whether witr can show which worker holds a read vs write lock on a specific file path would be the thing that saves me reaching for strace.
witr looks fantastic. Huge congrats on shipping, and best of luck with the launch! š
How deep does it trace - down to which file handle or socket a process holds? That's usually the part I'm actually hunting for.
ps and lsof telling me what but never why is a decent chunk of my debugging life. Two questions. Does the Containers tab pick up things Docker Desktop started, and does it do anything sensible under WSL2 where there's no systemd to trace back to? That's usually where I lose the thread.
How do you handle cases where a process has been re-parented, daemonized, or launched through several abstraction layers? Iām curious how WITR communicates uncertainty when it can reconstruct only part of the original startup chain.
the single static Go binary shipping for linux, mac, windows and bsd with no runtime dependencies is the kind of boring, disciplined execution that makes a tool actually pleasant to drop on any box
This solves something I've dealt with too many times chaining lsof, ps, and systemctl manually just to trace who actually started a process. The ancestry chain approach (systemd ā supervisor ā cron ā shell) is exactly the missing piece.for containers, does it trace through to the host-level process, or stop at "docker started this"?Trying the playground now. Nice work.
The PID reuse case is the one I'd want to understand. Linux recycles PIDs pretty fast under load, so if I point witr at a PID that already exited and got reused by something unrelated, does it know the two are different processes, or could it walk an ancestry chain that's actually stitched together from two different processes that happened to share a number?
The thing that'll decide whether I keep it is what it prints when the chain dead ends. A process reparented to init after its parent died, or something started inside a container runtime that hides the real caller, and the honest output there is that it can't tell you. Tools like this get uninstalled the moment they guess once and someone acts on the guess. The --json exit codes are the right instinct, so give the unknown case its own code instead of folding it into success.
Hey Product Hunt!
I built witr out of a recurring annoyance: you find something running - a process eating CPU, a port that's already bound, a container you don't remember starting - and every tool tells you what it is, but nothing tells you why it's there.
ps, top, lsof and systemctl all answer "what". witr answers "why". Give it a name, PID, port, container or file and it walks the ancestry chain back to whatever is actually responsible - a systemd unit, a supervisor, a cron job, a shell session, a container runtime - and shows who started it, when, from where, and anything worth knowing (running as root, bound to 0.0.0.0, deleted binary, LD_PRELOAD set, restarting in a loop).
Run it with no arguments and you get an interactive TUI with Processes, Ports, Containers and Locks tabs, live search and an ancestry side panel. Or script it: --short gives a one-line chain and --json comes with meaningful exit codes.
It's a single static Go binary, Apache-2.0, running on Linux, macOS, Windows and FreeBSD. Every operation is read-only, so it's safe to point at production.
If you'd rather try before installing, there's a browser playground with a guided tutorial: https://pranshuparmar.github.io/...
Would love feedback.
I built witr out of a recurring annoyance: you find something running - a process eating CPU, a port that's already bound, a container you don't remember starting - and every tool tells you what it is, but nothing tells you why it's there.
ps, top, lsof and systemctl all answer "what". witr answers "why". Give it a name, PID, port, container or file and it walks the ancestry chain back to whatever is actually responsible - a systemd unit, a supervisor, a cron job, a shell session, a container runtime - and shows who started it, when, from where, and anything worth knowing (running as root, bound to 0.0.0.0, deleted binary, LD_PRELOAD set, restarting in a loop).
Run it with no arguments and you get an interactive TUI with Processes, Ports, Containers and Locks tabs, live search and an ancestry side panel. Or script it: --short gives a one-line chain and --json comes with meaningful exit codes.
It's a single static Go binary, Apache-2.0, running on Linux, macOS, Windows and FreeBSD. Every operation is read-only, so it's safe to point at production.
If you'd rather try before installing, there's a browser playground with a guided tutorial: https://pranshuparmar.github.io/...
Would love feedback.
Discovery Source
Product Hunt Aggregated via automated community intelligence tracking.
Tech Stack Dependencies
No direct open-source NPM package mentions detected in the product documentation.
Media Tractions & Mentions
No mainstream media stories specifically mentioning this product name have been intercepted yet.
Deep Research & Science
No direct peer-reviewed scientific literature matched with this product's architecture.
SaaS Metrics