Pimp My IDE / Garage Dispatch
Back to garage
September 21, 2026 | VS Code / Dev Containers / agent boundaries

The container matches the shop. It does not lock the doors.

VS Code 1.138 can run local agent sessions inside a project's Dev Container. That is a strong answer to toolchain drift. It is not, by itself, a complete answer to mounts, network reach, credentials, or Docker authority.

THE TAKE: Use the Dev Container to pin the workbench. Then inspect the image, mounted cargo, network path, and host authority before calling the session contained.
Work the Dev Container Docking Bay

The agent can enter the project environment.

VS Code 1.138 adds local Dev Container sessions to the Agents window. When a local folder has a supported Dev Container configuration, the workspace picker can offer "Use Dev Container." The agent then works with the tools and dependencies defined for that project. Docker must be installed, and Microsoft says the feature is rolling out gradually.[1]

This solves a real failure mode. A coding agent that runs on the host may see a different compiler, runtime, package manager, or system library than the project. Moving the session into the same declared environment cuts that mismatch.

A workbench file can carry authority.

The Dev Container specification defines more than an image. A devcontainer.json can forward ports, set container and tool environment variables, choose users, add mounts, request capabilities, and set a security option. It can also run lifecycle commands such as postCreateCommand and postStartCommand.[2]

Those controls make the environment useful. They also mean the file is executable workstation policy. Review a changed Dev Container definition with the same attention you give a build script.

Environment parity answers "Can it build?" Boundary review answers "What can it touch?"

The workspace may still be a host mount.

VS Code documents two common file paths. Workspace files can be mounted from the local filesystem, or they can be copied or cloned into a container volume. Extensions run inside the container and have access to its tools and filesystem.[3]

That distinction matters. A bind-mounted repository can give a process inside the container direct write access to host files in the mounted path. An isolated volume changes that relationship, but it does not decide network access, credentials, or the power of any mounted control socket.

Docker draws the first line, not the last one.

Docker describes namespaces as the first form of container isolation and control groups as resource accounting and limiting. Its security guide also warns that daemon control is powerful. Docker can mount host directories into a container, and access to the daemon can permit host-level changes. The guide recommends restricting daemon control to trusted users.[4]

The practical rule is simple. "Runs in a container" is an implementation fact. A security claim needs the configuration and a test receipt.

Pin four things before launch.

  1. Image: pin the base image or digest, inspect Features, and record the rebuild command.
  2. Mounts: list every bind mount, volume, socket, and forwarded port. Mark each path read-only or writable.
  3. Network: state whether egress is open. Name allowed destinations if the task needs a narrow route.
  4. Authority: identify the container user, capabilities, secrets, SSH forwarding, and Docker socket access.

Now the Dev Container does two jobs without pretending they are one. It provides the project toolchain, and it carries a reviewable boundary contract.

Interactive makeover / environment contract

Dev Container Docking Bay.

Traditional purpose replaced: a single "run in container" checkbox. Better version: move the session into the declared workbench while four physical latches keep image, mounts, network, and authority visible.

Dock the session, then pin the boundary

This teaching rig reads only your selections. It does not inspect Docker, the repository, or the host.

Execution placement
Boundary latches
BOUNDARY OPEN0 / 4 LATCHES
Declared boundary latches

The host bench is unreviewed.

No boundary latch is selected. Placement alone does not say what the session can reach.

Why it is better: execution placement and boundary evidence remain separate. Even with all four latches selected, the rig says "review gate ready" because it cannot inspect or test the live setup.
Sources read, not vibes
  1. Visual Studio Code 1.138 release notes: local agent sessions in Dev Containers, Docker requirement, supported configuration behavior, and gradual rollout.
  2. Dev Container metadata reference: image and Feature configuration, users, environment variables, mounts, ports, capabilities, security options, and lifecycle commands.
  3. VS Code, "Developing inside a Container": mounted versus copied or cloned workspace files, extension placement, tools, and filesystem access.
  4. Docker Engine security: namespaces, control groups, daemon authority, bind-mount implications, and access-control guidance.
  5. GitHub Trending, September 21, 2026 and Hacker News front page: discovery scan for current agent and developer-tool signals. Neither is used to verify the technical claims above.

Source boundary: Microsoft documents the VS Code feature and Dev Container behavior. The Dev Container specification documents configurable authority. Docker documents the underlying isolation and daemon risks. The docking bay is a planning aid, not a scanner, sandbox certification, or proof of safe execution.