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

# Suporte ao Windows

> Use o Devin no Windows com blueprints e sessões.

O Devin oferece suporte ao Windows como plataforma de build e sessão. Os ambientes do Windows usam o mesmo shell bash (Git Bash) do Linux, então a maioria dos comandos de blueprint funciona nas duas plataformas sem necessidade de modificação.

<Warning>
  No momento, o suporte ao Windows está disponível de forma limitada. Se você tiver interesse em usar o Windows com Devin, [entre em contato conosco](https://cognition.com/contact) para saber mais e obter acesso.
</Warning>

<div id="how-it-works">
  ## Como funciona
</div>

O suporte ao Windows é baseado no mesmo sistema de [configuração declarativa](/pt-BR/onboard-devin/environment/blueprints) do Linux. A principal diferença é o campo `runs-on` no seu blueprint, que informa ao Devin em qual plataforma fazer build e executar.

Como ambas as plataformas usam bash, você pode escrever os mesmos comandos de shell no Linux e no Windows. As principais diferenças estão na estrutura do sistema de arquivos e nos gerenciadores de pacotes disponíveis:

| Aspecto                  | Linux (padrão)        | Windows                                    |
| ------------------------ | --------------------- | ------------------------------------------ |
| Diretório home           | `/home/ubuntu`        | `/c/Users/Administrator`                   |
| Diretório do repositório | `~/repos/<repo-name>` | `/c/Users/Administrator/repos/<repo-name>` |
| Gerenciador de pacotes   | `apt-get`             | `choco` ou instaladores diretos            |

<div id="writing-windows-blueprints">
  ## Como escrever blueprints para Windows
</div>

<div id="single-platform-blueprint">
  ### Blueprint de plataforma única
</div>

Se o seu repositório for compatível apenas com Windows, use `runs-on: windows` no nível 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 fazer o build do mesmo repositório tanto no Linux quanto no Windows, escreva cada plataforma como um documento YAML separado por `---`. Cada documento declara seu próprio rótulo `runs-on`. Consulte o destaque [YAML com vários documentos](/pt-BR/onboard-devin/environment/blueprints#blueprint-sections) no guia de blueprint para entender melhor esse 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 gera um build do snapshot separado para a sua plataforma. As sessões são inicializadas a partir do snapshot específico da plataforma.

<Warning>
  O YAML de nível superior deve ser um mapeamento, não uma sequência. Escrever o exemplo acima como uma única lista (`- runs-on: default` / `- runs-on: windows`) faz com que ele seja rejeitado pelo backend com `Invalid YAML: each YAML document must be a mapping, not a sequence; use '---' to separate multiple blocks`. Use o separador `---` mostrado acima.
</Warning>

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

O campo `runs-on` corresponde a uma configuração de máquina registrada na sua conta:

| Valor                | Plataforma                |
| -------------------- | ------------------------- |
| `default` ou `linux` | Linux (plataforma padrão) |
| `windows`            | Windows                   |

Você pode especificar `runs-on` como uma string ou uma lista:

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

# Múltiplas plataformas em um bloco (os mesmos comandos são executados em cada uma)
runs-on: [default, windows]
```

Quando um bloco lista várias plataformas, o sistema de build cria um snapshot por plataforma usando os mesmos comandos.

<Warning>
  A sintaxe de lista executa comandos idênticos em todas as plataformas da lista. Use-a apenas quando os comandos forem realmente compatíveis com várias plataformas (e.g., `npm install`, `uv sync`). Para comandos específicos de cada plataforma (como `apt-get` no Linux ou `choco` no Windows), use o [formato com vários documentos](#multi-platform-blueprint) — um documento por plataforma, separado por `---`.
</Warning>

<div id="usage-and-cost">
  ## Uso e custo
</div>

As sessões do Windows consomem aproximadamente **9% mais** uso (ACUs ou cota) em comparação com sessões equivalentes no Linux. Para saber como o uso é contabilizado, consulte [Uso](/pt-BR/admin/billing/usage#windows-sessions).

<div id="windows-session-behavior">
  ## Comportamento da sessão no Windows
</div>

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

Nas sessões do Windows, o **Git Bash** é usado como shell padrão — o mesmo bash usado no Linux. A sintaxe padrão do bash funciona em ambas as plataformas:

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

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

O Windows usa o formato de caminho do Git Bash (`/c/...` em vez de `C:\...`):

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

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

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

Os segredos ficam disponíveis como variáveis de ambiente durante as sessões, usando a sintaxe padrão do bash (`$SECRET_NAME`):

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

<div id="file-attachments">
  ### Arquivos anexados
</div>

No Windows, os arquivos importados são gravados em `/c/Users/Administrator/.files/` em vez de `/home/ubuntu/.files/`.

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

[Computer Use](/pt-BR/work-with-devin/computer-use) tem suporte completo em sessões do Windows. O Devin conta com um ambiente de desktop do Windows com acesso ao Chrome, mouse e teclado, o que permite testar apps web, bem como aplicativos de desktop nativos do Windows (e.g. apps WPF e WinForms) e gravar suas sessões de teste.

<div id="blueprint-tips-for-windows">
  ## Dicas de Blueprint para Windows
</div>

<div id="installing-tools">
  ### Instalação de ferramentas
</div>

Use `choco` (Chocolatey) ou scripts de download direto:

```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">
  ### Padrões comuns
</div>

**Projeto .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
```

**Projeto 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
```
