> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Instalar Devin Desktop aislado de la red

> Descarga desde el portal el paquete de Devin Desktop aislado de la red, verifica su suma de comprobación SHA-256, instálalo en macOS, Linux o Windows y ejecuta una comprobación de estado.

> [!NOTE]
>
> Esta documentación corresponde a las implementaciones federales de Devin. [Volver a la documentación de Devin](/es/get-started/devin-intro)

Esta página te guía en la primera instalación del paquete de Devin Desktop aislado de la red, que incluye la Devin CLI aislada de la red. Realízala primero en una estación de trabajo y, después, repite el proceso en el resto de tus equipos con tu procedimiento aprobado de transferencia de medios.

## Antes de empezar

* Has iniciado sesión en el portal como **miembro aprobado de un equipo con un derecho de uso on-prem activo**. Sin ese derecho, la página de descargas para entornos aislados de la red indica que no cumples los requisitos; ponte en contacto con tu equipo de gestión de cuentas.
* Tienes preparados, o estás en condiciones de preparar, los dos archivos que todo host necesita antes del primer inicio:
  * un **archivo de licencia**, emitido desde el portal (consulta [Licencia](/es/federal/air-gapped/license));
  * un **archivo de modelos** que describe tus endpoints de modelos (consulta [Archivo de modelos](/es/federal/air-gapped/models-file)).
* El host de destino ejecuta una plataforma compatible: macOS (Apple silicon o Intel), Linux (x86\_64 o aarch64) o Windows (x64 o arm64).

## Paso 1: Descarga el paquete desde el portal

1. En el portal, abre **Install → Air-gapped downloads** ([`windsurf.fedstart.com/install/airgap`](https://windsurf.fedstart.com/install/airgap)).

2. Elige el instalador de **Devin Desktop** para la plataforma de destino. La página ofrece un package por cada plataforma y formato:

   | Plataforma | Formatos |
   | - | - |
   | macOS, Apple silicon | `.dmg` |
   | macOS, Intel | `.dmg` |
   | Linux x64 | `.deb`, `.rpm`, `.tar.gz` |
   | Linux arm64 | `.deb`, `.rpm`, `.tar.gz` |
   | Windows x64 | `.exe` (instalador de sistema), `.zip` |
   | Windows arm64 | `.exe` (instalador de sistema), `.zip` |

   Los archivos de Windows se llaman `DevinSetup-<arch>-<version>.exe` y `Devin-win32-<arch>-<version>.zip`, donde `<arch>` es `x64` o `arm64`. El instalador instala la aplicación para todos los usuarios; no hay un instalador por usuario.

3. Anota la suma de comprobación **SHA-256** que aparece junto al archivo (usa **Show checksum**). Tendrás que compararla después de la transferencia.

4. Transfiere el archivo al entorno aislado de la red mediante el proceso de soportes físicos aprobado por tu organización.

La misma página ofrece otras dos descargas, cada una con su propia suma de comprobación SHA-256:

| Descarga | Archivo | Propósito |
| - | - | - |
| **Desktop tunnel CLI** | `Devin-cli-linux-x64-<version>.tar.gz`, `Devin-cli-linux-arm64-<version>.tar.gz` | El túnel independiente de línea de comandos `devin-desktop-airgap`, que permite conectar Desktop a un host remoto por SSH. Instálalo en la máquina remota, no en la estación de trabajo. |
| **Remote extension host** | `devin-reh-linux-<arch>-<version>.tar.gz`, `devin-reh-darwin-<arch>-<version>.tar.gz` | El componente de servidor que Desktop instala en los destinos SSH. Déjalo preparado para los hosts que no puedan descargarlo por sí mismos. |

La CLI del *agente* de Devin (`devin`) no forma parte de estas descargas: viene incluida en todos los packages de Desktop (consulta el [Paso 5](#step-5-locate-the-bundled-cli)).

## Paso 2: Verifica la suma de comprobación

En el host de destino (o antes de transferir el archivo al entorno aislado), calcula el SHA-256 del archivo descargado y compáralo con el valor que se muestra en el portal.

**macOS**

```sh theme={null}
shasum -a 256 Devin-darwin-arm64-<version>.dmg
```

```text theme={null}
3f6c…e21a  Devin-darwin-arm64-<version>.dmg
```

**Linux**

```sh theme={null}
sha256sum Devin-linux-x64-<version>.deb
```

```text theme={null}
3f6c…e21a  Devin-linux-x64-<version>.deb
```

**Windows**

```powershell theme={null}
Get-FileHash -Algorithm SHA256 .\DevinSetup-x64-<version>.exe
```

El valor de `Hash` debe coincidir con la suma de comprobación que aparece en la página del portal. `Get-FileHash` lo muestra en mayúsculas, así que compáralos sin distinguir entre mayúsculas y minúsculas.

La primera columna debe coincidir exactamente con la suma de comprobación que aparece en la página del portal. Si no coincide, descarta el archivo y vuelve a descargarlo.

## Paso 3: Instalar

**macOS**

1. Abre el `.dmg` y arrastra **Devin - Airgap** a `/Applications`.
2. Verifica la firma de código y la notarización antes de iniciar la aplicación por primera vez:

   ```sh theme={null}
   spctl --assess --type execute --verbose "/Applications/Devin - Airgap.app"
   codesign --verify --deep --strict "/Applications/Devin - Airgap.app"
   ```

   ```text theme={null}
   /Applications/Devin - Airgap.app: accepted
   source=Notarized Developer ID
   ```

   `spctl` muestra `accepted`; `codesign --verify` no muestra nada y finaliza con el código `0` cuando la firma está intacta. Si aparece `rejected` o `code object is not signed at all`, significa que el paquete se alteró durante la transferencia: descártalo y vuelve a empezar desde el Paso 1.

**Linux (.deb / .rpm)**

```sh theme={null}
sudo dpkg -i Devin-linux-x64-<version>.deb   # Debian/Ubuntu
sudo rpm -i Devin-linux-x64-<version>.rpm    # RHEL/Fedora
```

No hay ningún repositorio apt ni yum para las compilaciones aisladas de la red; instala y actualiza directamente a partir de los archivos de package.

**Linux (.tar.gz)**

```sh theme={null}
sudo tar -xzf Devin-linux-x64-<version>.tar.gz -C /opt
```

El lanzador es `/opt/Devin-linux-x64/bin/devin-airgap`.

**Windows (instalador)**

1. Verifica la firma Authenticode del instalador antes de ejecutarlo:

   ```powershell theme={null}
   Get-AuthenticodeSignature .\DevinSetup-x64-<version>.exe | Format-List Status, SignerCertificate
   ```

   `Status` debe ser `Valid` y el certificado del firmante debe estar emitido a nombre de `Exafunction, Inc.` Si tienes instalado el Windows SDK, `signtool verify /pa .\DevinSetup-x64-<version>.exe` realiza la misma comprobación. Cualquier otro estado significa que el archivo se alteró durante la transferencia: descártalo y vuelve a empezar desde el Paso 1.
2. Ejecuta `DevinSetup-x64-<version>.exe` como administrador. El instalador se ejecuta con privilegios elevados e instala **Devin - Airgap** para todos los usuarios en `C:\Program Files\Devin Airgap\`.

El instalador no crea ni protege la carpeta de configuración; de eso te encargarás en el [Paso 4](#windows-lock-down-the-configuration-folder). La entrada de desinstalación de Windows se llama **Devin Airgap**.

**Windows (.zip)**

Descomprime `Devin-win32-x64-<version>.zip` en la carpeta que prefieras y ejecuta Desktop desde allí; no se instala nada más. Verifica la firma Authenticode de los ejecutables descomprimidos con `Get-AuthenticodeSignature`, tal como se describe para el instalador: `Status` debe ser `Valid` y el firmante, `Exafunction, Inc.`

El bloqueo de la carpeta descrito en el [Paso 4](#windows-lock-down-the-configuration-folder) también se aplica a las instalaciones desde zip.

En Linux, la verificación consiste en la comparación SHA-256 del Paso 2; los package no van acompañados de un archivo de firma independiente.

## Paso 4: Coloca la licencia y el archivo de modelos

Tanto la CLI independiente como el agente incluido en Desktop leen los mismos dos archivos. Colócalos en las rutas predeterminadas para no tener que definir variables de entorno:

| Archivo | Ruta predeterminada | Variable de anulación |
| - | - | - |
| Licencia | `/etc/devin/license.devin-onprem-license` | `DEVIN_LICENSE_FILE` |
| Archivo de modelos | `/etc/devin/models.json` | `DEVIN_MODELS_FILE` |

En Windows, el directorio predeterminado es `C:\ProgramData\Devin\`; las variables de anulación son las mismas:

| Archivo | Ruta predeterminada (Windows) | Variable de anulación |
| - | - | - |
| Licencia | `C:\ProgramData\Devin\license.devin-onprem-license` | `DEVIN_LICENSE_FILE` |
| Archivo de modelos | `C:\ProgramData\Devin\models.json` | `DEVIN_MODELS_FILE` |

### Windows: restringe el acceso a la carpeta de configuración

Este paso es obligatorio en Windows tanto con el instalador como con el archivo zip, y el instalador no lo hace por ti. De forma predeterminada, los usuarios estándar pueden crear archivos en una carpeta nueva dentro de `C:\ProgramData`, así que, sin esta restricción, un usuario podría crear `models.json` (o el archivo de licencia o de autenticación) antes que tú y mantener el control sobre él.

**Antes de colocar ningún archivo**, crea la carpeta desde una sesión de PowerShell con privilegios elevados y restringe su acceso para que SYSTEM y Administrators tengan control total y los usuarios estándar solo tengan permisos de lectura:

```powershell theme={null}
New-Item -ItemType Directory -Force C:\ProgramData\Devin
icacls C:\ProgramData\Devin /inheritance:r /grant:r "*S-1-5-18:(OI)(CI)(F)" "*S-1-5-32-544:(OI)(CI)(F)" "*S-1-5-32-545:(OI)(CI)(RX)"
```

Si `C:\ProgramData\Devin\` ya existía, los comandos anteriores no bastan: todo lo que un usuario estándar haya creado antes en ella sigue siendo propiedad de ese usuario, y cualquier permiso concedido explícitamente sobre la carpeta a otro usuario o grupo se mantiene. Después de los comandos anteriores, ejecuta también los siguientes, en este orden. Estos comandos transfieren la propiedad de la carpeta y de su contenido a Administrators, eliminan todos los permisos explícitos de la carpeta, vuelven a aplicar el bloqueo y restablecen los permisos del contenido para que hereden los de la carpeta:

```powershell theme={null}
icacls C:\ProgramData\Devin /setowner "*S-1-5-32-544" /T /C
icacls C:\ProgramData\Devin /reset
icacls C:\ProgramData\Devin /inheritance:r /grant:r "*S-1-5-18:(OI)(CI)(F)" "*S-1-5-32-544:(OI)(CI)(F)" "*S-1-5-32-545:(OI)(CI)(RX)"
icacls C:\ProgramData\Devin\* /reset /T /C
```

Confirma el resultado. Ninguno de los comandos anteriores debería haber mostrado un mensaje de error para ningún archivo o carpeta: `/C` hace que `icacls` continúe con el siguiente elemento cuando no puede modificar uno, por lo que un error significa que ese elemento conservó su propietario o sus permisos anteriores. A continuación, lista los permisos de la carpeta y de todo su contenido:

```powershell theme={null}
icacls C:\ProgramData\Devin /T
```

La carpeta en sí, `C:\ProgramData\Devin`, debe mostrar exactamente tres entradas: `NT AUTHORITY\SYSTEM:(OI)(CI)(F)`, `BUILTIN\Administrators:(OI)(CI)(F)` y `BUILTIN\Users:(OI)(CI)(RX)`, sin que ninguna esté marcada con `(I)`. Cada archivo y subcarpeta que contenga debe mostrar los mismos tres usuarios y grupos, y ningún otro, cada uno marcado con `(I)` porque se hereda de la carpeta; en el caso de un archivo, son `NT AUTHORITY\SYSTEM:(I)(F)`, `BUILTIN\Administrators:(I)(F)` y `BUILTIN\Users:(I)(RX)`. Si aparece cualquier otro usuario o grupo en algún lugar, si una entrada de la carpeta está marcada con `(I)` o si una entrada de un archivo o subcarpeta no está marcada con `(I)`, el bloqueo no se ha aplicado; vuelve a ejecutar los comandos para una carpeta existente.

A continuación, copia el archivo de licencia y el archivo de modelos en la carpeta desde la misma sesión con privilegios elevados.

Cada entrada de modelo indica una variable de entorno que contiene su clave de API (`api_key.env`); esa variable debe estar definida en el entorno del proceso que ejecuta el agente. Consulta [Archivo de modelos → Variables de entorno de claves de API](/es/federal/air-gapped/models-file#api-key-environment-variables) para saber cómo proporcionarla a Desktop, cuyo agente integrado hereda el entorno de la **aplicación Desktop** en lugar del de tu shell.

## Paso 5: Localiza la CLI incluida

La CLI del agente de Devin viene integrada en cada package de Desktop y se compila a partir del mismo commit de versión que Desktop, de modo que ambas versiones siempre se mantienen sincronizadas.

| Plataforma | Ruta dentro del package |
| - | - |
| macOS | `/Applications/Devin - Airgap.app/Contents/Resources/app/extensions/windsurf/devin/bin/devin` |
| Linux | `<install root>/resources/app/extensions/windsurf/devin/bin/devin` |
| Windows | `<install root>\resources\app\extensions\windsurf\devin\bin\devin.exe`, donde `<install root>` es `C:\Program Files\Devin Airgap` si usaste el instalador, o la carpeta en la que descomprimiste el zip |

Usa este binario para ejecutar los comandos `devin …` de esta guía, o agrégalo a `PATH`. Confirma la versión:

```sh theme={null}
"/Applications/Devin - Airgap.app/Contents/Resources/app/extensions/windsurf/devin/bin/devin" --version
```

```text theme={null}
devin-federal <version>+airgap.<sha>
```

## Paso 6: Ejecuta la comprobación de estado

Desde un shell que tenga el mismo entorno con el que se ejecutará el agente (en particular, las variables de clave de API indicadas en tu archivo de modelos), ejecuta:

```sh theme={null}
devin airgap doctor
```

```text theme={null}
pass  license                                seat alice@example.gov (account acme), expires 2027-03-01
pass  models file path                       /etc/devin/models.json
pass  config dir writable                    /home/alice/.config/devin/cli-federal
pass  data dir writable                      /home/alice/.local/share/devin/cli-federal
pass  CA bundle                              not configured (OS trust store only; set DEVIN_CA_BUNDLE to add a private CA)
pass  models file parse                      1 model(s) configured
pass  model 'llama-3.3-70b': API key env var  LOCAL_LLAMA_API_KEY is set
pass  custom subagent profiles               none configured
pass  model 'llama-3.3-70b': endpoint reachability  GET https://models.internal:8000/v1/models -> 200 OK
pass  model 'llama-3.3-70b': inference conformance  POST https://models.internal:8000/v1/chat/completions -> 200 OK (412 ms)

10 check(s): 10 passed, 0 warning(s), 0 failure(s)
```

El comando devuelve `0` solo si no falla ninguna comprobación. Cada línea `FAIL` incluye un código de error, como `CFG002` o `NET003`; búsquelo en [Códigos de error](/es/federal/air-gapped/error-codes) y siga el manual de procedimientos de [Solución de problemas](/es/federal/air-gapped/troubleshooting).

## Paso 7: Primer inicio

**macOS**

Inicia la aplicación instalada usando su ruta explícita:

```sh theme={null}
open "/Applications/Devin - Airgap.app"
```

Evita `open -a "Devin - Airgap"`: este comando resuelve el nombre a través de LaunchServices y podría abrir una copia distinta de la que verificaste (un `.dmg` montado o una instalación anterior).

**Linux**

Inicia el lanzador instalado por el package o, si instalaste desde un tarball, ejecuta `/opt/Devin-linux-x64/bin/devin-airgap`.

**Windows**

Inicia la aplicación instalada **Devin - Airgap** o, si instalaste desde un zip, ejecuta la aplicación desde la carpeta que descomprimiste.

Si falta la licencia o no es válida, Desktop se abre de todos modos, pero el agente incluido falla: el panel de chat muestra el error de ACP `-32019 license_invalid`. Abre **View → Output → Devin ACP**, busca la línea `LIC00X` y consulta [Licencia](/es/federal/air-gapped/license#error-codes).

## Próximos pasos

* Configura SSO si tu despliegue requiere que los usuarios inicien sesión: [SSO](/es/federal/air-gapped/sso).
* Agrega una CA privada si tus endpoints usan certificados internos: [Red y certificados](/es/federal/air-gapped/network-and-certificates).
* Descubre dónde guarda el producto su estado y cómo ingerir el registro de auditoría: [Formatos en disco](/es/federal/air-gapped/on-disk-formats).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.