This documentation is for the federal deployments of Devin. Back to Devin Docs
Before you begin
- You are signed in to the portal as an approved member of a team with an active on-prem entitlement. Without the entitlement the air-gapped downloads page reports that you are not eligible; contact your account team.
- You have prepared, or are ready to prepare, the two files every host needs before first launch:
- a license file, issued from the portal (see License);
- a models file describing your model endpoints (see Models file).
- The target host runs a supported platform: macOS (Apple silicon or Intel), Linux (x86_64 or aarch64), or Windows (x64 or arm64).
Step 1: Download the bundle from the portal
-
In the portal, open Install → Air-gapped downloads (
windsurf.fedstart.com/install/airgap). -
Choose the Devin Desktop installer for the target platform. The page lists one package per platform and format:
The Windows files are named
DevinSetup-<arch>-<version>.exeandDevin-win32-<arch>-<version>.zip, where<arch>isx64orarm64. The installer installs for all users; there is no per-user installer. - Note the SHA-256 checksum the page shows next to the file (use Show checksum). You will compare against it after transfer.
- Transfer the file into the air-gapped environment by your approved media process.
The Devin agent CLI (
devin) is not one of these downloads: it ships inside every Desktop package (see Step 5).
Step 2: Verify the checksum
On the target host (or before crossing the air gap), compute the SHA-256 of the downloaded file and compare it with the value shown in the portal.- macOS
- Linux
- Windows
Step 3: Install
- macOS
- Linux (.deb / .rpm)
- Linux (.tar.gz)
- Windows (installer)
- Windows (.zip)
-
Open the
.dmgand drag Devin - Airgap into/Applications. -
Verify the code signature and notarization before first launch:
spctlprintsaccepted;codesign --verifyprints nothing and exits0when the signature is intact. Anyrejectedorcode object is not signed at alloutput means the bundle was altered in transit: discard it and start again from Step 1.
Step 4: Place the license and models file
Both the standalone CLI and the agent bundled in Desktop read the same two files. Put them at the default paths so no environment variables are needed:
On Windows the default directory is
C:\ProgramData\Devin\; the overrides are the same:
Windows: lock down the configuration folder
This step is required on Windows for both the installer and the zip, and the installer does not do it for you. By default, standard users can create files in a new folder underC:\ProgramData, so without the lockdown a user could create models.json (or the license or auth file) before you do and keep control of it.
Before placing any file, from an elevated PowerShell session, create the folder and restrict it so that SYSTEM and Administrators have full control and standard users can only read:
C:\ProgramData\Devin\ already existed, the commands above are not enough: anything a standard user created in it earlier stays owned by that user, and a permission that was granted on the folder explicitly to another user or group stays in place. After the commands above, also run the following, in this order. They give ownership of the folder and its contents to Administrators, remove every explicit permission from the folder, apply the lockdown again, and reset the permissions on the contents so they inherit the folder’s:
/C makes icacls continue past an item it could not change, so an error means that item kept its old owner or permissions. Then list the permissions on the folder and everything in it:
C:\ProgramData\Devin, must list exactly three entries: NT AUTHORITY\SYSTEM:(OI)(CI)(F), BUILTIN\Administrators:(OI)(CI)(F), and BUILTIN\Users:(OI)(CI)(RX), none of them marked (I). Every file and subfolder in it must list the same three users and groups and no others, each marked (I) because it is inherited from the folder; for a file that is NT AUTHORITY\SYSTEM:(I)(F), BUILTIN\Administrators:(I)(F), and BUILTIN\Users:(I)(RX). If any other user or group is listed anywhere, if an entry on the folder is marked (I), or if an entry on a file or subfolder is not marked (I), the lockdown is not in effect; run the commands for an existing folder again.
Then copy the license and models file into the folder from the same elevated session.
Every model entry names an environment variable that holds its API key (api_key.env); that variable must be set in the environment of the process that runs the agent. See Models file → API key environment variables for how to provide it to Desktop, whose bundled agent inherits the Desktop app’s environment rather than your shell’s.
Step 5: Locate the bundled CLI
The Devin agent CLI is embedded in every Desktop package and is built from the same release commit as Desktop, so the two versions cannot drift apart.
Use this binary for the
devin … commands in this guide, or put it on PATH. Confirm the version:
Step 6: Run the health check
From a shell that has the same environment the agent will run with (in particular the API-key variables named in your models file), run:0 only when no check fails. Any FAIL line carries an error code such as CFG002 or NET003; look it up in Error codes and follow the Troubleshooting runbook.
Step 7: First launch
- macOS
- Linux
- Windows
Launch the installed app by its explicit path:Avoid
open -a "Devin - Airgap": it resolves the name through LaunchServices and may pick a different copy (a mounted .dmg or an older install) than the one you verified.-32019 license_invalid. Open View → Output → Devin ACP and look for the LIC00X line, then see License.
Next steps
- Configure SSO if your deployment requires user login: SSO.
- Add a private CA if your endpoints use internal certificates: Network and certificates.
- Learn where the product writes its state and how to ingest the audit log: On-disk formats.

