Skip to main content

WiFinder

Python 3.10+ License: GPL v3 PyPI Version

Know who's home. Panic when needed.

A simple network presence detector. Written in 2013 to know when the roommate was about to walk in - rewritten because why not.

WiFinder Web UI

Features

  • Network Scanning: automatic network detection, MAC vendor lookup.
  • Device Management: name devices, track first/last seen.
  • Notifications: desktop notifications, sound alerts, Telegram bot.
  • Web UI (optional): dark-mode dashboard, real-time updates, access from any device.

Why

Sometimes you want to set up a whole home automation stack. Sometimes you just want to know who's on your network.


Installation

Requirements

  • Python 3.10+
  • nmap (apt install nmap / brew install nmap / Windows)
  • Root/sudo access (for network scanning)

From PyPI:

pip install wifinder

Or with Docker:

docker run -d --network host -v wifinder-data:/data ghcr.io/mpescimoro/wifinder

Or from source:

git clone https://github.com/mpescimoro/wi-finder.git
cd wi-finder
pip install -e .

Usage

wifinder init                    # setup wizard
sudo wifinder watch              # monitor (linux/mac)
wifinder watch                   # monitor (windows, run as admin)
wifinder watch --panic           # panic mode
wifinder scan                    # single scan
wifinder list                    # list devices
wifinder list --all              # include offline
wifinder add AA:BB:CC "Marco"    # name a device
wifinder log                     # arrival/departure log
wifinder serve                   # web ui on :8080

System beep on arrivals by default. Enable desktop notifications in config.


Panic Mode

The original 2013 experience. Big alerts when someone arrives.

wifinder watch --panic
┌────────────────────────────────────────┐
│     OHSHITOHSHITOHSHITOHSHIT!          │
└────────────────────────────────────────┘

>>> Apple, Inc. (AA:BB:CC:DD:EE:FF)
    192.168.1.42

Customize in ~/.config/wifinder/config.yaml:

panic:
  enabled: true
  message: "HIDE EVERYTHING!"
  custom_messages:
    "AA:BB:CC:DD:EE:FF": "MOM'S HOME!"

Web UI

sudo wifinder serve

Opens on http://localhost:8080. Works from your phone too.


Telegram

Get a bot token from @BotFather, your chat id from @userinfobot, then:

notify:
  telegram_token: "YOUR_BOT_TOKEN"
  telegram_chat_id: "YOUR_CHAT_ID"

Configuration

Full config at ~/.config/wifinder/config.yaml:

network: 192.168.1.0/24
interval: 30            # scan every 30 seconds
device_ttl: 180         # wait 3 min before marking device as gone
web_port: 8080
web_host: 0.0.0.0

notify:
  sound: true           # system beep
  desktop: false        # desktop notifications
  telegram_token: null    # optional
  telegram_chat_id: null
  quiet_hours_start: 23   # quiet hours
  quiet_hours_end: 7

Database

wifinder db-path          # show config and db paths
wifinder db-reset         # reset database (delete all data)

FAQ

Why root/sudo?
nmap needs privileges to see MAC addresses. On Windows, run as Administrator.

Phone doesn't always show up
Modern phones turn off WiFi in standby. The device_ttl setting (3 min default) handles brief disconnections so you don't get spammed with false departures.

Can I detect devices not on my network?
No. That would require monitor mode, which is probably illegal in half of Europe anyway.


GPL-3.0 — mpescimoro - Detecting roommates since 2013 - <°))><

Metadata

Release files for wifinder 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wifinder 2.0.0
File Size Uploaded
wifinder-2.0.0.tar.gz 89.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wifinder 2.0.0
File Interpreter ABI Platform
wifinder-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 181.0 kB

Release files / wifinder-2.0.0.tar.gz

Download URL wifinder-2.0.0.tar.gz
Size 89.9 kB
Tags Source
SHA-256 checksum
How to use checksums
5d69f5443c0a0da7700ae60f7faf905a81e4228f57bc916c022234eaa0723dcb
BLAKE2b-256 checksum
How to use checksums
e1a59cbd800e6dd1f4923fdfd9d5be08c57bd41308be0c69b2f47a656a08856a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.1

Release files / wifinder-2.0.0-py3-none-any.whl

Download URL wifinder-2.0.0-py3-none-any.whl
Size 91.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
377155e97a264cdfb19a32d3af5bf70806e7aa790bd3bb67cf3a9f101679e2d2
BLAKE2b-256 checksum
How to use checksums
222f4f300c3fcb6f863406dfa3b8ae1c44d13de334efc86c32a40df14dce5d5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.1

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page