> ## 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.

# Compatibilidad con Windows

> Ejecuta Devin en Windows con blueprint y sesiones.

Devin es compatible con Windows como plataforma de compilación y de sesiones. Los entornos de Windows usan el mismo shell de bash (Git Bash) que Linux, por lo que la mayoría de los comandos de blueprint funcionan en ambas plataformas sin modificaciones.

<Warning>
  La compatibilidad con Windows está disponible actualmente de forma limitada. Si te interesa probar Windows con Devin, [contáctanos](https://cognition.com/contact) para obtener más información y solicitar acceso.
</Warning>

<div id="how-it-works">
  ## Cómo funciona
</div>

La compatibilidad con Windows se basa en el mismo sistema de [configuración declarativa](/es/onboard-devin/environment/blueprints) que Linux. La principal diferencia está en el campo `runs-on` de tu blueprint, que le indica a Devin en qué plataforma debe compilarse y ejecutarse.

Como ambas plataformas usan bash, puedes escribir los mismos comandos de shell tanto en Linux como en Windows. Las principales diferencias están en la estructura del sistema de archivos y en los gestores de paquetes disponibles:

| Aspecto                    | Linux (predeterminado) | Windows                                    |
| -------------------------- | ---------------------- | ------------------------------------------ |
| Directorio de inicio       | `/home/ubuntu`         | `/c/Users/Administrator`                   |
| Directorio del repositorio | `~/repos/<repo-name>`  | `/c/Users/Administrator/repos/<repo-name>` |
| Gestor de paquetes         | `apt-get`              | `choco` o instaladores directos            |

<div id="writing-windows-blueprints">
  ## Crear plantillas para Windows
</div>

<div id="single-platform-blueprint">
  ### Plantilla para una sola plataforma
</div>

Si tu repositorio solo es compatible con Windows, usa `runs-on: windows` en el nivel superior:

```yaml theme={null}
runs-on: windows

initialize:
  - name: "Install Node.js"
    uses: github.com/actions/setup-node@v4
    with:
      node-version: "20"

  - name: "Install build tools"
    run: |
      choco install visualstudio2022buildtools -y
      choco install python --version=3.12 -y

maintenance: |
  npm install

knowledge:
  - name: lint
    contents: npm run lint
  - name: test
    contents: npm test
  - name: build
    contents: npm run build
```

<div id="multi-platform-blueprint">
  ### Blueprint multiplataforma
</div>

Para compilar el mismo repositorio tanto en Linux como en Windows, escribe cada plataforma como un documento YAML independiente, separado por `---`. Cada documento declara su propia etiqueta `runs-on`. Consulta el recuadro de [YAML de varios documentos](/es/onboard-devin/environment/blueprints#blueprint-sections) en la guía de blueprints para obtener más contexto sobre este formato.

```yaml theme={null}
runs-on: default
initialize: |
  curl -LsSf https://astral.sh/uv/install.sh | sh
  apt-get update && apt-get install -y build-essential

maintenance: |
  uv sync

knowledge:
  - name: test
    contents: uv run pytest

---
runs-on: windows
initialize: |
  choco install python --version=3.12 -y

maintenance: |
  uv sync

knowledge:
  - name: test
    contents: uv run pytest
```

Cada documento genera una compilación de instantánea independiente para su plataforma. Las sesiones se inician a partir de la instantánea específica de la plataforma.

<Warning>
  El YAML de nivel superior debe ser un mapeo, no una secuencia. Si escribes el ejemplo anterior como una sola lista (`- runs-on: default` / `- runs-on: windows`), el backend lo rechazará con `Invalid YAML: each YAML document must be a mapping, not a sequence; use '---' to separate multiple blocks`. Usa el separador `---` que se muestra arriba.
</Warning>

<div id="the-runs-on-field">
  ## El campo `runs-on`
</div>

El campo `runs-on` corresponde a una configuración de máquina registrada en tu cuenta:

| Valor               | Plataforma                        |
| ------------------- | --------------------------------- |
| `default` o `linux` | Linux (plataforma predeterminada) |
| `windows`           | Windows                           |

Puedes especificar `runs-on` como una cadena o una lista:

```yaml theme={null}
# Plataforma única
runs-on: windows

# Múltiples plataformas en un bloque (los mismos comandos se ejecutan en cada una)
runs-on: [default, windows]
```

Cuando un bloque enumera múltiples plataformas, el sistema de compilación crea una instantánea por plataforma con los mismos comandos.

<Warning>
  La sintaxis de lista ejecuta comandos idénticos en cada plataforma de la lista. Úsala solo cuando los comandos sean realmente multiplataforma (e.g., `npm install`, `uv sync`). Para comandos específicos de cada plataforma (como `apt-get` en Linux o `choco` en Windows), usa en su lugar el [formato de múltiples documentos](#multi-platform-blueprint): un documento por plataforma, separado por `---`.
</Warning>

<div id="usage-and-cost">
  ## Uso y costo
</div>

Las sesiones de Windows consumen aproximadamente **un 9 % más** de uso (ACU o cuota) en comparación con las sesiones equivalentes de Linux. Para obtener más información sobre cómo se mide el uso, consulta [Uso](/es/admin/billing/usage#windows-sessions).

<div id="windows-session-behavior">
  ## Comportamiento de la sesión en Windows
</div>

<div id="shell">
  ### Shell
</div>

Las sesiones de Windows usan **Git Bash** como shell predeterminado, el mismo shell de bash que se usa en Linux. La sintaxis estándar de bash funciona en ambas plataformas:

```yaml theme={null}
- run: |
    export MY_VAR="hello"
    echo $MY_VAR
```

<div id="paths">
  ### Rutas
</div>

Windows usa el formato de rutas de Git Bash (`/c/...` en lugar de `C:\...`):

```yaml theme={null}
# Rutas de Linux
- run: cp config.json ~/.config/myapp/config.json

# Rutas de Windows (formato Git Bash)
- run: cp config.json /c/Users/Administrator/.config/myapp/config.json
```

<div id="secrets">
  ### Secretos
</div>

Los secretos están disponibles como variables de entorno durante las sesiones y se usan con la sintaxis estándar de bash (`$SECRET_NAME`):

```yaml theme={null}
maintenance:
  - name: "Configure registry"
    run: |
      npm config set //registry.npmjs.org/:_authToken $NPM_TOKEN
```

<div id="file-attachments">
  ### Archivos adjuntos
</div>

En Windows, los archivos subidos se guardan en `/c/Users/Administrator/.files/` en lugar de en `/home/ubuntu/.files/`.

<div id="computer-use">
  ### Computer Use
</div>

[Computer Use](/es/work-with-devin/computer-use) es totalmente compatible con las sesiones de Windows. Devin dispone de un entorno de escritorio de Windows con acceso a Chrome, mouse y teclado, por lo que puede probar apps web, así como aplicaciones de escritorio nativas de Windows (p. ej., apps de WPF y WinForms) y registrar sus sesiones de testing.

<div id="blueprint-tips-for-windows">
  ## Consejos sobre plantillas para Windows
</div>

<div id="installing-tools">
  ### Instalar herramientas
</div>

Usa `choco` (Chocolatey) o scripts de descarga directa:

```yaml theme={null}
initialize:
  - name: "Install Chocolatey packages"
    run: |
      choco install git -y
      choco install nodejs-lts -y
      choco install python --version=3.12 -y
      choco install dotnet-sdk -y
```

<div id="common-patterns">
  ### Patrones comunes
</div>

**Proyecto .NET:**

```yaml theme={null}
runs-on: windows

initialize:
  - name: "Install .NET SDK"
    run: |
      choco install dotnet-sdk -y

maintenance: |
  dotnet restore

knowledge:
  - name: build
    contents: dotnet build
  - name: test
    contents: dotnet test
  - name: lint
    contents: dotnet format --verify-no-changes
```

**Proyecto de Visual Studio / C++:**

```yaml theme={null}
runs-on: windows

initialize:
  - name: "Install Visual Studio Build Tools"
    run: |
      choco install visualstudio2022buildtools -y
      choco install visualstudio2022-workload-vctools -y

maintenance: |
  msbuild /t:Restore MySolution.sln

knowledge:
  - name: build
    contents: msbuild MySolution.sln /p:Configuration=Release
  - name: test
    contents: vstest.console.exe bin/Release/Tests.dll
```
