105 lines
1.9 KiB
Markdown
105 lines
1.9 KiB
Markdown
---
|
|
publish: true
|
|
permalink: /10-19 LIFE/13 TECH SETUP/13.11 APPS/whosthere.md
|
|
title: whosthere
|
|
created: 2026-02-05T08:46:27.958-07:00
|
|
modified: 2026-02-05T09:12:58.918-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
|