with Interactive TUI Mode ✨
📖 Read the story behind witr
Purpose • Installation • TUI • Flags • Core Concept • Examples
Output Behavior • Platforms • Success Criteria • Sponsors
witr exists to answer a single question:
Why is this running?
When something is running on a system, whether it is a process, a service, or something bound to a port, there is always a cause. That cause is often indirect, non-obvious, or spread across multiple layers such as supervisors, containers, services, or shells.
Existing tools (ps, top, lsof, ss, systemctl, docker ps) expose state and metadata. They show what is running, but leave the user to infer why by manually correlating outputs across tools.
witr makes that causality explicit.
It explains where a running thing came from, how it was started, and what chain of systems is responsible for it existing right now, in a single, human-readable output or an interactive TUI dashboard.
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. Please note that community packages may lag GitHub releases due to independent review and validation.
[!TIP] 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.
curl -fsSL https://raw.githubusercontent.com/pranshuparmar/witr/main/install.sh | bash
Script Details
The script will:
- Detect your operating system (linux, darwin or freebsd)
- Detect your CPU architecture (amd64 or arm64)
- Download the latest released binary and man page
- Install it to /usr/local/bin/witr
- Install the man page to /usr/local/share/man/man1/witr.1
- Pass INSTALL_PREFIX to override default install path
irm https://raw.githubusercontent.com/pranshuparmar/witr/main/install.ps1 | iex
Script Details
The script will:
- Download the latest release (zip) and verify checksum.
- Extract witr.exe to %LocalAppData%\witr\bin.
- Add the bin directory to your User PATH.
APT (Debian, Ubuntu & Derivatives)
You can install witr from the official Debian and Ubuntu repositories (Ubuntu 26.04+, Debian sid and later), as well as derivative distributions like Kali Linux, Devuan, and Raspbian:
sudo apt install witr
Note: The apt-shipped version may lag the latest GitHub release. For the newest features, use the install script or another installation method.
You can install witr using Homebrew on macOS or Linux:
brew install witr
You can install witr using MacPorts on macOS:
sudo port install witr
Conda (macOS, Linux & Windows)
You can install witr using conda, mamba, or pixi on macOS, Linux, and Windows:
conda install -c conda-forge witr
# alternatively using mamba
mamba install -c conda-forge witr
# alternatively using pixi
pixi global install witr
On Arch Linux and derivatives, install from the AUR package:
yay -S witr-bin
# alternatively using paru
paru -S witr-bin
# or use your preferred AUR helper
You can install witr via winget:
winget install -e --id PranshuParmar.witr
You can install witr using npm:
npm install -g @pranshuparmar/witr
You can install witr on FreeBSD from the FreshPorts port:
pkg install witr
# or
pkg install sysutils/witr
Or build from Ports:
cd /usr/ports/sysutils/witr/
make install clean
You can install witr using Chocolatey:
choco install witr
You can install witr using Scoop:
scoop install main/witr
You can install witr from the AOSC OS repository:
oma install witr
You can install witr from the GNU Guix repository:
guix install witr
You can install witr using uniget:
uniget install witr
You can install witr using aqua:
# Add package
aqua g -i pranshuparmar/witr
# Install package
aqua i pranshuparmar/witr
You can install witr using brioche:
brioche install -r witr
You can install witr using mise:
mise use github:pranshuparmar/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.
Generic download command using curl:
bash
# Replace <package name with the actual package that you need>
curl -LO https://github.com/pranshuparmar/witr/releases/latest/download/<package-name>
Debian/Ubuntu (.deb):
bash
sudo dpkg -i ./witr-*.deb
# Or, using apt for dependency resolution:
sudo apt install ./witr-*.deb
bash
sudo rpm -i ./witr-*.rpmbash
sudo apk add --allow-untrusted ./witr-*.apkGo (cross-platform)
You can install the latest version directly from source:
go install github.com/pranshuparmar/witr/cmd/witr@latest
This will place the witr binary in your $GOPATH/bin or $HOME/go/bin directory. Make sure this directory is in your PATH.
Manual Installation
If you prefer manual installation, follow these simple steps for your platform:
Unix (Linux, macOS, FreeBSD)
# 1. Determine OS and Architecture
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m)
[ "$ARCH" = "x86_64" ] && ARCH="amd64"
[ "$ARCH" = "aarch64" ] && ARCH="arm64"
# 2. Download the binary
curl -fsSL "https://github.com/pranshuparmar/witr/releases/latest/download/witr-${OS}-${ARCH}" -o witr
# 3. Verify checksum (Optional)
curl -fsSL "https://github.com/pranshuparmar/witr/releases/latest/download/SHA256SUMS" -o SHA256SUMS
grep "witr-${OS}-${ARCH}" SHA256SUMS | (sha256sum -c - 2>/dev/null || shasum -a 256 -c - 2>/dev/null)
rm SHA256SUMS
# 4. Rename and install
chmod +x witr
sudo mkdir -p /usr/local/bin
sudo mv witr /usr/local/bin/witr
# 5. Install man page (Optional)
sudo mkdir -p /usr/local/share/man/man1
sudo curl -fsSL https://github.com/pranshuparmar/witr/releases/latest/download/witr.1 -o /usr/local/share/man/man1/witr.1
Windows (PowerShell)
```powershell
if ($env:PROCESSOR_ARCHITECTURE -eq "AMD64") { $ZipName = "witr-windows-amd64.zip" } elseif ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { $ZipName = "witr-windows-arm64.zip" } else { Write-Error "Unsupported architecture: $($env:PROCESSOR_ARCHITECTURE)" exit 1 }
Invoke-WebRequest -Uri "https://github.com/pranshuparmar/witr/releases/latest/download/$ZipName" -OutFile "witr.zip"
Expand-Archive -Path "witr.zip" -DestinationPath "." -Force