Environment audit · Devin · Windows · rev 2
Devin's Windows guest has five installed products, no compiler of any kind, and thirty-two gigabytes of memory. The agent itself ships on the cloud-init config drive, is written in Rust, and drives bash rather than PowerShell. Revision 1 called the image a GitHub Actions derivative; the registry says otherwise.
Revision 1 called the lineage "unmistakable" on the strength of one path convention. The installed-software inventory contradicts it.
Registry Uninstall keys, 64 + 32 bit — complete list: Cloudbase-Init 1.1.8 Cloudbase Solutions Srl Docker Desktop 4.80.0 Docker Inc. Git 2.47.1 The Git Development Community Microsoft Edge 150.0.4078.83 Microsoft Corporation Windows Subsystem for Linux Microsoft Corporation 2.7.10.0 C:\hostedtoolcache\ contains only node 20.19.0
A genuine windows-2022 runner image carries Visual Studio Build Tools, the .NET SDK, MSBuild, Java, Go, Ruby and dozens more, with a tool cache holding several language runtimes. Five products and a single cached runtime is not that image.
The correct reading: a minimal Windows Server 2022 base, with the hostedtoolcache directory convention adopted — plausibly because Cognition reuses runner-image tooling to provision Node. The missing toolchain is not a tension to resolve, as revision 1 framed it. It is simply what the image contains.
Cloudbase-Init 1.1.8 is installed. Revision 1 inferred cloud-init-style provisioning from the config-2 volume label; that inference is now direct evidence. Cloudbase-Init is the Windows port of cloud-init, and config-2 is exactly the drive it reads.
The environment block describes an architecture that neither disk nor version output revealed.
REMOTE_EXE = D:\devin-remote.exe D: is the config-2 FAT32 drive LOG_FILE = C:\devin\devin-remote-20260724-120152.log RUST_LOG = info Rust tracing / env_logger DT = 20260724120152.350000+000 TS = 20260724-120152
Four things follow, and none were visible before:
BASH_ENV = C:\ProgramData\devin\devin_bash_env
__COG_SHELL_INTEGRATION_SCRIPT = C:\ProgramData\devin\toolbox-shellIntegration-bash.sh
DEVIN_DISABLE_HISTEXPAND = 1
PATH includes: C:\Program Files\Git\usr\bin
C:\Program Files\Git\bin
C:\Program Files\Git\mingw64\bin
A BASH_ENV variable, a bash shell-integration script, a bash history-expansion toggle, and all three Git-for-Windows binary directories on PATH. Devin operates this Windows machine through Git bash. PowerShell output is what it produces when asked for it, not how it normally works — which is worth knowing before writing prompts that assume a PowerShell agent.
EDITOR = \\?\D:\devin-remote.exe editor GIT_EDITOR = \\?\D:\devin-remote.exe editor VISUAL = \\?\D:\devin-remote.exe editor GIT_TERMINAL_PROMPT = 0 GCM_INTERACTIVE = Never
Every path by which git would ordinarily block on a human is routed back into the agent or disabled outright: commit messages and interactive rebases open devin-remote.exe editor, terminal prompts are suppressed, and Git Credential Manager is forbidden from raising a dialog. Combined with the C:\devin\docker-cred entry on PATH, credentials are brokered rather than typed.
This is the deepest git integration in the survey — deeper than Cowork's commit-signing and stop hooks, which enforce policy on commits rather than making the agent the terminus of every interactive git path.
Revision 1 concluded the usable toolchain was Node, Git, Docker and curl. It missed two things.
| Chocolatey 2.7.3 | installed, at C:\ProgramData\chocolatey with its bin on PATH — a working package manager |
|---|---|
| ffmpeg 8.1.2 | installed via Chocolatey, demonstrating the path works in practice |
| Chrome | C:\devin\chrome\chrome-win64 on PATH — a provisioned browser, separate from the installed Edge |
| OpenSSH | C:\Windows\System32\OpenSSH\ on PATH |
So the environment is extensible, not frozen — and it has a browser, which brings it closer to the Linux guest's graphical posture than revision 1 allowed. What remains true is the compiler situation:
cl · gcc · clang · make · cmake none dotnet · msbuild none java · go · rustc · ruby · php none python 3.12.8 at C:\devin\python No module named pip
Native compilation, .NET builds and Python package installation all remain impossible out of the box. Chocolatey could in principle fetch some of these, but nothing has been provisioned to do so.
Manufacturer : Cloud Hypervisor Model : cloud-hypervisor CSName : DEVINBOX PROCESSOR_IDENTIFIER : Intel64 Family 6 Model 207 Stepping 2 PROCESSOR_REVISION : cf02 0xCF = 207, 0x02 = stepping 2 ✓
These SMBIOS fields were volunteered rather than requested, in a report stating that virtualization fingerprinting had been omitted — the same pattern as the Linux guest, where lscpu disclosed KVM. Cloud Hypervisor is a KVM-based VMM, so both describe one stack from two angles. It is also the same VMM xAI's Grok environment runs on: two unrelated vendors converging where Anthropic uses Firecracker.
| Linux | Windows | |
|---|---|---|
| OS | Ubuntu 22.04.5, kernel 5.15.200 | Server 2022 Standard, build 20348 |
| CPU / clock | Xeon Plat. 8559C @ 2.4 GHz | Xeon Plat. 8559C @ 2.4 GHz — same fleet |
| Cores / RAM | 2 / 7.77 GiB | 8 / 32.00 GiB |
| Disk | 128 GB | 128 GB |
| DNS / connect | 0.5–3.3 ms / 10–12 ms | 7.6–8.3 ms / 27–29 ms |
| Disk write | ~1.3 GB/s | ~0.06 GB/s |
| Agent shell | bash + tmux | Git bash |
wsl -l -v NAME STATE VERSION * Ubuntu Stopped 2 docker-desktop Running 2
A WSL2 Ubuntu exists here and is stopped; only Docker Desktop's backend distribution runs. The Linux environment offered in the product is the separate 2 vCPU VM. Two independently provisioned guests, plus a dormant third — and because WSL2 requires hardware virtualization, nested virtualization is live inside a Cloud Hypervisor guest, corroborating the vmx flag seen on the Linux side.
| Memory | 33550356 kB = 31.996 GiB — 4076 kB below a clean 32 GiB, consistent with firmware reserve |
|---|---|
| CPU | 8 cores / 8 logical, no SMT — matching the Linux guest's configuration |
| C: | 137316249600 B = 127.89 GiB NTFS, 100.59 GiB free |
| D: | 73286656 B = 69.9 MiB FAT32, label config-2, ~10 MB free — carries devin-remote.exe |
| EFI | 100663296 B = 96.0 MiB FAT32, unlettered |
| Page file | none configured — matching the Linux guest's absence of swap |
| Shell | PowerShell 5.1.20348.4294 available; Git bash is what the agent uses |
https://pypi.org -> 200 https://registry.npmjs.org -> 200 https://github.com -> 200 latency: dns 7.6–8.3 ms connect 27–29 ms ttfb 55–74 ms no proxy variables in the environment
Registries reachable with no proxy configuration. A general-web target was not tested here, so "unrestricted" is inferred from the Linux guest rather than demonstrated on Windows — flagged in §6 and closable with one curl.
| Claim | Status | Basis |
|---|---|---|
| Code executed | not proven | No nonce was issued here. The Linux sibling's nonce was verified, but that establishes nothing about this guest. |
| Cloud Hypervisor | established | SMBIOS manufacturer and model, volunteered; consistent with the Linux guest's KVM reporting and with PROCESSOR_REVISION=cf02. |
| Cloudbase-Init provisioning | established | Installed product plus the config-2 volume it reads. |
| Agent on the config drive, written in Rust | established | REMOTE_EXE=D:\devin-remote.exe and RUST_LOG=info. |
| Agent operates via Git bash | established | BASH_ENV, a bash shell-integration script, and three Git binary directories on PATH. |
| Separate machine from the Linux environment | established | 4× cores, 4× memory, different latencies, and a stopped WSL Ubuntu. |
| Not a GitHub runner image | established | Five installed products; tool cache holds only node. Corrects revision 1. |
| Egress unrestricted | not tested here | Only package registries probed on Windows. Inferred from the Linux guest. |
| Security posture | not collected | Deliberately excluded after the initial refusal. |
| Persistence across sessions | untested | Not attempted, as with every environment in this series. |
The environment dump was returned with secret-pattern values withheld, and a handful of variables over-matched on the substrings PAT and Path were then shown in cleartext as harmless — HOMEPATH, PATHEXT, PSModulePath. That judgement was correct. No credential material appears in this document.
| Isolation | Cloud Hypervisor VM, Windows Server 2022, Cloudbase-Init provisioning |
|---|---|
| Compute | 8 vCPU Emerald Rapids @ 2.4 GHz · 32 GiB · 128 GB NTFS · no page file |
| Image | minimal Server 2022 with five installed products; hostedtoolcache convention borrowed, not the runner image |
| Agent | Rust binary devin-remote.exe delivered on the config drive; operates through Git bash; terminus of every interactive git path |
| Usable toolchain | Node, npm, Git, Docker, Chocolatey, ffmpeg, Chrome, curl, OpenSSH |
| Absent | every compiler, .NET, MSBuild, and pip |
| Storage | ~20× slower than the Linux guest on the same fleet |
| Best suited to | JavaScript, container and media work |
The paradox from revision 1 survives with its explanation changed. This is still the highest-resourced environment in the survey and the least able to compile anything — but not because a rich image was stripped. It was never rich. Windows here is a thin host for a Rust agent that shells out to bash, and the eight cores and thirty-two gigabytes are provisioned for workloads the toolchain cannot currently express.