finds.dev← search

// the find

koush/scrypted

★ 5,782 · TypeScript · NOASSERTION · updated Jun 2026

Scrypted is a high performance video integration and automation platform

Scrypted is a home camera integration platform that bridges cameras to HomeKit, Google Home, and Alexa with low-latency streaming, plus NVR functionality with on-device smart detection. It's aimed at serious home automation users who have cameras that don't natively support their preferred ecosystem. Not a cloud service — this runs on your own hardware.

The plugin architecture is genuinely well-designed: each integration (Amcrest, Ring, UniFi, Alexa, etc.) is an isolated TypeScript module that deploys hot to a running server without restart. The RPC layer has a Python client alongside the TypeScript one, which matters for ML-heavy detection plugins. Hardware acceleration support is thorough — separate Dockerfiles for Intel, NVIDIA, AMD, and NPU targets rather than one bloated image that tries everything. The WebRTC path for HomeKit Secure Video is handled internally rather than relying on ffmpeg for the streaming leg, which is where most competitors fall apart on latency.

The monorepo structure with `npm-install.sh` doing coordination is brittle — there's no single lockfile, each plugin has its own, and dependency drift across 40+ plugins is a real maintenance burden. External dependencies are git submodules (ring-client-api, unifi-protect, werift), which means you're at the mercy of those repos staying compatible. The README is thin for a project this complex; setup is essentially 'read the docs' with no quickstart path in the repo itself. Plugin isolation is good in theory but the shared `common/` library means a breaking change there touches everything at once, and there's no obvious versioning strategy for it.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →