OpenCode Schnellstart: Installieren, konfigurieren und verwenden Sie den Terminal AI-Coding-Agenten

Wie Sie OpenCode installieren, konfigurieren und verwenden können

Inhaltsverzeichnis

OpenCode ist ein quelloffener AI-Codierung-Agent, den Sie im Terminal (TUI + CLI) ausführen können, mit optionalen Desktop- und IDE-Oberflächen. Dies ist der OpenCode Quickstart: installieren, überprüfen, einen Modell/Anbieter verbinden und echte Workflows (CLI + API) ausführen.

Versionshinweis: OpenCode wird schnell weiterentwickelt. Die hier genannten „latest“-Befehle sind stabil, aber Ausgaben und Standardwerte können sich ändern – prüfen Sie immer die offiziellen CLI-Dokumentationen und den Changelog (siehe unten).

Dieser Artikel ist Teil von AI Developer Tools: The Complete Guide to AI-Powered Development.

Was OpenCode ist (und wo es passt)

OpenCode ist für terminalerste, agentenbasierte Codierung konzipiert, bleibt aber flexibel in Bezug auf Anbieter/Modelle. In der Praxis ist es eine Workflow-Schicht, die folgendes ermöglichen kann:

  • ein Terminal-UI starten, wenn Sie opencode ausführen
  • nichtinteraktive „One-Shot“-Prompts über opencode run ausführen (Skripte/Automatisierung)
  • einen headless HTTP-Server über opencode serve ausführen (und eine Web-Oberfläche über opencode web)
  • programmatisch über das offizielle JS/TS-SDK @opencode-ai/sdk gesteuert werden

opencode mit selbstgehostetem qwen3.5 27b LLM

Wenn Sie einen /ai-devtools/-Cluster erstellen, ist OpenCode ein starker Kandidat für einen Untercluster, da es sich natürlicherweise in folgende Bereiche ausdehnt:

  • CLI-Vertiefung
  • Verhalten und Kosten von Modellen/Anbietern (LLM-Vergleich innerhalb von OpenCode)
  • Konfiguration & Agenten
  • Integrationen (GitHub/GitLab/Copilot)
  • Cheat-Sheet

Voraussetzungen

Sie benötigen:

  • Ein modernes Terminal-Emulator (wichtig für die TUI-Erfahrung).
  • Zugriff auf mindestens ein Modell/Anbieter (API-Schlüssel oder Abonnement-Autorisierung, je nach Anbieter). Lokale Optionen wie Ollama oder llama.cpp funktionieren ohne API-Schlüssel, wenn Sie einen kompatiblen Server lokal ausführen.

OpenCode installieren (Kopieren und Einfügen)

Offizieller Installations-Skript (Linux/macOS/WSL):

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

Optionen für Paketmanager (offizielle Beispiele):

# Node.js globale Installation
npm install -g opencode-ai

# Homebrew (von OpenCode empfohlen für die aktuellsten Releases)
brew install anomalyco/tap/opencode

# Arch Linux (stabil)
sudo pacman -S opencode

# Arch Linux (neueste aus AUR)
paru -S opencode-bin

Windows Hinweise (die offizielle Empfehlung ist in der Regel WSL für die beste Kompatibilität). Alternativen sind Scoop/Chocolatey oder npm.

# Chocolatey (Windows)
choco install opencode

# Scoop (Windows)
scoop install opencode

Docker (nützlich für einen schnellen Test):

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

Installation überprüfen

opencode --version
opencode --help

Erwartete Ausgabestruktur (variiert je nach Version):

# Beispiel:
# <druckt eine Versionsnummer, z. B. vX.Y.Z>
# <druckt Hilfe mit verfügbaren Befehlen/Unterbefehlen>

Einen Anbieter verbinden (zwei praktische Wege)

Weg A: TUI /connect (interaktiv)

Starten Sie OpenCode:

opencode

Dann führen Sie aus:

