# 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): This page contains an overview of all Homey CLI commands.
- [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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://apps.developer.homey.app/the-basics.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
