GitHub Codespaces
vmdev-environmentA 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-remoteVS 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: managedGitHub 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.