OpenCode-Schnellstart: Terminal-KI-Coding-Agent installieren, konfigurieren und nutzen

Installation, Konfiguration und Verwendung von OpenCode

Inhaltsverzeichnis

OpenCode ist ein Open-Source-KI-Coding-Agent, den Sie im Terminal (TUI + CLI) ausführen können, mit optionalen Oberflächen für Desktop und IDE. Dies ist der OpenCode-Quickstart: Installation, Verifizierung, Verbindung eines Modells/Anbieters und Ausführung echter Workflows (CLI + API).

Versionshinweis: OpenCode wird schnell aktualisiert. Die „neuesten" Befehle hier sind stabil, aber Ausgabe und Standardwerte können sich ändern – überprüfen Sie immer die offiziellen CLI-Dokumentationen und das Änderungsprotokoll (siehe unten).

Dieser Artikel ist Teil von KI-Entwickler-Tools: Der komplette Leitfaden für KI-gestützte Entwicklung.

Was OpenCode ist (und wo es einzuordnen ist)

OpenCode ist für terminal-first, agentenbasiertes Coding konzipiert und bleibt dabei flexibel hinsichtlich Anbieter und Modell. In der Praxis ist es eine Workflow-Schicht, die Folgendes tun kann:

  • eine Terminal-Oberfläche startet, wenn Sie opencode ausführen
  • nicht-interaktive „one-shot"-Prompts über opencode run ausführt (Skripte/Automatisierung)
  • einen headless HTTP-Server über opencode serve (und eine Weboberfläche über opencode web) bereitstellt
  • programmgesteuert über das offizielle JS/TS SDK @opencode-ai/sdk kontrolliert werden kann

Wenn Sie es mit einem anderen Open-Source-Agenten vergleichen möchten, der Mehrschritt-Pläne in einer sandboxed Umgebung ausführen kann, siehe OpenHands Coding Assistant QuickStart.

Für Anthropics terminal-first-Agent mit der gleichen Geschichte „lokales Modell über HTTP" (Ollama oder llama.cpp, Berechtigungen, Preisgestaltung), siehe Claude Code-Installation und -Konfiguration für Ollama, llama.cpp, Preisgestaltung.

opencode mit selbst gehostetem qwen3.5 27b LLM

Voraussetzungen

Sie benötigen:

  • Einen modernen Terminal-Emulator (wichtig für das TUI-Erlebnis).
  • Zugriff auf mindestens ein Modell/einen Anbieter (API-Schlüssel oder Abonnementauthentifizierung, je nach Anbieter). Lokale Optionen wie Ollama oder llama.cpp funktionieren ohne API-Schlüssel, wenn Sie lokal einen kompatiblen Server betreiben.

OpenCode installieren (Copy-Paste)

Offizielles Installationsskript (Linux/macOS/WSL):

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

Paketmanager-Optionen (offizielle Beispiele):

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

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

# Arch Linux (stabil)
sudo pacman -S opencode

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

Hinweise für Windows (offizielle Anleitung empfiehlt häufig WSL für beste Kompatibilität). Alternativen sind Scoop/Chocolatey oder npm.

# chocoloatey (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 Ausgabeform (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

Führen Sie dann aus:

/connect

Folgen Sie den Schritten in der Benutzeroberfläche, um einen Anbieter auszuwählen und sich zu authentifizieren (einige Abläufe öffnen einen Browser/Geräteeinlog).

Weg B: CLI opencode auth login (Anbieterschlüssel)

OpenCode unterstützt die Konfiguration von Anbietern über:

opencode auth login

Hinweise:

  • Anmeldeinformationen werden in ~/.local/share/opencode/auth.json gespeichert.
  • OpenCode kann Schlüssel auch 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 die lokale Entwicklung betreiben viele Benutzer Ollama und richten OpenCode darauf aus. Ich hatte kürzlich sehr gute Erfahrungen mit der Konfiguration und dem Betrieb 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 feinere Kontrolle über Speicher und Laufzeit bevorzugen oder einen leichteren Stack ohne Python wünschen (Übrigens ist Ollama in Go implementiert), ist llama.cpp einen Versuch wert. Ich habe die Gelegenheit genossen, ausgelagerte Schichten zu konfigurieren, die Benutzerfreundlichkeit der Modelle im GGUF-Format zu nutzen und eine deutlich bessere/schnellere Implementierung der Kompatibilität mit neuen Modellen wie Qwen3.5 festzustellen. Wenn Sie wissen möchten, welche Modelle innerhalb von OpenCode tatsächlich gut abschneiden – bei Codieraufgaben und strukturierten Ausgabe-Genauigkeiten – siehe mein hands-on LLM-Vergleich für OpenCode.

Ein Projekt korrekt starten (empfohlener erster Lauf)

Von Ihrem Repository aus:

cd /path/to/your/repo
opencode

Dann initialisieren:

/init

Dies analysiert Ihr Projekt und erstellt eine AGENTS.md-Datei im Projektstammverzeichnis. Es lohnt sich in der Regel, diese Datei zu committen, damit OpenCode (und Teammitglieder) einen konsistenten Projektkontext haben.

Kern-CLI-Workflows (Copy-Paste-Beispiele)

OpenCode unterstützt nicht-interaktive Ausführungen:

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

Workflow: Code generieren (CLI)

Ziel: Eine kleine, testbare Funktion mit minimalem Kontext generieren.

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

Erwartete Ausgabe:

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

Workflow: Eine Datei sicher refaktorieren (CLI + Plan-Agent)

