--- publish: true permalink: /apps/whosthere title: whosthere created: 2026-02-05T08:46:27.958-07:00 modified: 2026-02-05T12:16:30.769-07:00 tags: - network - lan - discovery cssclasses: "" --- whosthere is a LAN discovery tool with a modern TUI. It discovers devices on your network using mDNS, SSDP, and ARP scanning—all without requiring root privileges. ## Installation **Arch Linux (via AUR):** ```bash yay -S whosthere-bin ``` **Homebrew:** ```bash brew install whosthere ``` **Go:** ```bash go install github.com/ramonvermeulen/whosthere@latest ``` ## Usage ### Interactive TUI ```bash whosthere ``` Navigate with arrow keys or vim bindings: - `j/k` - Move up/down - `Enter` - Select/expand - `q` - Quit - `r` - Refresh scan - `p` - Port scan selected device ### Daemon Mode Run as a background service with HTTP API: ```bash whosthere daemon ``` Query via API: ```bash curl http://localhost:8080/devices ``` ### CLI Output ```bash # JSON output whosthere --json # One-shot scan (no TUI) whosthere --once ``` ## Features - **mDNS discovery** - Finds devices advertising services - **SSDP scanning** - Discovers UPnP devices - **ARP cache reading** - Catches everything else - **OUI lookup** - Shows manufacturer from MAC address - **Port scanning** - Optional service discovery on found hosts ## Configuration `~/.config/whosthere/config.yaml`: ```yaml # Theme customization theme: primary: "#7aa2f7" secondary: "#bb9af7" # Scan settings scan: timeout: 5s ports: [22, 80, 443, 8080] # Daemon settings daemon: port: 8080 refresh_interval: 60s ``` ## Tips - No root required—uses unprivileged scanning techniques - Port scanning requires explicit action; only scan devices you own - Great for finding that Raspberry Pi you forgot the IP of - Combine with `--json` for scripting and automation ## See Also - GitHub: https://github.com/ramonvermeulen/whosthere