Skip to main content

Know who's home. A simple network presence detector.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wifinder-2.0.0.tar.gz (89.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wifinder-2.0.0-py3-none-any.whl (91.1 kB view details)

Uploaded Python 3

File details

Details for the file wifinder-2.0.0.tar.gz.

File metadata

  • Download URL: wifinder-2.0.0.tar.gz
  • Upload date:
  • Size: 89.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for wifinder-2.0.0.tar.gz
Algorithm Hash digest
SHA256 5d69f5443c0a0da7700ae60f7faf905a81e4228f57bc916c022234eaa0723dcb
MD5 db338b5cc13720e8bf39956f45732a07
BLAKE2b-256 e1a59cbd800e6dd1f4923fdfd9d5be08c57bd41308be0c69b2f47a656a08856a

See more details on using hashes here.

File details

Details for the file wifinder-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: wifinder-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 91.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for wifinder-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 377155e97a264cdfb19a32d3af5bf70806e7aa790bd3bb67cf3a9f101679e2d2
MD5 ea8685251c15a4b6553ae19b560dede8
BLAKE2b-256 222f4f300c3fcb6f863406dfa3b8ae1c44d13de334efc86c32a40df14dce5d5f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page