/connect

Folgen Sie den UI-Schritten, um einen Anbieter auszuwählen und sich anzumelden (einige Flows öffnen einen Browser/Device-Login).

Weg B: CLI opencode auth login (Anbieter-Schlüssel)

OpenCode unterstützt die Konfiguration von Anbietern über:

opencode auth login

Hinweise:

  • Die Anmeldeinformationen werden an ~/.local/share/opencode/auth.json gespeichert.
  • OpenCode kann auch Schlüssel aus Umgebungsvariablen oder einer .env-Datei in Ihrem Projekt laden.

Lokale LLM-Hosting (Ollama, llama.cpp)

OpenCode funktioniert mit jeder OpenAI-kompatiblen API. Für lokale Entwicklung verwenden viele Nutzer Ollama und richten OpenCode darauf ein. Ich hatte kürzlich sehr gute Erfahrungen mit der Konfiguration und dem Laufen von OpenCode mit llama.cpp – llama-server stellt OpenAI-kompatible Endpunkte bereit, sodass Sie GGUF-Modelle mit demselben Workflow verwenden können. Wenn Sie eine feine Kontrolle über Speicher und Laufzeit bevorzugen oder eine leichtere Stack ohne Python (Hinweis: Ollama ist in Go implementiert), ist llama.cpp wertvoll zu testen. Ich habe wirklich genossen die Möglichkeit, abgeladene Schichten zu konfigurieren, die Benutzerfreundlichkeit der Modelle im GGUF-Format und die deutlich besser und schneller implementierte Kompatibilität mit neuen Modellen wie Qwen3.5.

Ein Projekt richtig starten (empfohlener erster Lauf)

Von Ihrem Repository aus:

cd /pfad/zu/ihrem/repo
opencode

Dann initialisieren Sie:

/init

Dies analysiert Ihr Projekt und erstellt eine Datei AGENTS.md in der Projektwurzel. Es ist in der Regel sinnvoll, diese Datei zu committen, damit OpenCode (und Kollegen) konsistenten Projektkontext teilen.

Kern CLI-Workflows (Beispiele zum Kopieren und Einfügen)

OpenCode unterstützt nichtinteraktive Ausführungen:

opencode run "Erklären Sie, wie Closures in JavaScript funktionieren"

Workflow: Code generieren (CLI)

Ziel: eine kleine, testbare Funktion mit minimaler Kontext erstellen.

opencode run "Schreiben Sie eine Go-Funktion ParsePort(envVar string, defaultPort int) (int, error). Sie sollte die Umgebungsvariable lesen, eine ganze Zahl parsen, 1-65535 validieren und defaultPort zurückgeben, wenn leer. Fügen Sie 3 tabellenbasierte Tests hinzu."

Erwartete Ausgabe:

  • Eine Erklärung plus Codeblöcke (Funktion + Tests). Der genaue Code variiert je nach Modell/Anbieter und Prompt.

Workflow: eine Datei sicher umschreiben (CLI + Plan-Agent)

Ziel: durch die Verwendung eines restriktiveren Agenten vermeiden, versehentlich Änderungen vorzunehmen.

opencode run --agent plan --file ./src/auth.ts \
  "Refaktorieren Sie diese Datei, um die Komplexität zu reduzieren. Ausgabe: (1) ein kurzer Plan, (2) ein einheitlicher Diff-Patch, (3) Risiken/Edge-Cases, die getestet werden sollten. Führen Sie keine Befehle aus."

Erwartete Ausgabe:

  • Ein Planabschnitt + ein diff --git ...-Patchblock + eine Test-Checkliste.
  • Inhalt variiert. Falls kein Diff generiert wird, erneut fragen: „Nur einen einheitlichen Diff zurückgeben“ oder „Verwenden Sie diff --git-Format.“

Workflow: Fragen zum Repository stellen (CLI)

Ziel: Implementierungsdetails schnell lokalisieren.

