An open API service indexing awesome lists of open source software.

https://github.com/devbeno/home-detector


https://github.com/devbeno/home-detector

Last synced: 5 days ago
JSON representation

Awesome Lists containing this project

README

          


HomeDetector

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.


Platform
Swift
UI
Cost

## 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.