> For the complete documentation index, see [llms.txt](https://apps.developer.homey.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apps.developer.homey.app/the-basics.md).

# The Basics

- [Getting Started](https://apps.developer.homey.app/the-basics/getting-started.md): How to create your first Homey app.
- [Homey CLI](https://apps.developer.homey.app/the-basics/getting-started/homey-cli.md): Complete reference of every Homey CLI command, option, and workflow.
- [App](https://apps.developer.homey.app/the-basics/app.md): The essential concepts of a Homey App.
- [Manifest](https://apps.developer.homey.app/the-basics/app/manifest.md): The basic properties of the App Manifest.
- [Internationalization](https://apps.developer.homey.app/the-basics/app/internationalization.md): Homey Apps support internationalization so that users can use your app in their native language.
- [Permissions](https://apps.developer.homey.app/the-basics/app/permissions.md): Homey Apps require permissions for certain functionality, learn which permissions exist and how to request them.
- [Persistent Storage](https://apps.developer.homey.app/the-basics/app/persistent-storage.md): There are various ways to store persistent data within your app.
- [Drivers & Devices](https://apps.developer.homey.app/the-basics/devices.md): In Homey Apps the Device classes represent the physical devices paired with Homey.
- [Pairing](https://apps.developer.homey.app/the-basics/devices/pairing.md): Pairing allows users to add new devices to Homey.
- [System Views](https://apps.developer.homey.app/the-basics/devices/pairing/system-views.md): The pairing templates are built with HTML, CSS and JavaScript. Most drivers will suffice using the system templates that are provided by Homey.
- [Devices List](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/devices-list.md): This view will show a list of selectable devices to the user. Devices that have already been paired with Homey will automatically be filtered out, based on their data property.
- [Add Devices](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/add-devices.md): This view will simply add the devices as selected by list\_devices, and finish the pairing session.
- [OAuth2 Login](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/oauth2-login.md): This view can be used for devices that need OAuth2 authorization. When it's successful, it will automatically proceed to the next view.
- [Credentials Login](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/credentials-login.md): This pair template shows a username & password view where the user can enter credentials.
- [Pincode](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/pincode.md): This pair template shows a pincode input. When the pincode is correct, it will proceed to the next view.
- [Loading](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/loading.md): This view will show a loading indicator. It's usually useful to show this view when an asynchronous operation needs to be made.
- [Done](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/done.md): This view will automatically close the pair session.
- [Custom Views](https://apps.developer.homey.app/the-basics/devices/pairing/custom-views.md)
- [Capabilities](https://apps.developer.homey.app/the-basics/devices/capabilities.md): A capability is a programmatic representation of a device's state.
- [Energy](https://apps.developer.homey.app/the-basics/devices/energy.md): By defining the energy (kWh) and power (W) usage or generation of the devices your app supports, Homey can provide detailed reports and insights into their energy consumption.
- [Settings](https://apps.developer.homey.app/the-basics/devices/settings.md): Device settings allow users to customize the behaviour of their devices from Homey.
- [Best practices](https://apps.developer.homey.app/the-basics/devices/best-practices.md): Device best practices that your app should follow.
- [Lights](https://apps.developer.homey.app/the-basics/devices/best-practices/lights.md): Best practices for lights.
- [Window coverings](https://apps.developer.homey.app/the-basics/devices/best-practices/window-coverings.md): Window coverings device best practices.
- [Battery status](https://apps.developer.homey.app/the-basics/devices/best-practices/battery-status.md): Best practices for devices with batteries.
- [Flow](https://apps.developer.homey.app/the-basics/flow.md): Flow cards allow users to create advanced home automations using your the devices from your app.
- [Arguments](https://apps.developer.homey.app/the-basics/flow/arguments.md): Flow arguments allow Flow cards to ask for user input.
- [Tokens](https://apps.developer.homey.app/the-basics/flow/tokens.md): Flow Tokens allow users to pass information between different Flow cards when creating their Flows.
- [Widgets](https://apps.developer.homey.app/the-basics/widgets.md): Widgets enable the creation of custom webviews for user dashboards.
- [Settings](https://apps.developer.homey.app/the-basics/widgets/settings.md): Widget settings allow users to customize the behaviour of their dashboard widgets from Homey.
- [Styling](https://apps.developer.homey.app/the-basics/widgets/styling.md): Styling your widget with the provided CSS variables and classes helps it fit nicely alongside other widgets on the user’s dashboard.
- [Debugging](https://apps.developer.homey.app/the-basics/widgets/debugging.md)