opencode run --agent explore \
  "In diesem Repository, wo wird die Authentifizierung für API-Anfragen validiert? Listen Sie wahrscheinliche Dateien auf und erklären Sie den Ablauf. Wenn Sie sich unsicher sind, sagen Sie, was Sie geprüft haben."

Erwartete Ausgabe:

  • Eine kurze Karte der Dateipfade + Beschreibung des Ablaufs.
  • Die Ausgabe hängt von der Größe des Repositorys und den Kontextwerkzeugen des Modells/Anbieters ab.

Workflow: wiederholte CLI-Ausführungen beschleunigen mit einem persistenten Server

Wenn Sie Skripte erstellen oder mehrere opencode run-Aufrufe durchführen, können Sie einen headless Server einmalig starten:

Terminal 1:

opencode serve --port 4096 --hostname 127.0.0.1

Terminal 2:

opencode run --attach http://localhost:4096 "Zusammenfassen Sie die Struktur des Repositorys und die Haupteintrittspunkte."
opencode run --attach http://localhost:4096 "Vorschlagen Sie nun 3 hochimpactvolle Refaktorisierungen und warum."

Erwartete Ausgabe:

  • Dieselbe wie bei opencode run, aber normalerweise mit weniger Wiederholungsaufwand beim Start.

Programmatische Nutzung (offizielles JS/TS-SDK)

OpenCode stellt einen HTTP-Server (OpenAPI) bereit und bietet einen typsicheren JS/TS-Client.

Installieren Sie:

npm install @opencode-ai/sdk

Beispiel: Server + Client starten und dann einen Prompt ausgeben

Erstellen Sie scripts/opencode-sdk-demo.mjs:

import { createOpencode } from "@opencode-ai/sdk";

const opencode = await createOpencode({
  hostname: "127.0.0.1",
  port: 4096,
  config: {
    // Das Modellformat ist Anbieter/Modell (Beispiel nur)
    // model: "anthropic/claude-3-5-sonnet-20241022",
  },
});

console.log(`Server läuft unter: ${opencode.server.url}`);

// Grundlegende Gesundheits-/Versionsprüfung
const health = await opencode.client.global.health();
console.log("Gesund:", health.data.healthy, "Version:", health.data.version);

// Sitzung erstellen und Prompt ausgeben
const session = await opencode.client.session.create({ body: { title: "SDK Quickstart Demo" } });

const result = await opencode.client.session.prompt({
  path: { id: session.data.id },
  body: {
    parts: [{ type: "text", text: "Erstellen Sie einen kleinen README-Abschnitt, der dieses Repository beschreibt." }],
  },
});

console.log(result.data);

// Server schließen, wenn fertig
opencode.server.close();

Ausführen:

node scripts/opencode-sdk-demo.mjs

Erwartete Ausgabestruktur:

  • „Server läuft unter …“
  • Eine Gesundheitsantwort, die eine Versionsnummer enthält
  • Ein Objekt mit der Antwort der Sitzungsprompt (genaue Struktur hängt von responseStyle und SDK-Version ab)

Minimaler OpenCode-Config, den Sie kopieren können

OpenCode unterstützt JSON und JSONC-Konfiguration. Dies ist ein vernünftiger Ausgangspunkt für eine projektlokale Konfiguration.

Erstellen Sie opencode.jsonc in der Wurzel Ihres Repositorys:

{
  "$schema": "https://opencode.ai/config.json",

  // Wählen Sie ein Standardmodell (Anbieter/Modell). Halten Sie dies mit dem, was `opencode models` anzeigt, synchron.
  "model": "provider/model",

  // Optional: ein günstigerer „kleiner Modell“ für leichte Aufgaben (Titel usw.)
  "small_model": "provider/small-model",

  // Optional: OpenCode-Server-Standardwerte (wird von serve/web verwendet)
  "server": {
    "port": 4096,
    "hostname": "127.0.0.1"
  },

  // Optionaler Sicherheitsschutz: Bestätigung vor Änderungen/Befehlen erfordern
  "permission": {
    "edit": "ask",
    "bash": "ask"
  }
}

