ring is a free, open source internet of things (iot) project written in TypeScript and released under MIT. It has 1,523 GitHub stars, 213 forks and 37 open issues, and was last pushed 19 hours ago. On this registry it ranks #33 of 53 tracked projects in Internet of Things (IoT), with 5 head-to-head comparisons available.

What is ring?

Ring is an unofficial, MIT-licensed TypeScript project that packages interaction and automation for the majority of Ring doorbells, cameras, alarm systems and smart lighting, aimed at developers building their own Ring integrations and at homebridge users who want those devices inside Apple HomeKit.

What it is

Published on GitHub as dgreif/ring, the project is a collection of packages rather than a single application. The README describes two of them: ring-client-api, a TypeScript package for developers creating their own apps and programs that interact with Ring's API, and homebridge-ring, which integrates Ring products into Apple HomeKit through homebridge. Alongside them are a packages/examples/ directory of examples built on ring-client-api and a full project example at dgreif/ring-client-example. The repository is TypeScript under the MIT licence, carries the topics alarm, homebridge, homebridge-plugin, homekit and ring, and shows 1,523 stars, 213 forks and 37 open issues, with its most recent push on 23 September 2026.

The problem it addresses is that Ring's products are built to be driven from Ring's own apps, and these packages are explicitly unofficial rather than an endorsed path in. Without something like them, making a doorbell event trigger an automation or placing a camera feed beside other HomeKit accessories means reverse-engineering the service. The credits trace that work back through @davglass's doorbot, @jimhigson's ring-api, @tchellomello's python-ring-doorbell and @mrose17's homebridge-platform-ring-video-doorbell; this project consolidates the results into one TypeScript API package and one homebridge plugin spanning the majority of Ring's products.

Key capabilities

  • ring-client-api, a TypeScript package for developers who want to create their own apps and programs against Ring's API.
  • homebridge-ring, a plugin that integrates Ring products into Apple HomeKit via homebridge.
  • Coverage of the majority of Ring products: doorbells, cameras, the alarm system and smart lighting.
  • Alarm integration, reflected in the alarm topic and in credited discovery work on the Ring Alarm websockets API.
  • A packages/examples/ directory of examples using ring-client-api, plus a full project example at dgreif/ring-client-example.
  • MIT-licensed source, with the homebridge-plugin and homekit topics marking the intended integration target.

Who uses it and how

  • Homebridge operators who already run a homebridge instance and want Ring doorbells, cameras, alarm components and lighting to appear as HomeKit accessories.
  • Developers writing custom programs in TypeScript, who use ring-client-api instead of building their own Ring client.
  • Households wanting Ring alarm state or camera events to take part in wider home automation rather than staying inside the Ring app.
  • Contributors and forkers: 213 forks and 37 open issues indicate a community adapting the packages to its own setups, with the wiki and issue tracker as the documented troubleshooting route.

Getting started

The README offers two packages to consume: ring-client-api for developers writing their own programs, and homebridge-ring for integration through homebridge, with worked code in packages/examples/ and a full project at dgreif/ring-client-example. No Docker image, compose file or hosted option is named in the material provided, so the route in is installing one of those packages into a homebridge installation or a TypeScript project.

How it compares

The credits position the project within a line of community work rather than against commercial products: doorbot proved Node could talk to Ring's API, @jimhigson's ring-api promisified it for Ring's original line of products, python-ring-doorbell is widely used for Python integrations, and homebridge-platform-ring-video-doorbell was the original Ring camera plugin for homebridge. Where those efforts were typically bounded by one language or one product generation, this project presents a single TypeScript codebase covering the majority of Ring products, split between ring-client-api for custom software and homebridge-ring for the HomeKit path.

When to use it — and when not to

Because the packages are unofficial, the project carries the maintenance risk of any integration built on a service that neither publishes nor supports it, and the README asks users to consult the wiki and search existing issues before opening a new one, which suggests setup problems are expected to be solved by the community. A self-hoster must run their own homebridge instance or embed ring-client-api in their own program; no server components, databases or other infrastructure are described, so the operational burden is small but entirely the user's. Anyone needing vendor-backed support, a compatibility commitment or a managed hosted option should look elsewhere, and the packages are relevant only to Ring hardware.

project readme (upstream, from github) — read inline

Ring

This repo contains unofficial packages to enable interaction and automation with the majority of Ring products

Troubleshooting Issues

If you are having issues, please look for related articles in the wiki and search existing Issues before opening a new Issue/Discussion

ring-client-api

The ring-client-api is a TypeScript package designed to be used by developers to create your own apps/programs which interact with Rings api

homebridge-ring

homebridge-ring allows users to easily integrate Ring products into Apple HomeKit via homebridge

Examples

See the examples directory for examples using the ring-client-api. For a full project example, see https://github.com/dgreif/ring-client-example

Credits

I'd like to give a big thanks to a number developers who have put a lot of hard work into analyzing the Ring api and building similar libraries which were extremely valuable in my creation of this project. Thank you all for your hard work!

Frequently asked questions

Is ring free to use?

ring is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does ring do?

Unofficial packages for Ring Doorbells, Cameras, Alarm System, and Smart Lighting

What is ring written in?

ring is primarily written in TypeScript. Its source is publicly available at https://github.com/dgreif/ring, and it has 1,523 GitHub stars.