Ziel: Refaktorierung ohne versehentliche Änderungen durch Verwendung eines restriktiveren Agents.

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 unified diff patch, (3) Risiken/Edge-Cases zum Testen. Führen Sie keine Befehle aus."

Erwartete Ausgabe:

  • Ein Planschnitt + ein diff --git ...-Patch-Block + eine Test-Checkliste.
  • Der Inhalt variiert. Wenn kein Diff erzeugt wird, neu prompten: „Geben Sie nur ein unified diff zurück" oder „Verwenden Sie das Format diff --git."

Workflow: Repository-Fragen stellen (CLI)

Ziel: Implementierungsdetails schnell finden.

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

Erwartete Ausgabe:

  • Eine kurze Karte der Dateipfade + Ablaufbeschreibung.
  • Die Ausgabe hängt von der Repository-Größe und den Kontext-Tools des Modells/Anbieters ab.

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

Wenn Sie Skripte schreiben oder mehrere opencode run-Aufrufe ausführen, können Sie einen headless-Server einmal starten:

Terminal 1:

opencode serve --port 4096 --hostname 127.0.0.1

Terminal 2:

opencode run --attach http://localhost:4096 "Fassen Sie die Repository-Struktur und Haupteintrittspunkte zusammen."
opencode run --attach http://localhost:4096 "Schlagen Sie nun 3 hochwirksame Refaktorierungen vor und begründen Sie sie."

Erwartete Ausgabe:

  • Wie bei opencode run, aber in der Regel mit weniger wiederholtem Start-Overhead.

Programmatische Nutzung (offizielles JS/TS SDK)

OpenCode stellt einen HTTP-Server (OpenAPI) zur Verfügung und bietet einen typensicheren JS/TS-Client.

Installieren:

npm install @opencode-ai/sdk

Beispiel: Server + Client starten, dann prompten

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: {
    // Modellstrings haben das Format provider/model (nur ein Beispiel)
    // model: "anthropic/claude-3-5-sonnet-20241022",
  },
});

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

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

// Eine Sitzung erstellen und prompten
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: "Generieren Sie einen kleinen README-Abschnitt, der dieses Repository beschreibt." }],
  },
});

console.log(result.data);

// Server beim Abschluss schließen
opencode.server.close();

Ausführen:

node scripts/opencode-sdk-demo.mjs

Erwartete Ausgabeform:

  • „Server läuft unter …"
  • Eine Gesundheitsantwort mit einer Versionszeichenkette
  • Ein Sitzungs-Prompt-Antwortobjekt (genaue Struktur hängt von responseStyle und SDK-Version ab)

Minimale OpenCode-Konfiguration zum Kopieren

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

Erstellen Sie opencode.jsonc im Repository-Stammverzeichnis:

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

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

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

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

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

Kurzer Cheat (Schnellreferenz)

Befehle, die Sie täglich verwenden werden

opencode                       # TUI starten
opencode run "..."             # nicht-interaktive 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 + Weboberfläche
opencode session list          # Sitzungen auflisten
opencode stats                 # Token/Kostenstatistiken

TUI-Befehle zum Auswendiglernen

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

Standardkonzept der „Leader-Taste" (TUI)

OpenCode verwendet eine konfigurierbare „Leader"-Taste (häufig ctrl+x), um Terminal-Konflikte zu vermeiden. Viele Verknüpfungen sind „Leader + Taste".

Einseitige, druckbare OpenCode-Cheat-Tabelle

Diese Version ist bewusst dicht und „druckfreundlich". (Sie können sie später in eine dedizierte /ai-devtools/opencode/cheatsheet/-Seite kopieren.)

Aufgabe Befehl / Verknüpfung Hinweise
TUI starten opencode Standardverhalten ist das Starten der Terminal-Oberfläche
One-shot-Prompt ausführen opencode run "..." Nicht-interaktiver Modus für Skripting/Automatisierung
Datei(en) 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 konzipiert (berechtigungseingeschränkt)
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 "..." Hilfreich, um wiederholte kalte Starts zu vermeiden
Basisauthentifizierung aktivieren OPENCODE_SERVER_PASSWORD=... opencode serve Benutzername standardmäßig opencode, es sei denn, überschrieben
Weboberflächenmodus opencode web Startet Server und öffnet Browser
Eine Sitzung exportieren opencode export [sessionID] Nützlich zum Archivieren oder Teilen von Kontext
Eine Sitzung importieren opencode import session.json Kann auch von einer Share-URL importiert werden
Globale CLI-Flags anzeigen opencode --help / opencode --version --print-logs + --log-level zum Debuggen
TUI-Leader-Taste-Konzept Standard-Leader-Taste oft ctrl+x In tui.json anpassbar

Oh My Opencode — OpenCode mit Multi-Agenten-Orchestrierung weiterbringen

Sobald OpenCode läuft, ist der nächste natürliche Schritt Oh My Opencode — ein Community-Plugin, das OpenCode in eine Multi-Agenten-Harness einhüllt. Die Hauptidee: Geben Sie ultrawork (oder ulw) in einer Sitzung ein, und ein Orchestrator (Sisyphus) übernimmt, delegiert Unteraufgaben an spezialisierte Agenten, die parallel laufen, jeweils auf der Modellfamilie, für die ihre Prompts optimiert sind.

Drei Artikel behandeln dies ausführlich:


Quellen (zuerst offiziell)

Offiziell:

Autoritative Integrationsreferenz:

Respektierte Vergleiche/Tutorials:

Abonnieren

Neue Beiträge zu Systemen, Infrastruktur und KI-Engineering.