Kurzes Cheat-Sheet (Schnellreferenz)

Befehle, die Sie täglich verwenden werden

opencode                       # TUI starten
opencode run "..."             # nichtinteraktive Ausführung (Automatisierung)
opencode run --file path "..." # Dateien an Prompt anhängen
opencode models --refresh      # Modellliste aktualisieren
opencode auth login            # Anbieter-Anmeldeinformationen konfigurieren
opencode serve                 # headless HTTP-Server (OpenAPI)
opencode web                   # headless Server + Web-Oberfläche
opencode session list          # Sitzungen auflisten
opencode stats                 # Token/Kosten-Statistiken

TUI-Befehle, die sich lohnen, zu merken

/connect   # Anbieter verbinden
/init      # Repository analysieren, AGENTS.md generieren
/share     # Sitzung teilen (wenn aktiviert)
/undo      # Änderung rückgängig machen
/redo      # Änderung wiederholen
/help      # Hilfe/Verknüpfungen

Konzept des Standard-„Leader“-Tastens (TUI)

OpenCode verwendet einen konfigurierbaren „Leader“-Taste (häufig ctrl+x) um Terminal-Konflikte zu vermeiden. Viele Tastenkombinationen sind „Leader + Taste“.

Einseitiges druckfähiges OpenCode-Cheat-Sheet-Tabellenblatt

Diese Version ist absichtlich dicht und „druckfreundlich“. (Sie können sie später in eine dedizierte /ai-devtools/opencode/cheatsheet/-Seite einfügen.)

Aufgabe Befehl / Tastenkombination Hinweise
TUI starten opencode Standardverhalten ist das Starten der Terminal-Oberfläche
Einmaligen Prompt ausführen opencode run "..." Nichtinteraktiver Modus für Skripte/Automatisierung
Dateien an Prompt anhängen opencode run --file path/to/file "..." Verwenden Sie mehrere --file-Flags für mehrere Dateien
Modell für eine Ausführung wählen opencode run --model provider/model "..." Modellstrings sind provider/model
Agent wählen opencode run --agent plan "..." Plan ist für sicherere „keine Änderungen“-Arbeit (berechtigungsbegrenzt)
Modelle auflisten opencode models [provider] Verwenden Sie --refresh, um die zwischengespeicherte Liste zu aktualisieren
Anbieter-Anmeldeinformationen konfigurieren opencode auth login Speichert Anmeldeinformationen in ~/.local/share/opencode/auth.json
Authentifizierte Anbieter auflisten opencode auth list / opencode auth ls Bestätigt, was OpenCode sieht
Headless-Server starten opencode serve --port 4096 --hostname 127.0.0.1 OpenAPI-Spezifikation unter http://host:port/doc
Ausführungen an Server anhängen opencode run --attach http://localhost:4096 "..." Nützlich, um wiederholte kalte Starts zu vermeiden
Basic Auth aktivieren OPENCODE_SERVER_PASSWORD=... opencode serve Standardnutzername ist opencode, es sei denn, er wird überschrieben
Web-Oberflächenmodus opencode web Startet Server + öffnet Browser
Sitzung exportieren opencode export [sessionID] Nützlich für Archivierung oder Kontextfreigabe
Sitzung importieren opencode import session.json Kann auch von einer Freigabe-URL importieren
Globale CLI-Flags ansehen opencode --help / opencode --version --print-logs + --log-level für Debugging
TUI-„Leader“-Tastenkonzept Standard-„Leader“-Taste oft ctrl+x In tui.json anpassbar

Quellen (offiziell zuerst)

Offiziell:

Autoritäre Integration Referenz:

Anerkannte Vergleiche/Tutorials: