← All tech

GitHub Codespaces

vmdev-environment

A dev container inside a dedicated per-codespace VM, the real VM boundary that local dev containers lack.

GitHub Codespaces runs a dev container inside a dedicated per-codespace VM in the cloud. That per-codespace VM is a real hardware boundary that local Dev Containers do not have: codespaces are never co-located and are network-segmented, making them materially stronger than a dev container on your laptop. You still get the devcontainer.json workflow, now backed by a VM.

Strengths

  • Dedicated per-codespace VM, a real boundary local dev containers lack
  • Never co-located; network-segmented
  • Same devcontainer.json workflow, backed by a VM

Limitations

  • Cloud-hosted and paid, not a local tool
  • The container inside still shares the codespace VM's kernel
  • You still scope mounts and egress for the workload inside

Files & editor

desktop-remote

VS Code in the browser or over Remote tunnels; files live in the cloud VM.

How you get your project into the environment and edit it. Shared-kernel routes bind-mount host files for your desktop editor; own-kernel routes keep files in the guest, so a desktop editor attaches over remote, or you edit inside. Mounts and remote editing.

Secrets

secrets: managed

GitHub Codespaces secrets are injected as environment variables.

The realistic agent threat is exfiltration, not a kernel escape. Keeping credentials out of the code's reach is what defends against a prompt-injected agent stealing your keys. Keeping keys out of the blast radius.

Sources