A web-based IDE for writing and managing AppDaemon apps, built as a Home Assistant add-on. Runs entirely inside Home Assistant — no external services, no configuration required.
- Monaco Editor — The same editor as VS Code, with Python and YAML syntax highlighting, bracket matching, and multi-cursor editing
- Python Language Server — Full LSP support powered by pylsp: inline error highlighting (pyflakes + pycodestyle), hover docs, go-to-definition, and AppDaemon method completions via
self. - Entity Autocomplete — Type a quote inside any AppDaemon call to get live entity ID suggestions from your Home Assistant instance
- Version Control — Every save snapshots the previous file. Compare any two versions side-by-side in a diff view and restore with one click
- App Controls — Restart, start, stop, enable, and disable individual apps directly from the sidebar (requires AppDaemon HTTP API)
- Log Viewer — Live AppDaemon logs with INFO / WARNING / ERROR filtering and per-app search
- Template Evaluator — Test Jinja2 templates against your live Home Assistant instance from the Template tab
- Multiple Themes — VS Light, VS Dark, One Dark Pro, Dracula, GitHub Dark, Nord, Monokai, and more
- Font Options — Fira Code, JetBrains Mono, Cascadia Code (all with ligature support)
- In Home Assistant, go to Settings → Add-ons → Add-on Store
- Search for AppDaemon Studio and install it
- Start the add-on
- Click Open Web UI — or find it in your sidebar
No configuration needed. The add-on automatically connects to your Home Assistant instance and detects your AppDaemon apps in /config/apps/.
- Home Assistant with Supervisor (OS or Container installs)
- AppDaemon add-on installed and running
Select an app from the sidebar to open it in the editor. Switch between the Python and YAML tabs to edit the code or the apps.yaml config. Press Save (or Ctrl+S) to save.
Click the + button in the sidebar. Give it a name (lowercase, underscores only), a class name, an icon, and an optional description. A boilerplate Python file and a apps.yaml entry are created automatically.
Hover over any app in the sidebar to reveal its controls:
- Enable / Disable — toggle the app on or off in
apps.yamlwithout deleting it - Restart — hot-restart the app via the AppDaemon HTTP API (visible when the API is configured)
- Delete — remove the app and its files permanently
While editing Python, type any quote character to trigger entity ID suggestions pulled live from your Home Assistant instance. Works for entity_id, listen_state, turn_on, etc.
The editor connects to a bundled pylsp instance that has the full AppDaemon source installed. You get:
- Method completions when you type
self.— all AppDaemonhass.Hassmethods - Hover documentation for any AppDaemon method
- Go-to-definition (
F12) - Inline pyflakes errors and pycodestyle warnings
Every time you save a Python file, the previous version is automatically snapshotted. Click Compare to open the diff viewer and select any saved version to see a side-by-side diff against the current file.
Click the Logs tab to see live AppDaemon output. Filter by level (INFO / WARNING / ERROR) or search by app name.
Click the Template tab to open a Jinja2 template sandbox. Write any template and evaluate it against your live Home Assistant instance — useful for debugging automations and testing expressions before using them in AppDaemon apps.
Customize the editor theme, font family, font size, and ligatures. Switch between light and dark UI themes.
Found a bug or have a feature request? Open an issue
MIT



