@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.
@jakevin7: OpenCLI hit 20k stars, https://github.com/jackwener/OpenCLI… But now I don't feel much about the star count anymore. The happiest moments are still when communicating with users about usage & sharing insights. Will continue to improve later, making …
The OpenCLI project surpassed 20,000 stars on GitHub. This tool converts websites, browser sessions, and Electron applications into deterministic CLI interfaces, supporting AI Agents in directly operating browsers and automating workflows.
@berryxia: Bros! Don't reinvent the wheel—just use this 31.4K-star open-source project! ByteDance has open-sourced UI-TARS-desktop. Taking a quick look, the project has been live for nearly a year! It currently has 31.4k stars, and its growth rate is quite steady. 24-hour growth...
ByteDance open-sourced UI-TARS-desktop, a native desktop GUI agent with 31.4k GitHub stars that uses vision models to control local or remote applications via natural language. The tool runs locally for privacy, supports Windows and macOS, and includes a CLI with streaming output for developers.
@VincentLogic: Found an incredible open-source desktop AI tool from ByteDance! UI-TARS Desktop, with 31k stars, truly lives up to the hype. It can actually understand your screen and automate computer operations for you. Just tell it "Enable auto-save in VS Code and set the delay to 500ms", and it will automatically: -…
ByteDance's open-source desktop AI automation tool, UI-TARS Desktop, supports local execution and screen visual understanding. It can autonomously control your computer to handle daily tasks through natural language commands.
@VincentLogic: Discovered a powerful network monitoring tool for the terminal! With RustNet, you can monitor all network connections in real-time directly from the terminal. See at a glance which processes are secretly transmitting data and who is connecting to your server. The best part is seeing the application associated with each connection—something Wireshark can't do. You can view this directly over SSH without needing X11 forwarding…
Introduces RustNet, a terminal-based network monitoring tool developed in Rust. It supports real-time connection monitoring, process association, and traffic analysis, making it ideal for operations and security troubleshooting.