Welcome to BirdWatchAI! This guide is the short path from nothing to a dashboard naming the birds at your feeder. Set aside about half an hour, most of it waiting on downloads.
It installs with Docker on the machine that stays on, and you open its dashboard in a browser from anywhere in the house. Nothing needs to be installed on the device you watch from.
There was once a Windows desktop version. It still runs and existing license keys still activate it, but it is no longer being developed — new features land in the server.
Pick the walkthrough that matches your machine — each one goes from a bare box to a running dashboard:
Already have Docker? The whole install is three lines:
git clone https://github.com/JoeBarraco/birdwatchai-server-releases.git ~/birdwatch
cd ~/birdwatch
docker compose up -d
Everything is free for 30 days — no card, nothing held back.
Browse to http://<your-host-ip>:8080 — or
http://localhost:8080 if you're on the machine itself. On a Pi
you gave a hostname, http://birdwatch.local:8080 works too.
The first-time wizard walks you through:
Click Start monitoring on the dashboard and BirdWatchAI begins watching your feeder. When a bird appears, the AI identifies the species and saves a snapshot. The Engine status card shows what it's doing.
If you've set up notifications, alerts arrive on your phone whenever a bird is detected — each one with a photo and the identified species. Then browse the Gallery, History and Statistics pages as your list fills in.
BirdWatchAI connects to your camera via RTSP (Real Time Streaming Protocol). Most IP cameras support RTSP, but setup varies by brand.
Most cameras use a URL like:
rtsp://username:password@192.168.1.xxx:554/stream
The exact format depends on your camera brand. Common paths include /stream1, /live, or /h264.
Tapo cameras publish two streams. stream2 is the sub-stream and is
usually the right one: on a C113 it's 720p, which is plenty for identification.
On the C120 and most lower-cost models stream2 caps at 640×360 — too
small — so use stream1 set to 1080p in the Tapo app.
Avoid running stream1 at 2K over Wi-Fi: it saturates the camera's
uplink and shows up as corrupted video and dropped connections.
BirdWatchFinder scans your local network and prints the IP addresses of Tapo / ONVIF cameras — and hands you a clickable link to a running Raspberry Pi or Docker server dashboard. Download it from the home page.
All three live under Settings on the dashboard, and you can run any combination of them.
Get bird detection alerts sent to your email with photos attached.
Pushover delivers instant push notifications to your phone with attached photos.
ntfy does the same job with no account and no purchase — pick a topic name, subscribe to it in the ntfy app, and BirdWatchAI publishes to it.
The default 70% confidence threshold works well for most setups. If you're getting too many false positives, increase it to 80%. If you're missing birds, try lowering it to 60%.
Turn on daylight-only monitoring to skip false detections at night and save power when birds aren't active. It defaults to 6am–8pm local time, and both ends are adjustable.