MCPcopy
hub / github.com/homebridge/homebridge-config-ui-x

github.com/homebridge/homebridge-config-ui-x @v5.24.0 sqlite

repository ↗ · DeepWiki ↗ · release v5.24.0 ↗
2,945 symbols 7,375 edges 418 files 524 documented · 18%
README

Homebridge Logo

Homebridge UI

npm npm npm

:gb: :bulgaria: :cn: :taiwan: :czech_republic: :finland: :fr: :de: :hungary: :indonesia: :israel: :it: :jp: :kr: :macedonia: :netherlands: :norway: :poland: :portugal: :brazil: :ru: :slovenia: :es: :sweden: :thailand: :tr: :ukraine: :vietnam:

Homebridge UI is a web-based management tool for Homebridge that allows you to manage all aspects of your Homebridge setup.

  • Install and configure Homebridge plugins
  • Edit the Homebridge config.json with advanced JSON syntax checking and structure validation
  • Visual configuration for over 500 plugins (no manual config.json editing required)
  • Monitor your Homebridge server via a fully customisable widget-based dashboard
  • View the Homebridge logs
  • View and control Homebridge accessories
  • Restart Homebridge
  • Back up and Restore your Homebridge instance
  • Set up and manage your Homebridge plugins as child bridges
  • and more...

Homebridge UI also provides a tool called hb-service which makes it easy to set up Homebridge as a service on Linux/Raspbian, macOS, FreeBSD and Windows.

Installation Instructions

For detailed instructions on how to set up Node.js and Homebridge with Homebridge UI as a service, see the guides on the wiki:

If your platform is not listed above, or you want to use your own service manager, see the Manual Configuration wiki article for instructions on installing and running hb-service manually.

The default username is admin and the default password is admin.

The UI can be accessed via web browser by default on port 8581 (e.g. http://localhost:8581).

Usage

Status Screen

This shows an overview of your Homebridge system. The dashboard is widget-based and completely customisable with a number of themes available.

Status

Plugin Screen

This shows you the currently installed plugins and allows you to install, configure, update, and remove plugins.

Plugin

You can configure supported plugins using the graphical settings editor or by editing the config JSON directly.

Plugin Settings

Configuration Screen

The configuration screen allows you to modify your Homebridge config.json. The built-in editor automatically syntax-checks your JSON and makes a backup of your config every time you make a change.

Config

Log Screen

This shows you the Homebridge rolling log. This is helpful for troubleshooting.

Log

Accessories Screen

This shows you the Homebridge accessories for all the Homebridge instances on your network. You can use this to control accessories from a web browser and works well on mobile devices which allows users to control Homebridge from non-Apple devices.

Accessories

Plugin Development

The https://developers.homebridge.io website contains the Homebridge API reference, available service and characteristic types, and plugin examples.

The Homebridge Plugin Template project provides a base you can use to create your own platform plugin.

There are many existing plugins you can study; you might start with the Homebridge Example Plugins or a plugin that already implements the device type you need.

Community

The official Homebridge Discord server and Reddit community are where users can discuss Homebridge and ask for help.

Homebridge Discord Homebridge Reddit

HomeKit communities can also be found on both Discord and Reddit.

Limitations

  • One bridge can only expose 150 accessories due to a HomeKit limit. You can, however, run your plugins as a Child Bridge or run Multiple Homebridge Instances to get around this limitation.
  • Once an accessory has been added to the Home app, changing its name via Homebridge won't be automatically reflected in iOS. You must change it via the Home app as well.

Credits

  • Homebridge was originally created by Nick Farina.
  • The original HomeKit API work was done by Khaos Tian in his HAP-NodeJS project.
  • Homebridge UI was originally created by oznu.

Extension points exported contracts — how you extend this code

WsEventEmitter (Interface)
(no doc) [1 implementers]
src/modules/platform-tools/terminal/terminal.interfaces.ts
CanComponentDeactivate (Interface)
(no doc) [1 implementers]
ui/src/app/modules/logs/logs.component.ts
NodeJsVersionInfo (Interface)
(no doc)
test/e2e/status-nodejs-version.e2e-spec.ts
MatterConfig (Interface)
(no doc)
src/core/matter/matter.interfaces.ts
TermSize (Interface)
(no doc)
src/modules/platform-tools/terminal/terminal.interfaces.ts
CanComponentDeactivate (Interface)
(no doc) [1 implementers]
ui/src/app/modules/plugins/plugins.component.ts
BridgeHapConfig (Interface)
(no doc)
src/core/matter/matter.interfaces.ts
DockerRelease (Interface)
(no doc)
src/modules/platform-tools/docker/docker.interfaces.ts

Core symbols most depended-on inside this repo

error
called by 591
src/core/logger/logger.service.ts
logger
called by 217
src/bin/hb-service.ts
warn
called by 117
src/core/logger/logger.service.ts
get
called by 112
scripts/extract-plugin-alias.js
update
called by 101
ui/src/app/core/plugins/manage-plugin/manage-plugin.component.ts
log
called by 97
src/core/logger/logger.service.ts
toToastMessage
called by 94
ui/src/app/core/utilities/http-error.service.ts
get
called by 94
ui/src/app/core/communication/api.service.ts

Shape

Method 1,972
Class 648
Interface 170
Function 148
Enum 7

Languages

TypeScript100%

Modules by API surface

ui/src/app/modules/settings/settings.component.ts90 symbols
ui/src/app/core/accessories/types/matter/matter-device.utils.ts69 symbols
src/modules/plugins/plugins.service.ts64 symbols
src/modules/config-editor/config-editor.service.ts54 symbols
src/modules/server/server.service.ts53 symbols
ui/src/app/core/plugins/plugin-bridge/plugin-bridge.component.ts51 symbols
src/bin/hb-service.ts51 symbols
src/modules/server/server.controller.ts43 symbols
src/bin/platforms/linux.ts37 symbols
ui/src/app/modules/status/status.component.ts35 symbols
src/modules/status/status.service.ts35 symbols
src/modules/config-editor/config-editor.controller.ts34 symbols

Dependencies from manifests, versioned

@angular-eslint/eslint-plugin21.4.0 · 1×
@angular-eslint/eslint-plugin-template21.4.0 · 1×
@angular-eslint/template-parser21.4.0 · 1×
@angular/build21.2.13 · 1×
@angular/cli21.2.13 · 1×
@angular/common21.2.15 · 1×
@angular/compiler21.2.15 · 1×
@angular/compiler-cli21.2.15 · 1×
@angular/core21.2.15 · 1×
@angular/forms21.2.15 · 1×
@angular/language-service21.2.15 · 1×
@angular/localize21.2.15 · 1×

For agents

$ claude mcp add homebridge-config-ui-x \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact