A while back I ditched Windows for Linux desktop (long time Linux user, just not desktop) because I’ve learned to hate Microsoft.
I have 2 Sengled WiFi bulbs that I thought were useless now that Sengled is dead (although the app seems to be able to login again now, I’ll never trust it). But then I found Sengled Tools which, among other things, documents a very simple way to communicate with Sengled bulbs using JSON over UDP. The sample light custom component is only ~100 lines of Python and adding the UDP and JSON from Sengled Tools would be maybe 50-100 more. I took this as an invitation to improve my Python and rescue the bulbs so I started reading up on Home Assistant development.
I now have this overwhelming VS Code install with devcontainers etc. etc. which seems crazy overkill for the task at hand and I really resent AI being shoved in my face every time I try to do something - especially when the main purpose of the exercise is to learn.
I run Home Assistant in a VM and I worked out I can virsh console hass and then docker exec -it homeassistant sh. I think there’s maybe a sshd addon I could use and there is also the File Editor addon.
I guess I’ve answered my own question, and maybe I just wanted to have a rant about being “forced” back into the Microsoft ecosystem in order to develop for Home Assistant - but I would be interested to learn about other options.


You can write code in any basic editor… No need for a complex IDE, IMO. I think syntax highlighting is the only thing you really need just for QoL. Currently I’m using Sublime most of the time on Linux
I understand that - that’s why I mentioned terminal sessions into my home assistant instance and the file editor add-on. But when developing a home assistant component the only way to run it is in a home assistant instance. VS Code with devcontainers provides a development home assistant instance for this purpose. If I’m just editing the files in my production instance then I need to keep.restarting it to load new versions etc. Maybe I’ll just install another instance for development.