diff --git a/docs/docs/concepts/dev-environments.md b/docs/docs/concepts/dev-environments.md
index 0b20d9c60..b2eec6c1a 100644
--- a/docs/docs/concepts/dev-environments.md
+++ b/docs/docs/concepts/dev-environments.md
@@ -28,6 +28,29 @@ resources:
+### Initialization
+
+If you want to pre-configure the dev environment, specify the [`init`](../reference/dstack.yml/dev-environment.md#init)
+property with a list of commands to run at startup:
+
+
+
+```yaml
+type: dev-environment
+# The name is optional, if not specified, generated randomly
+name: vscode
+
+python: "3.11"
+ide: vscode
+
+# Commands to run on startup
+init:
+ - pip install wandb
+```
+
+
+
+
### Resources
When you specify a resource value like `cpu` or `memory`,
diff --git a/src/dstack/_internal/core/models/configurations.py b/src/dstack/_internal/core/models/configurations.py
index 1f299715b..bffe3b174 100644
--- a/src/dstack/_internal/core/models/configurations.py
+++ b/src/dstack/_internal/core/models/configurations.py
@@ -199,7 +199,7 @@ def check_image_or_commands_present(cls, values):
class DevEnvironmentConfigurationParams(CoreModel):
ide: Annotated[Literal["vscode"], Field(description="The IDE to run")]
version: Annotated[Optional[str], Field(description="The version of the IDE")]
- init: Annotated[CommandsList, Field(description="The bash commands to run")] = []
+ init: Annotated[CommandsList, Field(description="The bash commands to run on startup")] = []
class DevEnvironmentConfiguration(