Files
zed/docs/src/dev-containers.md
Mohamad Khani b72a46db68
Some checks failed
Update All Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Triage Project Sync (#84) / Sync triage project (push) Has been cancelled
release_nightly / notify_on_failure (push) Has been cancelled
release_nightly / check_style (push) Has been cancelled
release_nightly / run_tests_windows (push) Has been cancelled
release_nightly / clippy_windows (push) Has been cancelled
release_nightly / bundle_linux_aarch64 (push) Has been cancelled
release_nightly / bundle_linux_x86_64 (push) Has been cancelled
release_nightly / bundle_mac_aarch64 (push) Has been cancelled
release_nightly / bundle_mac_x86_64 (push) Has been cancelled
release_nightly / bundle_windows_aarch64 (push) Has been cancelled
release_nightly / bundle_windows_x86_64 (push) Has been cancelled
release_nightly / build_nix_linux_x86_64 (push) Has been cancelled
release_nightly / build_nix_mac_aarch64 (push) Has been cancelled
release_nightly / update_nightly_tag (push) Has been cancelled
Hotfix Review Monitor / check-hotfix-reviews (push) Has been cancelled
Stale PR Review Reminder / check-stale-prs (push) Has been cancelled
Update Weekly Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Bump collab-staging Tag / update-collab-staging-tag (push) Has been cancelled
compliance_check / scheduled_compliance_check (push) Has been cancelled
logiguard fork: GPUI xdg-activation keyboard-focus serial fix
Single-commit orphan branch: full zed-industries/zed @ 8c74db0 source tree
with a 3-file patch applied (no upstream history).

Patch (crates/gpui_linux/src/linux/wayland/):
  - serial.rs: add SerialKind::KeyboardEnter
  - client.rs: store wl_keyboard.enter serial; add latest_serial_of()
  - window.rs: activate() uses keyboard-enter serial (Mutter focus gate)

Mutter honors window activation only when the token carries the keyboard-
focus serial from wl_keyboard.enter; GPUI used a stale mouse-press serial.
See docs/tray-window-focus-wayland.md in logiguard.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 02:22:17 +03:30

2.8 KiB

title, description
title description
Dev Containers - Zed Open projects in dev containers with Zed. Reproducible development environments using devcontainer.json configuration.

Dev Containers

Dev Containers provide a consistent, reproducible development environment by defining your project's dependencies, tools, and settings in a container configuration.

If your repository includes a .devcontainer/devcontainer.json file, Zed can open a project inside a development container.

Requirements

  • Docker must be installed and available in your PATH. Zed requires the docker command to be present. If you use Podman, you must alias it to docker, e.g. by using a symlink: sudo ln -s $(which podman) {some_known_path}/docker.
  • Your project must contain a .devcontainer/devcontainer.json directory/file.

Using Dev Containers in Zed

Automatic prompt

When you open a project that contains the .devcontainer/devcontainer.json directory/file, Zed will display a prompt asking whether to open the project inside the dev container. Choosing "Open in Container" will:

  1. Build the dev container image (if needed).
  2. Launch the container.
  3. Reopen the project connected to the container environment.

Manual open

If you dismiss the prompt or want to reopen the project inside a container later, you can use Zed's command palette to run the "Project: Open Remote" command and select the option to open the project in a dev container. Alternatively, you can reach for the Remote Projects modal (through the {#kb projects::OpenRemote} binding) and choose the "Connect Dev Container" option.

Editing the dev container configuration

If you modify .devcontainer/devcontainer.json, Zed does not currently rebuild or reload the container automatically. After changing configuration:

  • Stop or kill the existing container manually (e.g., via docker kill <container>).
  • Reopen the project in the container.

Working in a Dev Container

Once connected, Zed operates inside the container environment for tasks, terminals, and language servers. Files are linked from your workspace into the container according to the dev container specification.

Known Limitations

Note: This feature is still in development.

  • Extensions: Zed does not yet manage extensions separately for container environments. The host's extensions are used as-is.
  • Port forwarding: Only the appPort field is supported. forwardPorts and other advanced port-forwarding features are not implemented.
  • Configuration changes: Updates to devcontainer.json do not trigger automatic rebuilds or reloads; containers must be manually restarted.

See also

  • Remote Development for connecting to remote servers over SSH.
  • Tasks for running commands in the integrated terminal.