The App Manifest contains all metadata for your app. It specifies Flow Cards, Drivers, etc.
/.homeycompose/app.json
{"id":"my.company.example","version":"1.0.0","compatibility":">=5.0.0","runtime":"nodejs","platforms":["local","cloud"],"sdk":3,"brandColor":"#FF0000","name":{"en":"My App"},"description":{"en":"Adds support for Example devices."},"category":"lights","tags":{"en":["example"]},"images":{"small":"/assets/images/small.png","large":"/assets/images/large.png","xlarge":"/assets/images/xlarge.png"},"permissions":["homey:manager:api"]"author":{"email":"[email protected]","name":"John Doe"}}
Properties
Name
Description
id
The ID of your app. This is a reversed domain-name.
version
A Semantic Version of your app. Note that pre-release versions (e.g. 1.0.0-rc.1) are not allowed.
compatibility
A Semantic Version indicating a range of Homey versions your app is compatible with. Use at least "compatibility": ">=5.0.0" (larger or equal than v5.0.0).
runtime
The runtime the app is written for. Allowed runtimes are nodejs and python.
platforms
An array containing the app's supported platforms. Read the Homey Cloud guide for more information.
sdk
The SDK level of your app. Should be 3.
brandColor
A HEX string for the app's brand color. The brand color is not allowed to be very bright.
An object indicating the author of the app. The field author.name is required, author.email is optional.
Python properties
The following app manifest properties are only required for apps using the Python runtime.
Python version
A string with the Python version the app was developed for. Currently the only supported version is 3.14.
If the given version becomes outdated with the version(s) available on the Homey platforms, a newer version may be used to run the Homey app, which may result in incompatibility. When a new full-release Python version becomes available apps have about a year to update to the new version.
Python dependencies
To keep track of the dependencies of the Homey app, and to allow for checking compatibility with Homey platforms, any libraries added as a dependency through the CLI will be stored in the app manifest.
Editing the dependencies in the app manifest without running homey app dependencies install results in the app being bundled with outdated libraries.
Installing dependencies through other means than homey app dependencies install results in those dependencies missing in the bundled app. Always test your app by installing it or running it remotely if you have changed the dependencies, in order to see whether they are bundled correctly.
Additional properties
The following app manifest properties are optional but can be used to document extra information about your app. Most of this information will be presented to users in the Homey App Store.
Platform Local Required Features
An array of required features (nfc, ledring, speaker or matter) for platform local. Adding a required feature will make the app uninstallable on Homey Pros that do not have all the listed features. So only use this when the app will only function with the respective feature.
Contributors
An object with keys developers and translators. Each object in the developers or translators array must contain a name property.
Contributing
Perhaps some users want to show their appreciation for your hard work in the form of a small donation.
When adding one or more donation options to your app's manifest, a Donate button will appear on your app's page.
Donate buttons are only visible for non-verified developers.
Bugs
Users can come across an issue in your app. Provide them with a bug URL, so they can quickly share their findings with you. An object with a property url that contains a link to your public bug/issue tracker.
Homey Community Topic
The Homey Community is a great place to share additional information about your app with your users and fellow developers. When the ID of the topic is provided, this shows a link on the App Store. You can get the ID from the topic's URL.
Source
If you would like to, you can add a link to your source code to allow others to view your code and maybe even submit a Pull Request. A string, starting with https://.
Homepage
Share your company, brand or personal page with users to give them some more insight. A string, starting with https://.
Support
Sometimes your users need some help or might have some questions about your app. Consider offering them support, just in case they need it. Add a URL or e-mail address to the app manifest. A support URL is mandatory for Verified Developers. A string, starting with https:// or mailto:.
{
"id": "com.athom.example",
// ...
"contributing": {
"donate": {
"paypal": {
// Will link to https://paypal.me/my_paypal_username
"username": "my_paypal_username"
},
"bunq": {
// Will link to https://bunq.me/my_bunq_username
"username": "my_bunq_username"
},
"patreon": {
// Will link to https://www.patreon.com/my_patreon_username
"username": "my_patreon_username"
},
"githubSponsors": {
// Will link to https://github.com/sponsors/my_github_username
"username": "my_github_username"
}
}
}
}