A keyboard-driven terminal download manager in Go that splits files into parallel chunks and can download from multiple mirrors.
ramonvermeulen/whosthere
A terminal UI tool written in Go that discovers and explores devices on your local network without elevated privileges.
Open-source alternative to:Fing
- Stars
- 2,462
- Forks
- 75
- Open issues
- 6
- Last commit
- 4 days ago
What is it?
Whosthere lists the devices on your Local Area Network and lets you browse them in an interactive terminal interface. It combines mDNS and SSDP discovery with a subnet sweep that triggers ARP resolution, then reads the ARP cache to find hosts. Discovered devices are tagged with manufacturer names using OUI lookups.
The tool runs entirely in user space, so it does not need root or administrator rights. It also offers an optional TCP port scanner for found hosts, a regex search, and per-device aliases stored in a local database. Aliases can be bulk-imported and exported as YAML.
Beyond the TUI, it can run a single scan from the command line with JSON output, or run as a daemon exposing a small HTTP API for devices and health checks. Configuration is available through a YAML file, environment variables, and command-line flags. It supports Linux, macOS and Windows.
Key features
- 01Discovers devices via mDNS, SSDP and ARP-cache sweeping without root privileges.
- 02Shows device manufacturers using OUI lookups.
- 03Interactive TUI with regex search, device details and clipboard copy of IP or MAC.
- 04Optional port scanner for discovered hosts.
- 05Daemon mode with an HTTP API for devices and health checks.
- 06Configurable via YAML, environment variables and command-line flags, with selectable themes.
Use cases
- Checking which devices are connected to a home network.
- Labeling unknown devices with aliases to track them over time.
- Scripting periodic scans that output JSON for other tools.
- Running a background daemon that feeds device data into a dashboard.
Quick start
- 1
Install with Homebrew
brew install whosthere - 2
Run the interactive TUI
whosthere
Things to know
- Scanning other people's networks without permission may be illegal, so only scan networks you are authorized to test.
Topics
FAQ
- What is whosthere?
- A terminal UI tool written in Go that discovers and explores devices on your local network without elevated privileges. Whosthere lists the devices on your Local Area Network and lets you browse them in an interactive terminal interface. It combines mDNS and SSDP discovery with a subnet sweep that triggers ARP resolution, then reads the ARP cache to find hosts. Discovered devices are tagged with manufacturer names using OUI lookups.
- Is whosthere free to use? What license does it have?
- whosthere is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is whosthere still maintained?
- Actively maintained. The last commit to whosthere was on Oct 16, 2026.
- What can I use whosthere for?
- Checking which devices are connected to a home network. Labeling unknown devices with aliases to track them over time. Scripting periodic scans that output JSON for other tools. Running a background daemon that feeds device data into a dashboard.
- How do I install whosthere?
- Install with Homebrew: brew install whosthere Run the interactive TUI: whosthere
- Where can I get whosthere?
- The source code and installation instructions are on GitHub: https://github.com/ramonvermeulen/whosthere
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A terminal screensaver written in Go that starts when your shell is idle, showing animated scenes like constellations, rain, and particles.
A terminal markdown reader and renderer that displays .md files and repos with styled formatting in the CLI.
A terminal TUI for browsing, connecting to, and managing SSH hosts defined in your ~/.ssh/config file.
Interactive terminal disk space analyzer that scans directories, finds what is using space, and deletes it from the TUI.
A terminal UI for Linux that lists listening network ports and lets you inspect or kill the owning processes.