Environment audit · Devin · Windows · rev 2

Five programs and an agent on a floppy

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.

probed 2026-07-24 host DEVINBOX substrate Cloud Hypervisor rev v2

§1 Correction: not a GitHub runner image

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.

Confirmed from revision 1

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.

§2 The agent ships on the config drive

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:

It drives bash, not PowerShell

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.

The agent is git's editor

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.

§3 Correction: software can be installed

Revision 1 concluded the usable toolchain was Node, Git, Docker and curl. It missed two things.

Chocolatey 2.7.3installed, at C:\ProgramData\chocolatey with its bin on PATH — a working package manager
ffmpeg 8.1.2installed via Chocolatey, demonstrating the path works in practice
ChromeC:\devin\chrome\chrome-win64 on PATH — a provisioned browser, separate from the installed Edge
OpenSSHC:\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.

§4 Substrate and the two-machine question

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.

LinuxWindows
OSUbuntu 22.04.5, kernel 5.15.200Server 2022 Standard, build 20348
CPU / clockXeon Plat. 8559C @ 2.4 GHzXeon Plat. 8559C @ 2.4 GHz — same fleet
Cores / RAM2 / 7.77 GiB8 / 32.00 GiB
Disk128 GB128 GB
DNS / connect0.5–3.3 ms / 10–12 ms7.6–8.3 ms / 27–29 ms
Disk write~1.3 GB/s~0.06 GB/s
Agent shellbash + tmuxGit bash

WSL, settled

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.

§5 Resources and egress

Memory33550356 kB = 31.996 GiB — 4076 kB below a clean 32 GiB, consistent with firmware reserve
CPU8 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
EFI100663296 B = 96.0 MiB FAT32, unlettered
Page filenone configured — matching the Linux guest's absence of swap
ShellPowerShell 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.

§6 Verification status

ClaimStatusBasis
Code executednot provenNo nonce was issued here. The Linux sibling's nonce was verified, but that establishes nothing about this guest.
Cloud HypervisorestablishedSMBIOS manufacturer and model, volunteered; consistent with the Linux guest's KVM reporting and with PROCESSOR_REVISION=cf02.
Cloudbase-Init provisioningestablishedInstalled product plus the config-2 volume it reads.
Agent on the config drive, written in RustestablishedREMOTE_EXE=D:\devin-remote.exe and RUST_LOG=info.
Agent operates via Git bashestablishedBASH_ENV, a bash shell-integration script, and three Git binary directories on PATH.
Separate machine from the Linux environmentestablished4× cores, 4× memory, different latencies, and a stopped WSL Ubuntu.
Not a GitHub runner imageestablishedFive installed products; tool cache holds only node. Corrects revision 1.
Egress unrestrictednot tested hereOnly package registries probed on Windows. Inferred from the Linux guest.
Security posturenot collectedDeliberately excluded after the initial refusal.
Persistence across sessionsuntestedNot attempted, as with every environment in this series.

A note on redaction

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.

§7 Summary

IsolationCloud Hypervisor VM, Windows Server 2022, Cloudbase-Init provisioning
Compute8 vCPU Emerald Rapids @ 2.4 GHz · 32 GiB · 128 GB NTFS · no page file
Imageminimal Server 2022 with five installed products; hostedtoolcache convention borrowed, not the runner image
AgentRust binary devin-remote.exe delivered on the config drive; operates through Git bash; terminus of every interactive git path
Usable toolchainNode, npm, Git, Docker, Chocolatey, ffmpeg, Chrome, curl, OpenSSH
Absentevery compiler, .NET, MSBuild, and pip
Storage~20× slower than the Linux guest on the same fleet
Best suited toJavaScript, 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.