https://github.com/devbeno/home-detector
https://github.com/devbeno/home-detector
Last synced: 5 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/devbeno/home-detector
- Owner: devbeno
- Created: 2026-06-19T09:44:20.000Z (7 days ago)
- Default Branch: main
- Last Pushed: 2026-06-19T13:40:32.000Z (7 days ago)
- Last Synced: 2026-06-19T14:07:08.436Z (7 days ago)
- Language: Swift
- Size: 1.77 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
HomeDetector
A private, Apple-native security camera for your Mac.
It watches and listens with on-device AI, records what matters, and texts you on iMessage.
## Why
Most “smart” cameras need a subscription, ship your video to someone else's cloud, and fire on
every shadow. HomeDetector turns the Mac you already own into a camera that runs **entirely on
your hardware** — Apple's Neural Engine does the thinking, your clips live in **your** storage,
and alerts arrive as a normal **iMessage**. No server, no account, **no cost**.
## Features
- 👁️ **Sees with AI** — Vision framework labels what triggered the motion (person, dog, bird, car…), not just “motion”.
- 🦻 **Hears with AI** — SoundAnalysis listens for glass breaking, alarms, knocking and more, even off-camera.
- 🎬 **Motion/sound‑triggered recording** — short 720p H.264 clips, never continuous, so storage stays tiny.
- ✉️ **iMessage alerts** — the Mac texts you the label + a tap‑to‑play link. Debounced so it never spams.
- ☁️ **Your storage** — clips upload to your private **Cloudflare R2** bucket (free 10 GB); links are time‑limited.
- 📱 **Remote control** — mute / arm from your iPhone with a **Shortcut** (via a private GitHub gist).
- 🛰️ **Presence-aware** — auto Arm/Disarm based on your phone being on the Wi-Fi; alerts on unknown devices (local ARP, no root).
- 🔊 **Voice deterrent** — speaks a warning aloud (local TTS) when a person is seen; route to a HomePod to fill the room.
- 🖥️ **Real Mac app** — Liquid Glass UI, sidebar, live preview, menu‑bar background mode, launch at login.
- 🔒 **Private by design** — all AI is on‑device; the camera/mic indicators only show while active.
## How it works
```mermaid
flowchart LR
cam([Camera]):::inp --> vision["Vision AI — sees
person · dog · car"]:::ai
mic([Microphone]):::inp --> sound["SoundAnalysis AI — hears
glass · alarm · knock"]:::ai
vision --> rec["Record clip"]:::act
sound --> rec
rec --> r2[("Cloudflare R2")]:::store
r2 --> msg["iMessage → iPhone"]:::out
phone([iPhone Shortcut]):::inp --> gist[("GitHub gist")]:::store
gist --> ctrl["Mac mutes / arms"]:::act
classDef ai fill:#0A84FF,color:#fff,stroke:#0A84FF
classDef inp fill:#48484A,color:#fff,stroke:#48484A
classDef act fill:#30D158,color:#06310F,stroke:#30D158
classDef store fill:#FF9F0A,color:#3A2400,stroke:#FF9F0A
classDef out fill:#BF5AF2,color:#fff,stroke:#BF5AF2
```
Two parallel **on-device AI pipelines** (Vision for images, SoundAnalysis for audio) on the Neural
Engine. See [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) for the full module breakdown.
## Install
1. Download `HomeDetector.dmg` from the [**Releases**](../../releases) page.
2. Open it and drag **HomeDetector** to **Applications**.
3. First launch: right‑click the app → **Open** (it's locally signed, not notarized).
4. Open **Settings** and follow the in‑app **Setup Guide**.
> The Mac must stay awake while monitoring — detection only runs while it's on.
See [`CHANGELOG.md`](CHANGELOG.md) for what's new in each version.
## Build from source
Requires **macOS 26** and **Xcode 26** (Swift 6.3).
```bash
# run in debug
cd macos-app && swift run
# build a universal, signed .app + .dmg
./packaging/build.sh # → packaging/build/HomeDetector.dmg
```
For stable Keychain/camera permissions across rebuilds, create a self‑signed **“HomeDetector
Local”** code‑signing certificate in Keychain Access (Certificate Assistant → Create a
Certificate → Code Signing); `build.sh` uses it automatically and falls back to ad‑hoc signing
otherwise.
## Configuration
Everything is configured in‑app (**Settings** + **Setup Guide**), and documented here:
- [`docs/R2_SETUP.md`](docs/R2_SETUP.md) — create the Cloudflare R2 bucket + token.
- [`shortcuts/README.md`](shortcuts/README.md) — build the iPhone mute/arm Shortcuts.
## Privacy
On‑device AI (Neural Engine) — **no images or audio leave your Mac for analysis**. Clips live in
your private R2 bucket behind time‑limited links. The green camera / orange microphone dots in the
menu bar are macOS's mandatory “in use” indicators and only appear while a sensor is active.
> **One opt‑in exception:** if you enable the **Gemini analyst** (off by default), a single
> downscaled JPEG of the triggering frame is sent to Google's Gemini API to filter false alarms,
> describe the scene, and rate severity. Nothing else leaves the Mac.
## License
Personal project — all rights reserved.