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

# Windows-Unterstützung

> Devin unter Windows mit Blueprints und Sitzungen ausführen.

Devin unterstützt Windows als Plattform für Builds und Sitzungen. Windows-Umgebungen verwenden dieselbe Bash-Shell (Git Bash) wie Linux, sodass die meisten Blueprint-Befehle auf beiden Plattformen ohne Änderungen funktionieren.

<Warning>
  Die Windows-Unterstützung ist derzeit nur eingeschränkt verfügbar. Wenn Sie Windows mit Devin ausprobieren möchten, [kontaktieren Sie uns](https://cognition.com/contact), um mehr zu erfahren und Zugriff zu erhalten.
</Warning>

<div id="how-it-works">
  ## Wie es funktioniert
</div>

Die Windows-Unterstützung basiert auf demselben System für [deklarative Konfiguration](/de/onboard-devin/environment/blueprints) wie Linux. Der wichtigste Unterschied ist das Feld `runs-on` in Ihrem Blueprint, das Devin mitteilt, auf welcher Plattform gebaut und ausgeführt werden soll.

Da beide Plattformen bash verwenden, können Sie unter Linux und Windows dieselben Shell-Befehle schreiben. Die Hauptunterschiede liegen in der Dateisystemstruktur und den verfügbaren Paketmanagern:

| Aspekt           | Linux (Standard)      | Windows                                    |
| ---------------- | --------------------- | ------------------------------------------ |
| Home-Verzeichnis | `/home/ubuntu`        | `/c/Users/Administrator`                   |
| Repo-Verzeichnis | `~/repos/<repo-name>` | `/c/Users/Administrator/repos/<repo-name>` |
| Paketmanager     | `apt-get`             | `choco` oder direkte Installer             |

<div id="writing-windows-blueprints">
  ## Windows-Blueprints erstellen
</div>

<div id="single-platform-blueprint">
  ### Blueprint für eine einzelne Plattform
</div>

Wenn Ihr Repository nur für Windows ausgelegt ist, verwenden Sie auf oberster Ebene `runs-on: windows`:

```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">
  ### Plattformübergreifendes Blueprint
</div>

Um dasselbe Repository sowohl für Linux als auch für Windows zu bauen, schreiben Sie jede Plattform als separates YAML-Dokument und trennen Sie die Dokumente mit `---`. Jedes Dokument definiert sein eigenes `runs-on`-Label. Hintergrundinformationen zu diesem Format finden Sie im Hinweis [Multi-document YAML](/de/onboard-devin/environment/blueprints#blueprint-sections) im Blueprint-Leitfaden.

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

Jedes Dokument erzeugt für seine Plattform einen separaten Snapshot-Build. Sitzungen starten mit dem plattformspezifischen Snapshot.

<Warning>
  Das YAML auf der obersten Ebene muss ein Mapping sein, keine Sequenz. Wenn Sie das obige Beispiel als einzelne Liste schreiben (`- runs-on: default` / `- runs-on: windows`), wird es vom Backend mit `Invalid YAML: each YAML document must be a mapping, not a sequence; use '---' to separate multiple blocks` abgelehnt. Verwenden Sie das oben gezeigte Trennzeichen `---`.
</Warning>

<div id="the-runs-on-field">
  ## Das Feld `runs-on`
</div>

Das Feld `runs-on` verweist auf eine registrierte Maschinenkonfiguration in Ihrem Konto:

| Wert                   | Plattform                 |
| ---------------------- | ------------------------- |
| `default` oder `linux` | Linux (Standardplattform) |
| `windows`              | Windows                   |

Sie können `runs-on` als Zeichenfolge oder als Liste angeben:

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

# Mehrere Plattformen in einem Block (dieselben Befehle werden auf jeder ausgeführt)
runs-on: [default, windows]
```

Wenn ein Block mehrere Plattformen auflistet, erstellt das Build-System mit denselben Befehlen einen Snapshot pro Plattform.

<Warning>
  Die Listensyntax führt auf jeder Plattform in der Liste dieselben Befehle aus. Verwenden Sie sie nur, wenn die Befehle tatsächlich plattformübergreifend sind (z. B. `npm install`, `uv sync`). Für plattformspezifische Befehle (wie `apt-get` unter Linux oder `choco` unter Windows) verwenden Sie stattdessen das [Multi-Dokument-Format](#multi-platform-blueprint) — ein Dokument pro Plattform, getrennt durch `---`.
</Warning>

<div id="usage-and-cost">
  ## Nutzung und Kosten
</div>

Windows-Sitzungen verursachen im Vergleich zu entsprechenden Linux-Sitzungen etwa **9 % mehr** Verbrauch (ACUs oder Kontingent). Details dazu, wie der Verbrauch erfasst wird, finden Sie unter [Nutzung](/de/admin/billing/usage#windows-sessions).

<div id="windows-session-behavior">
  ## Windows-Sitzungsverhalten
</div>

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

In Windows-Sitzungen wird **Git Bash** als Standard-Shell verwendet — dieselbe Bash-Shell wie unter Linux. Die Standard-Bash-Syntax funktioniert auf beiden Plattformen:

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

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

Unter Windows wird das Git-Bash-Pfadformat verwendet (`/c/...` statt `C:\...`):

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

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

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

Secrets sind in Sitzungen als Umgebungsvariablen mit der üblichen Bash-Syntax (`$SECRET_NAME`) verfügbar:

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

<div id="file-attachments">
  ### Dateianhänge
</div>

Unter Windows werden hochgeladene Dateien in `/c/Users/Administrator/.files/` statt in `/home/ubuntu/.files/` geschrieben.

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

[Computer Use](/de/work-with-devin/computer-use) wird in Windows-Sitzungen vollständig unterstützt. Devin verfügt dabei über eine Windows-Desktopumgebung mit Zugriff auf Chrome, Maus und Tastatur, sodass es Web-Apps ebenso wie native Windows-Desktopanwendungen (z. B. WPF- und WinForms-Apps) testen und seine Testsitzungen aufzeichnen kann.

<div id="blueprint-tips-for-windows">
  ## Blueprint-Tipps für Windows
</div>

<div id="installing-tools">
  ### Tools installieren
</div>

Verwenden Sie `choco` (Chocolatey) oder Skripte für den Direktdownload:

```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">
  ### Gängige Muster
</div>

**.NET-Projekt:**

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

**Visual Studio / C++-Projekt:**

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