---
title: Einführung
description: Beginnen Sie mit OpenCode.
---

import { Tabs, TabItem } from "@astrojs/starlight/components"
import config from "../../../../config.mjs"
export const console = config.console

[**OpenCode**](/) ist ein Open-Source-Coding-Agent für AI. Es ist als terminalbasierte Schnittstelle, Desktop-App oder IDE-Erweiterung verfügbar.

![OpenCode TUI with the opencode theme](../../../assets/lander/screenshot.png)

Fangen wir an.

---

#### Voraussetzungen

Um OpenCode in Ihrem Terminal verwenden zu können, benötigen Sie:

1. Ein moderner Terminal-Emulator, zum Beispiel:
   - [WezTerm](https://wezterm.org), cross-platform
   - [Alacritty](https://alacritty.org), plattformübergreifend
   - [Ghostty](https://ghostty.org), Linux und macOS
   - [Kitty](https://sw.kovidgoyal.net/kitty/), Linux und macOS

2. API-Schlüssel für die LLM-Anbieter, die Sie verwenden möchten.

---

## Installation

Der einfachste Weg, OpenCode zu installieren, ist über das Installationsskript.

```bash
curl -fsSL https://opencode.ai/install | bash
```

Sie können es auch mit den folgenden Befehlen installieren:

- **Mit Node.js**

        <Tabs>

      <TabItem label="npm">
      ```bash
      npm install -g opencode-ai
      ```

          </TabItem>

        <TabItem label="Bun">
        ```bash
        bun install -g opencode-ai
        ```

          </TabItem>

        <TabItem label="pnpm">
        ```bash
        pnpm install -g opencode-ai
        ```

          </TabItem>

        <TabItem label="Yarn">
        ```bash
        yarn global add opencode-ai
        ```

      </TabItem>

  </Tabs>

- **Homebrew unter macOS und Linux verwenden**

  ```bash
  brew install anomalyco/tap/opencode
  ```

  > Wir empfehlen die Verwendung des OpenCode-Taps für die aktuellsten Versionen. Die offizielle `brew install opencode`-Formel wird vom Homebrew-Team gepflegt und seltener aktualisiert.

- **Verwendung von Paru unter Arch Linux**

  ```bash
  sudo pacman -S opencode           # Arch Linux (Stable)
  paru -S opencode-bin              # Arch Linux (Latest from AUR)
  ```

#### Windows

:::tip[Empfohlen: Verwenden Sie WSL]
Für das beste Erlebnis unter Windows empfehlen wir die Verwendung von [Windows Subsystem for Linux (WSL)](/docs/windows-wsl). Es bietet eine bessere Leistung und vollständige Kompatibilität mit den Funktionen von OpenCode.
:::

- **Verwendung von Chocolatey**

  ```bash
  choco install opencode
  ```

- **Scoop verwenden**

  ```bash
  scoop install opencode
  ```

- **Mit NPM**

  ```bash
  npm install -g opencode-ai
  ```

- **Mit Mise**

  ```bash
  mise use -g github:anomalyco/opencode
  ```

- **Verwendung von Docker**

  ```bash
  docker run -it --rm ghcr.io/anomalyco/opencode
  ```

Die Unterstützung für die Installation von OpenCode unter Windows mit Bun ist derzeit in Arbeit.

Sie können die Binärdatei auch aus [Releases](https://github.com/anomalyco/opencode/releases) abrufen.

---

## Konfiguration

Mit OpenCode können Sie jeden LLM-Anbieter verwenden, indem Sie dessen API-Schlüssel konfigurieren.

Wenn Sie mit der Verwendung von LLM-Anbietern noch nicht vertraut sind, empfehlen wir die Verwendung von [OpenCode Zen](/docs/zen).
Es handelt sich um eine kuratierte Liste von Modellen, die vom OpenCode Team getestet und verifiziert wurden.

1. Führen Sie den Befehl `/connect` in TUI aus, wählen Sie OpenCode aus und gehen Sie zu [opencode.ai/auth](https://opencode.ai/auth).

   ```txt
   /connect
   ```

2. Melden Sie sich an, geben Sie Ihre Rechnungsdaten ein und kopieren Sie Ihren API-Schlüssel.

3. Fügen Sie Ihren API-Schlüssel ein.

   ```txt
   ┌ API key
   │
   │
   └ enter
   ```

Alternativ können Sie auch einen der anderen Anbieter auswählen. [Mehr erfahren](/docs/providers#directory).

---

## Initialisierung

Nachdem Sie nun einen Anbieter konfiguriert haben, können Sie zu einem Projekt navigieren
an dem Sie arbeiten möchten.

```bash
cd /path/to/project
```

Und führen Sie OpenCode aus.

```bash
opencode
```

Als nächstes initialisieren Sie OpenCode für das Projekt, indem Sie den folgenden Befehl ausführen.

```bash frame="none"
/init
```

Dadurch wird OpenCode dazu veranlasst, Ihr Projekt zu analysieren und eine `AGENTS.md`-Datei im Projektstammverzeichnis zu erstellen.

:::tip
Sie sollten die `AGENTS.md`-Datei Ihres Projekts an Git übergeben.
:::

Dies hilft OpenCode, die Projektstruktur und die Codierungsmuster zu verstehen
die verwendet werden.

---

## Verwendung

Sie können nun OpenCode verwenden, um an Ihrem Projekt zu arbeiten. Fragen Sie ruhig nach
allem!

Wenn Sie mit der Verwendung eines AI-Codierungsagenten noch nicht vertraut sind, finden Sie hier einige Beispiele, die hilfreich sein könnten.

---

### Fragen stellen

Sie können OpenCode bitten, Ihnen die Codebasis zu erklären.

:::tip
Verwenden Sie die Taste `@`, um eine Fuzzy-Suche nach Dateien im Projekt durchzuführen.
:::

```txt frame="none" "@packages/functions/src/api/index.ts"
How is authentication handled in @packages/functions/src/api/index.ts
```

Dies ist hilfreich, wenn es einen Teil der Codebasis gibt, an dem Sie nicht gearbeitet haben.

---

### Funktionen hinzufügen

Sie können OpenCode bitten, Ihrem Projekt neue Funktionen hinzuzufügen. Wir empfehlen jedoch, es zunächst um die Erstellung eines Plans zu bitten.

1. **Erstellen Sie einen Plan**

   OpenCode verfügt über einen _Plan Mode_, der seine Fähigkeit, Änderungen vorzunehmen, deaktiviert
   Schlagen Sie stattdessen vor, wie die Funktion implementiert wird.

   Wechseln Sie mit der **Tabulatortaste** dorthin. In der unteren rechten Ecke sehen Sie einen Indikator dafür.

   ```bash frame="none" title="In den Plan-Modus wechseln"
   <TAB>
   ```

   Beschreiben wir nun, was es tun soll.

   ```txt frame="none"
   When a user deletes a note, we'd like to flag it as deleted in the database.
   Then create a screen that shows all the recently deleted notes.
   From this screen, the user can undelete a note or permanently delete it.
   ```

   Sie möchten OpenCode genügend Details geben, um zu verstehen, was Sie wollen. Es hilft
   mit ihm zu sprechen, als ob Sie mit einem Junior-Entwickler in Ihrem Team sprechen würden.

   :::tip
   Geben Sie OpenCode reichlich Kontext und Beispiele, damit es versteht, was Sie
   wollen.
   :::

2. **Den Plan überarbeiten**

   Sobald Sie einen Plan erhalten, können Sie ihm Feedback geben oder weitere Details hinzufügen.

   ```txt frame="none"
   We'd like to design this new screen using a design I've used before.
   [Image #1] Take a look at this image and use it as a reference.
   ```

   :::tip
   Ziehen Sie Bilder per Drag-and-Drop in das Terminal, um sie zur Eingabeaufforderung hinzuzufügen.
   :::

   OpenCode kann alle von Ihnen bereitgestellten Bilder scannen und zur Eingabeaufforderung hinzufügen. Du kannst
   Ziehen Sie dazu ein Bild per Drag & Drop in das Terminal.

3. **Funktion erstellen**

   Wenn Sie mit dem Plan zufrieden sind, wechseln Sie zurück in den _Build Mode_
   indem Sie erneut die **Tabulatortaste** drücken.

   ```bash frame="none"
   <TAB>
   ```

   Und es bitten, die Änderungen vorzunehmen.

   ```bash frame="none"
   Sounds good! Go ahead and make the changes.
   ```

---

### Änderungen vornehmen

Für einfachere Änderungen können Sie OpenCode bitten, es direkt zu erstellen
ohne den Plan vorher überprüfen zu müssen.

```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts"
We need to add authentication to the /settings route. Take a look at how this is
handled in the /notes route in @packages/functions/src/notes.ts and implement
the same logic in @packages/functions/src/settings.ts
```

Sie möchten sicherstellen, dass Sie viele Details bereitstellen, damit OpenCode die richtigen
Änderungen vornimmt.

---

### Änderungen rückgängig machen

Nehmen wir an, Sie bitten OpenCode, einige Änderungen vorzunehmen.

```txt frame="none" "@packages/functions/src/api/index.ts"
Can you refactor the function in @packages/functions/src/api/index.ts?
```

Aber Sie erkennen, dass es nicht das ist, was Sie wollten. Sie können die Änderungen **rückgängig machen**
mit dem Befehl `/undo`.

```bash frame="none"
/undo
```

OpenCode macht nun die von Ihnen vorgenommenen Änderungen rückgängig und zeigt Ihre ursprüngliche Nachricht
wieder an.

```txt frame="none" "@packages/functions/src/api/index.ts"
Can you refactor the function in @packages/functions/src/api/index.ts?
```

Von hier aus können Sie die Eingabeaufforderung anpassen und OpenCode bitten, es erneut zu versuchen.

:::tip
Sie können `/undo` mehrmals ausführen, um mehrere Änderungen rückgängig zu machen.
:::

Oder Sie **können** die Änderungen mit dem Befehl `/redo` wiederholen.

```bash frame="none"
/redo
```

---

## Teilen

Die Gespräche, die Sie mit OpenCode führen, können [mit Ihrem Team](/docs/share) geteilt werden.

```bash frame="none"
/share
```

Dadurch wird ein Link zur aktuellen Konversation erstellt und in Ihre Zwischenablage kopiert.

:::note
Gespräche werden standardmäßig nicht geteilt.
:::

Hier ist ein [Beispielgespräch](https://opencode.ai/s/4XP1fce5) mit OpenCode.

---

## Anpassung

Und das ist es! Sie sind jetzt ein Profi im Umgang mit OpenCode.

Um es zu Ihrem eigenen zu machen, empfehlen wir [ein Theme auszuwählen](/docs/themes), [Keybinds anzupassen](/docs/keybinds), [Code-Formatter zu konfigurieren](/docs/formatters), [eigene Commands zu erstellen](/docs/commands) oder mit der [OpenCode-Konfiguration](/docs/config) zu experimentieren.
