Files
quartz/content/10-19 LIFE/13 TECH SETUP/13.11 APPS/whosthere.md
Quartz Syncer fe0581e423
All checks were successful
Build and Deploy Quartz / build (push) Successful in 27s
Published multiple files
2026-02-05 12:24:25 -07:00

1.9 KiB

publish, permalink, title, created, modified, tags, cssclasses
publish permalink title created modified tags cssclasses
true /apps/whosthere whosthere 2026-02-05T08:46:27.958-07:00 2026-02-05T12:16:30.769-07:00
network
lan
discovery

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):

yay -S whosthere-bin

Homebrew:

brew install whosthere

Go:

go install github.com/ramonvermeulen/whosthere@latest

Usage

Interactive TUI

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:

whosthere daemon

Query via API:

curl http://localhost:8080/devices

CLI Output

# 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:

# 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