Command-line interface and type declarations for Homey Apps.
$ npm i -g homeyTo get started run:
$ homey --helpOr read the getting started documentation.
Run the hermetic test suite without a Homey, account credentials, network access, or Docker:
npm testRun the same suite with production coverage and the repository coverage thresholds:
npm run test:coverageThe app lifecycle tests copy the example apps in tests/fixtures/apps to temporary directories
before building or modifying them.
With a local Docker daemon running, verify the real Docker connection and container lifecycle:
npm run test:dockerThe smoke test pulls alpine:3.20 when it is not available locally, runs a one-shot labeled
container, and removes the container afterward. It is not part of normal tests or CI. Override the
image with HOMEY_TEST_DOCKER_IMAGE or the socket with HOMEY_TEST_DOCKER_SOCKET when needed.
Add this line to your ~/.bashrc:
homey completion >>~/.bashrcThen restart your shell, or run:
source~/.bashrcAdd this line to your ~/.zshrc:
SHELL=/bin/zsh homey completion >>~/.zshrcThen restart your shell, or run:
source~/.zshrcUse homey api for direct Homey API access.
homey api raw --path /api/manager/system/
homey api raw --homey-id <HOMEY_ID> --path /api/manager/system/
homey api raw -X POST --path /api/manager/flow/flow --body '{"name":"Test Flow"}'
homey api raw -X POST --path /api/manager/flow/flow --body @payload.json
homey api raw --path /api/manager/system/ --token <TOKEN> --address http://192.168.1.100
homey api raw --path /api/manager/system/ --token <TOKEN> --homey-id <HOMEY_ID>--body is only supported for POST and PUT, matching the homey-api call behavior.
homey api schema
homey api schema --manager devices --operation get-devices --json
homey api schema --json --jq '.managers | keys'--jq requires the jq binary to be installed and available in PATH.
Please visit https://homey.app/developer for more information.
The zwave installs homey-zwavedriver.
The zigbee installs homey-zigbeedriver.
The rf installs homey-rfdriver, and copies pairing templates to /.homeycompose/.
The oauth2 installs homey-oauth2app.
The log installs homey-log. You must still require the module in the app yourself:
const Log = require('homey-log');
Don't forget to add the HOMEY_LOG_URL variable to your env.json.