Interactive mode

Running witr with no arguments — or with -i — opens a terminal dashboard.

witr
witr -i

It is the same data the CLI returns, arranged for exploring rather than for answering one question.

The four tabs#

Processes

A live, sortable, filterable list of every running process. The side panel shows the ancestry tree of whichever process is highlighted, so the Why It Exists chain updates as you move.

Ports

Open and listening ports with their owning processes attached in a side panel. Press a to toggle between LISTEN-only and all ports.

Containers

Every running container across Docker, Podman, nerdctl, Kubernetes and crictl, Incus, LXC, LXD and FreeBSD jails, in a single list: name, image, status, ports and command. Each container has a detail view with mounts, networks and compose project metadata.

Locks

System-wide file locks — POSIX and FLOCK on Linux, lsof-derived on macOS and FreeBSD. Press a to merge locks with every interesting open file descriptor, then / to search across the whole set. Not available on Windows.

Process details#

Drilling into a process opens the full picture: ancestry tree, child processes, environment variables, working directory, sockets and file context.

Actions#

On Unix platforms you can act on a process without leaving the dashboard:

  • Kill, Terminate, Pause, Resume — signals sent directly from the UI
  • Renice — adjust scheduling priority

Process actions are not available on Windows.

Behaviour#

  • Mouse support — navigate, sort columns and click rows.
  • Adaptive theme — colours follow your terminal's light or dark background.
  • Auto-refresh — lists refresh on an adaptive cadence, starting at three seconds and backing off under load.

When the TUI opens#

witr launches the dashboard when you pass no arguments, no target flags (--pid, --port, --file, --container), or when you pass -i explicitly. Any target flag switches it back to single-answer CLI mode.

You can try the TUI without installing anything from the browser playground.