Опенсорс-проектов у меня много, они все маленькие, там общий .devcontainer.json будет мешать (в отличие от больших рабочих проектов).
Поэтому этот конфиг я скрываю от git.
https://github.com/ai/environment/blob/main/zshrc#L133-L135
В больших рабочих проектах уже общий конфиг в git.
https://github.com/hplush/slowreader/blob/main/.devcontainer/podman/devcontainer.json
Конфиг .devcontainer.json — это не какая-то фишка VS Code.
Это открытый стандарт. Его поддерживает JetBrains и куча мелких инструментов.
https://containers.dev/supporting
И есть JS API, чтобы встроить его поддержку в любую среду.
VS Code видя .devcontainer.json сразу предлагает мне запустить проект в контейнере.
В настройках VS Code указано какие плагины должны переехать тогда в контейнер.
https://github.com/ai/environment/blob/main/vscode.json#L83-L96
Терминал в VS Code так же запускается внутри контейнера (хотя можно запустить и снаружи).