@GoJun315: After 20 years of using terminal tools, no one ever understood why a process was running. An independent developer from India open-sourced the witr tool, which skyrocketed to 15,400+ GitHub stars in less than five months! One command in the terminal traces the entire origin of a process — from kernel to systemd…
Summary
An open-source terminal tool called witr, developed by an Indian independent developer, explains why a process is running, traces its origin from kernel to systemd, and includes an interactive TUI dashboard. It gained 15,400+ GitHub stars in less than five months.
View Cached Full Text
Cached at: 05/14/26, 04:40 PM
For 20 years, terminal tools have been around, yet no one could truly explain why a process was running. An independent developer from India has open‑sourced witr. In less than five months, it’s skyrocketed past 15,400+ GitHub Stars! One command in the terminal tells you the entire story of a process — from kernel to systemd unit, from an open port back to the process that bound it. This chain used to require manual piecing together.
- Suspicious processes, ports listening on public interfaces, and memory hogs that have been silently running for months — all are flagged automatically.
- Built‑in interactive TUI dashboard, no need to memorize command flags.
- Search by process name, PID, port, or file path. Output is in plain English, not a stream of cryptic technical jargon.
GitHub: https://github.com/pranshuparmar/witr
Supports Linux, macOS, Windows, FreeBSD, and other mainstream systems.
If you often take over unfamiliar servers or troubleshoot production issues, this is worth installing.
Purpose • Installation • ✨ TUI • Flags • Examples • Platforms
Goals • Core Concept • Output Behavior • Success Criteria • Sponsors
2. Installation
witr is distributed as a single static binary for Linux, macOS, FreeBSD, and Windows.
witr is also independently packaged and maintained across multiple operating systems and ecosystems. An up-to-date overview of packaging status is available on Repology (https://repology.org/project/witr/versions). Please note that community packages may lag GitHub releases due to independent review and validation.
If you use a package manager (Homebrew, Conda, Winget, etc.), we recommend installing via that for easier updates. Otherwise, the install script is the quickest way to get started.
2.2 Package Managers
Homebrew (macOS & Linux)
You can install witr using Homebrew (https://brew.sh/) on macOS or Linux:
bash brew install witr
Conda (macOS, Linux & Windows)
You can install witr using conda (https://docs.conda.io/en/latest/), mamba (https://mamba.readthedocs.io/en/latest/), or pixi (https://pixi.prefix.dev/latest/) on macOS, Linux, and Windows:
``bash
conda install -c conda-forge witr
alternatively using mamba
mamba install -c conda-forge witr
alternatively using pixi
pixi global install witr
``
Arch Linux (AUR)
On Arch Linux and derivatives, install from the AUR package (https://aur.archlinux.org/packages/witr-bin):
``bash
yay -S witr-bin
alternatively using paru
paru -S witr-bin
or use your preferred AUR helper
``
Winget (Windows)
You can install witr via winget (https://learn.microsoft.com/en-us/windows/package-manager/winget/):
powershell winget install -e --id PranshuParmar.witr
NPM (Cross-platform)
You can install witr using npm (https://www.npmjs.com/package/@pranshuparmar/witr):
bash npm install -g @pranshuparmar/witr
FreeBSD Ports
You can install witr on FreeBSD from the FreshPorts port (https://www.freshports.org/sysutils/witr/):
``bash
pkg install witr
or
pkg install sysutils/witr
Or build from Ports: bash
cd /usr/ports/sysutils/witr/
make install clean
``
Chocolatey (Windows)
You can install witr using Chocolatey (https://community.chocolatey.org):
powershell choco install witr
Scoop (Windows)
You can install witr using Scoop (https://scoop.sh):
powershell scoop install main/witr
AOSC OS
You can install witr from the AOSC OS repository (https://packages.aosc.io/packages/witr):
bash oma install witr
GNU Guix
You can install witr from the GNU Guix repository (https://packages.guix.gnu.org/packages/witr/):
bash guix install witr
Uniget (Linux)
You can install witr using uniget (https://uniget.dev/):
bash uniget install witr
Aqua (macOS, Linux & Windows)
You can install witr using aqua (https://aquaproj.github.io/):
``bash
Add package
aqua g -i pranshuparmar/witr
Install package
aqua i pranshuparmar/witr
``
Brioche (Linux)
You can install witr using brioche (https://brioche.dev/):
bash brioche install -r witr
Prebuilt Packages (deb, rpm, apk)
witr provides native packages for major Linux distributions. You can download the latest .deb, .rpm, or .apk package from the GitHub releases page (https://github.com/pranshuparmar/witr/releases/latest).
- Generic download command using
curl:
``bash
Replace
curl -LO https://github.com/pranshuparmar/witr/releases/latest/download/
``
- Debian/Ubuntu (.deb):
``bash
sudo dpkg -i ./witr-*.deb
Or, using apt for dependency resolution:
sudo apt install ./witr-*.deb
``
-
Fedora/RHEL/CentOS (.rpm):
bash sudo rpm -i ./witr-*.rpm -
Alpine Linux (.apk):
bash sudo apk add --allow-untrusted ./witr-*.apk
2.4 Run Without Installation
Nix Flake
If you use Nix, you can build witr from source and run without installation:
bash nix run github:pranshuparmar/witr -- --help
Pixi
If you use pixi (https://pixi.prefix.dev/latest/), you can run without installation on Linux or macOS:
bash pixi exec witr --help
3. Interactive Mode (TUI)
Running witr without any arguments or with the -i flag launches the Interactive Mode (TUI). This provides a real-time, terminal-based dashboard for exploring processes and ports.
Key Features:
- Live Process List: Real-time view of all running processes with sorting and filtering.
- Port View: Explore open ports and immediately see which processes are holding them.
- Process Details: Deep-dive into a specific process to see its full ancestry tree, child processes, environment variables, working directory, and more.
- Process Actions: Send signals (Kill, Terminate, Pause, Resume) or Renice processes directly from the UI.
- Mouse Support: Navigate, sort columns, and click rows using your mouse.
5. Example Outputs
5.1 Name Based Query
bash witr node
Target : node Process : node (pid 14233) User : pm2 Command : node index.js Started : 2 days ago (Mon 2025-02-02 11:42:10 +05:30) Restarts : 1 Why It Exists : systemd (pid 1) → pm2 (pid 5034) → node (pid 14233) Source : pm2 Working Dir : /opt/apps/expense-manager Git Repo : expense-manager (main) Listening : 127.0.0.1:5001
5.3 Tree Output
bash witr --pid 143895 --tree
systemd (pid 1) └─ init-systemd(Ub (pid 2) └─ SessionLeader (pid 143858) └─ Relay(143860) (pid 143859) └─ bash (pid 143860) └─ sh (pid 143886) └─ node (pid 143895) ├─ node (pid 143930) ├─ node (pid 144189) └─ node (pid 144234)
Note: Tree view includes child processes (up to 10) and highlights the target process.
5.5 File Based Query
bash witr --file /var/lib/dpkg/lock
Explains the process holding a file open.
—– [port: 5432] —–
Target : postgres
Process : postgres (pid 891)
…
—– [pid: 1234] —–
Target : node
Process : node (pid 1234)
…
``
All target flags are repeatable and can be mixed. Results appear in the order you typed them. All output modes (--short, --tree, --json, --env, --warnings, --verbose) work with multiple inputs.
5.1 Feature Compatibility Matrix
| Feature | Linux | macOS | Windows | FreeBSD | Notes |
|---|---|---|---|---|---|
| Process Selection | |||||
| By Name | ✅ | ✅ | ✅ | ✅ | |
| By PID | ✅ | ✅ | ✅ | ✅ | |
| By Port | ✅ | ✅ | ✅ | ✅ | |
| By File | ✅ | ✅ | ❌ | ✅ | |
| Multiple/mixed inputs | ✅ | ✅ | ✅ | ✅ | Repeatable flags, mixed types. |
| Exact Match | ✅ | ✅ | ✅ | ✅ | |
| Full command line | ✅ | ✅ | ✅ | ✅ | |
| Process start time | ✅ | ✅ | ✅ | ✅ | |
| Working directory | ✅ | ✅ | ✅ | ✅ | |
| Environment variables | ✅ | ⚠️ | ❌ | ✅ | macOS: Partial support due to SIP restrictions. |
| Network | |||||
| Listening ports | ✅ | ✅ | ✅ | ✅ | |
| Bind addresses | ✅ | ✅ | ✅ | ✅ | |
| Port → PID resolution | ✅ | ✅ | ✅ | ✅ | |
| Service Detection | |||||
| Service Manager | ✅ | ✅ | ✅ | ✅ | Linux: systemd, macOS: launchd, Windows: |
Similar Articles
@laobaishare: Amazing! An Indian solo developer created a terminal tool that programmers have overlooked for 20 years. It's called witr. It answers a question your OS always refuses to answer: Why is this process running?
An Indian solo developer released a terminal tool named witr that solves a long-unanswered question by operating systems: why a certain process is running.
@0xQiYan: Guys, if your terminal is still stuck with black text on a white background, you're missing out big time! This open-source gem called ohmyzsh, with 188K stars on GitHub, is built by over 2,500 programming experts worldwide. The highlight is that it packages nearly a complete development and operations terminal ecosystem. It comes with over 300…
Introduces ohmyzsh, an open-source terminal enhancement tool with 188K GitHub stars. It includes over 300 plugins and 150+ themes, supporting command completion, aliases, error correction, and more, suitable for developers and system administrators.
pranshuparmar/witr
witr is a CLI tool that traces the causality of running processes, services, and ports, explaining why they are running in a single, human-readable output or interactive TUI dashboard.
@grgerwcwetwet: Recommend a very hardcore network tool tutorial project on GitHub: fanqiang. From how to install common clients, to registering a US Apple ID, VPS basics, soft router configuration, and usage tutorials for different systems, it's all organized into beginner-friendly steps. Covers Windows, macOS, Linux…
Recommend a very hardcore network tool tutorial project on GitHub: fanqiang, covering client installation, account registration, VPS configuration, across Windows/macOS/Linux/Android/iOS all platforms, updated for nearly a decade, with 40k+ Stars.
@cevenif: Found a gem on GitHub: TaskExplorer - Professional process analysis tool. Click any process, thread stacks, memory, file handles, network sockets all laid out for you in one screen. Disk read/write positions, network speed refresh in real time, and you can directly inject or unload DLL modules. This feature density, Task Manager can't even compare...
TaskExplorer is an open-source process analysis tool that provides professional features such as thread stacks, memory editing, file handles, network sockets, etc. It supports DLL injection/unloading, is based on Qt and the SystemInformer driver, and is suitable for Windows system monitoring and performance troubleshooting.