PiPup shows custom pop-up notifications on your Android TV — camera snapshots, doorbell streams and smart-home alerts — triggered over HTTP from Home Assistant or anything on your network.
No cloud · no account · 100% local network · no tracking
Rich, styleable overlays with media, sound and speech — sent from your home-automation system in one HTTP request.
Images, animated GIFs, videos, embedded web pages, and live RTSP/HLS camera streams — or inline base64 images.
Read a notification aloud with text-to-speech, or play a sound — great for hands-free alerts.
Custom colors, sizes, on-screen position, rounded corners, borders, a leading icon, and a countdown progress bar.
Multiple notifications coexist on screen at once, each with its own dismissal timer.
One HTTP/JSON endpoint. Call it from Home Assistant, Node-RED, a script, or curl. Unknown fields are ignored.
Advertises itself over mDNS/Bonjour, plus a JSON status endpoint and shown/dismissed delivery callbacks.
Everything stays on your LAN. Optional bearer-token auth and an IP allowlist restrict who can trigger it.
Foreground service with auto-start on boot and a background watchdog keep the server alive.
Android TV (Leanback) native — e.g. NVIDIA Shield. On-screen address, QR code, and a test button.
Show a live doorbell stream the instant the bell rings.
Pop a camera snapshot on the TV when something moves.
Announce it aloud so you hear it from the couch.
Surface any smart-home event on the biggest screen in the house.
Install once, then send notifications from anything that can make an HTTP request.
Get it on Google Play or sideload the APK, then open it once to start the server.
POST a small JSON payload to the TV from Home Assistant, a script, or curl.
A notification overlay shows instantly on the TV, on top of whatever's playing.
Send a notification from any terminal:
# one HTTP request → a pop-up on the TV curl -X POST http://<tv-ip>:7979/notify \ -H 'Content-Type: application/json' \ -d '{ "title": "Front door", "message": "Someone is at the door", "tts": "Someone is at the front door", "media": { "image": { "uri": "https://cam/snapshot.jpg" } } }'
Use the native PiPup integration for auto-discovery and a proper notify service — or a plain rest_command with no install.
The official custom integration discovers your TVs automatically over mDNS and adds a Home Assistant notify service — no IPs to hard-code.
notify.send_message plus a pipup.send service for media, TTS & stylingPrefer no install? A rest_command works from any HA setup:
rest_command: pipup_notify: url: "http://192.168.1.50:7979/notify" method: POST content_type: "application/json" payload: >- {"title": "{{ title }}", "message": "{{ message }}", "tts": "{{ message }}", "position": 0}
Free and entirely local. Install PiPup and send your first notification in minutes.