Commands for installing Devin without prompts, removing it again and detecting it from deployment tools. A command is shown only when it is certain: from the manifest or the installer technology’s documented default.
Related guide: Silent install switches: MSI, NSIS, Inno Setup · Uninstall a program with the registry or PowerShell
With winget
PowerShell
winget install --id CognitionAI.DevinDesktop -e --silent --accept-package-agreements --accept-source-agreementswinget upgrade --id CognitionAI.DevinDesktop -e --silentwinget uninstall --id CognitionAI.DevinDesktop -e --silentBy installer
64-bit · EXE (Inno Setup) · Current user
Silent install
DevinUserSetup-x64-3.10.48.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-Custom folder
DevinUserSetup-x64-3.10.48.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP- /DIR="C:\Apps\devin"- Uninstall registry key
- HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{5A8B7D94-9B5F-4D1F-93FC-5609F7159349}_is1
64-bit · EXE (Inno Setup) · All users
Silent install
DevinSetup-x64-3.10.48.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-Custom folder
DevinSetup-x64-3.10.48.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP- /DIR="C:\Apps\devin"- Uninstall registry key
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{A71B58E9-CEFB-4424-8A1D-A0E49CF18EBB}_is1
ARM64 · EXE (Inno Setup) · Current user
Silent install
DevinUserSetup-arm64-3.10.48.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-Custom folder
DevinUserSetup-arm64-3.10.48.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP- /DIR="C:\Apps\devin"- Uninstall registry key
- HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1A69CEA0-8DA8-4B3E-950C-23FA9F850651}_is1
ARM64 · EXE (Inno Setup) · All users
Silent install
DevinSetup-arm64-3.10.48.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-Custom folder
DevinSetup-arm64-3.10.48.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP- /DIR="C:\Apps\devin"- Uninstall registry key
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9B0AE7D1-5CD0-43E6-B7B0-EE4B79723A25}_is1
PowerShell: download, verify, install
Downloads the official file, checks its SHA256 and installs it silently.
install-devin.ps1
$url = 'https://windsurf-stable.codeiumdata.com/win32-x64-user/stable/fcf7ba39e6150055fad817f8716385b4d320d46d/DevinUserSetup-x64-3.10.48.exe'
$sha256 = '6CA06D227B06BF80B3008111DEA8316F3F41A5BCE6E9673B28E368AC49663854'
$file = Join-Path $env:TEMP 'DevinUserSetup-x64-3.10.48.exe'
Invoke-WebRequest -Uri $url -OutFile $file -UseBasicParsing
if ((Get-FileHash $file -Algorithm SHA256).Hash -ne $sha256) { throw 'SHA256 mismatch' }
Start-Process -FilePath $file -ArgumentList '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-' -Wait install-devin.ps1
$url = 'https://windsurf-stable.codeiumdata.com/win32-x64/stable/fcf7ba39e6150055fad817f8716385b4d320d46d/DevinSetup-x64-3.10.48.exe'
$sha256 = '0B1FE3A177AA24FBE75C8F4020388E230FA9D5974BE65A3E339A0121DB9B6EE2'
$file = Join-Path $env:TEMP 'DevinSetup-x64-3.10.48.exe'
Invoke-WebRequest -Uri $url -OutFile $file -UseBasicParsing
if ((Get-FileHash $file -Algorithm SHA256).Hash -ne $sha256) { throw 'SHA256 mismatch' }
Start-Process -FilePath $file -ArgumentList '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-' -Wait install-devin.ps1
$url = 'https://windsurf-stable.codeiumdata.com/win32-arm64-user/stable/fcf7ba39e6150055fad817f8716385b4d320d46d/DevinUserSetup-arm64-3.10.48.exe'
$sha256 = '5DCD54A274E3E059F42485DDAB40ABB0E7652217DEE20A1D435B9E8317F635D8'
$file = Join-Path $env:TEMP 'DevinUserSetup-arm64-3.10.48.exe'
Invoke-WebRequest -Uri $url -OutFile $file -UseBasicParsing
if ((Get-FileHash $file -Algorithm SHA256).Hash -ne $sha256) { throw 'SHA256 mismatch' }
Start-Process -FilePath $file -ArgumentList '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-' -Wait install-devin.ps1
$url = 'https://windsurf-stable.codeiumdata.com/win32-arm64/stable/fcf7ba39e6150055fad817f8716385b4d320d46d/DevinSetup-arm64-3.10.48.exe'
$sha256 = 'C226DE072F94001B48A3AACCCA5D6E335FB2C8B0BCDA74E9F8943CA16A06DC56'
$file = Join-Path $env:TEMP 'DevinSetup-arm64-3.10.48.exe'
Invoke-WebRequest -Uri $url -OutFile $file -UseBasicParsing
if ((Get-FileHash $file -Algorithm SHA256).Hash -ne $sha256) { throw 'SHA256 mismatch' }
Start-Process -FilePath $file -ArgumentList '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-' -Wait