Which installation to develop and contribute?


I appreciate the new guides clarifying the different install methods.
But can someone explain the right install option if you want to do some development and contribute back to the project?

I have some fixes for integrations but have been unsuccessful in submitting them back to GitHub because I don’t have the toolchain to run the formatting checks and tests.

Ideally, I’d like to develop on the same Rasberry Pi I normally run on, that’s got all the hardware I need to interact with and some debug has to be done there. I currently run the “standard” install off the getting started page but it does not have these dev tools.

Can I add these tools to my install, or should I be using another install?
A guide to help here would be really helpful.

BTW - Yes I have read this https://developers.home-assistant.io/docs/development_environment
But I don’t understand how this works on a Raspberry Pi where I need to run.

We advise to have a different test installation from your production installation that runs your house.

You could still run the dev environment on a Raspberry Pi. You would need to install Raspbian and then follow our development environment instructions.


I have Raspbian installed now and I can install and run different versions. I am looking at the alternatives described here https://developers.home-assistant.io/docs/development_environment/

Develop with either

  • Docker devcontainers and Visual Studio, or
  • Let’s call it a traditional Linux environment, using git and running HA in virtual python environments

I understand the traditional environment, even if I need to familiarize myself with this exact toolset.
But I don’t understand what I would get from Docker and devcontainers.

It would be ideal if I could have devcontainers (potentially multiple with different configurations) on the Raspberry Pi, each with cloned git repositories, and then I spin up whichever container I wanted by connecting Code Studio which is running from my Desktop (the Raspberry Pi doesn’t have keyboard and screen after all)?

Would that be any different from traditional Linux flow on the Raspberry Pi with using multiple git clones that I spin up and down in Python venv via SSH? I could even edit with Code Studio over SSH.

Thanks for your guidance.