The other items you mentioned are stored as JSON in the /homeassistant/.storage directory. You can currently version control those files.
FYI – The intent is for YAML to be used for people, and JSON for the system. So, if you configure it in the UI, the files will always be stored as JSON.
I understand the system’s design choice, but there’s a practical issue here. While these JSON files in /homeassistant/.storage are version controllable, they’re so large that VSCode freezes when trying to open them. This makes manual inspection or editing nearly impossible.
YAML would be much more practical because:
It’s far more human-readable
Easier to edit and share
Better compatibility with existing YAML configs (like automations.yaml, scripts.yaml)
While I understand JSON is for the system and YAML for people, maybe we could have an export option to YAML? This would maintain the system’s JSON storage while giving users a more manageable way to work with these configurations.
While I understand your request, I think it is unlikely given the following blog post. The “Myth Busting” section specifically deals with version control:
As a yaml-oriented user, I see no benefits of keeping UI-controlled things in yaml files.
A user may open any of these files & make changes which may cause a damage.
I would vote to move UI-controlled automations & scripts to json to make them more protected from users.
If you need a full control & know what you are doing & understand consequences & take a whole responsibility - then use yaml packages w/o UI.