Leitfaden für OpenCode-Befehle
OpenCode-Befehle: Eigene Befehle, Argumente und sichere Wiederverwendung
Die wichtigste Grenze ist klar: Integrierte Slash-Befehle steuern die aktuelle TUI, eigene OpenCode-Befehle machen wiederholbare Prompts zu benannten Arbeitsabläufen. Beginne mit einer Markdown-Datei unter .opencode/commands/, verwende $ARGUMENTS nur für wirklich variable Eingaben und prüfe den erzeugten Prompt, bevor Dateien geändert oder Shell-Befehle ausgeführt werden. Dieser Leitfaden behandelt integrierte Befehle, Markdown- und JSON-Konfiguration, Positionsargumente, Shell-Ausgabe, Dateireferenzen, Berechtigungen und typische Fehler.
- Hauptkeyword
- OpenCode-Befehle
- Dokumentation geprüft
- 19. August 2026
- Lesezeit
- 14 Minuten

Kurzantwort
OpenCode-Befehle haben drei praktische Ebenen
Wähle die kleinste Ebene, die die Aufgabe löst. So wird aus einem Prompt-Kürzel keine unklare Automatisierung.
| Ebene | Funktion | Beispiel |
|---|---|---|
| Integrierter TUI-Befehl | Steuert die aktuelle Sitzung oder eine eingebaute Aktion. | /help, /undo |
| Eigener Befehl | Erweitert einen benannten Prompt aus Markdown oder JSON. | /review mit $ARGUMENTS |
| Shell-Befehl | Läuft im Terminal und ist eine eigene Ausführungsebene. | npm test, git status |
Ein eigener Befehl ersetzt weder die CLI-Installation noch Provider- oder Berechtigungseinstellungen. Bei einem fehlenden opencode hilft der Deployment-Leitfaden; bei Modellproblemen die Provider-Anleitung; für Schreib- und Shell-Grenzen die Berechtigungsanleitung. Namen und Platzhalter sollten mit der offiziellen Commands-Dokumentation und der Ausgabe von /help geprüft werden.
Integrierte Befehle
Slash-Befehle steuern die aktuelle TUI-Sitzung
OpenCode enthält /init, /undo, /redo, /share und /help. Das sind keine Shell-Aliase und keine Einträge für package.json. Gib sie in der OpenCode-Oberfläche ein und lies Ergebnis oder Bestätigung, bevor du fortfährst.
/help ist die beste Prüfung, wenn die Befehlsliste der installierten Version unklar ist. /undo und /redo ersetzen keine Git-Commits. Bei /share sollte vor allem bei privaten Repositories geprüft werden, welche Sitzungsdaten sichtbar werden. Die eingebaute Liste kann sich mit Releases ändern.
Markdown-Beispiel
Beginne mit einem eigenen Projektbefehl
Markdown-Dateien lassen sich in Git prüfen und bleiben nahe am Projekt, das sie verwendet.
- Erstelle
.opencode/commands/review.mdim Projektstamm. - Füge eine kurze Beschreibung und eine Aufgabe mit klarer Grenze hinzu.
- Teste den Befehl in einem kleinen Branch und prüfe Prompt und Diff.
.opencode/commands/review.md
Der Befehl erstellt nur einen Prüfplan und schreibt nicht automatisch.
---
description: Review the current changes
---
Review the current Git changes. Explain risky behavior,
missing tests, and the smallest safe follow-up.
Do not edit files until I approve the plan.Der Dateiname wird zum Befehlsnamen; diese Datei wird mit /review aufgerufen. ~/.config/opencode/commands/ eignet sich für persönliche, projektunabhängige Abläufe. .opencode/commands/ passt für lokale Pfade, Testregeln und Teamkonventionen. Ein klarer Prompt wie „Änderungen prüfen und Plan erstellen“ ist sicherer zu beurteilen als „alles reparieren“.
JSON-Konfiguration
Das command-Objekt für projektnahe Einstellungen
Eigene Befehle können auch im command-Objekt der JSON- oder JSONC-Konfiguration stehen. Verwende dies, wenn ein bestimmter Agent oder ein Modell gewählt werden soll. Fragen zu Pfaden, Schema und Priorität gehören weiterhin in den opencode.jsonc-Leitfaden.
{
"$schema": "https://opencode.ai/config.json",
"command": {
"test-review": {
"template": "Review the latest test output and list the first three fixes.",
"description": "Review test output",
"agent": "plan"
}
}
}| Option | Verwendung | Vor dem Teilen prüfen |
|---|---|---|
template | Prompt, der ausgeführt wird. | Er ist vorhanden und begrenzt die Aufgabe. |
description | Kurze Anzeige beim Entdecken. | Sie beschreibt das Ergebnis. |
agent | Benannten Agent auswählen. | Tools und Rechte passen. |
model | Modell für diesen Ablauf überschreiben. | Die Provider-ID existiert. |
Konfiguration ist kein Geheimnisspeicher. API-Schlüssel und Tokens gehören in den vorgesehenen Credential-Weg. Ein Befehl mit Datei- oder Shell-Kontext verdient dieselbe Prüfung wie ein Skript.
Argumente und Kontext
Variablen nur für echte Unterschiede verwenden
$ARGUMENTS übernimmt die komplette Argumentfolge; $1 und $2 trennen Positionswerte.

---
description: Create a file with supplied values
---
Create a file named $1 in directory $2.
Use this content: $3
Show the proposed path before writing./create-file config.json src "{ \"key\": \"value\" }" liefert drei Werte. Die Vorlage muss erklären, wie sie verwendet werden und welcher Pfad vor dem Schreiben gezeigt wird. Für einen einzigen freien Text ist $ARGUMENTS einfacher.
Mit @src/components/Button.tsx lässt sich eine Datei referenzieren. Mit !`npm test` oder !`git log --oneline -10` kann Shell-Ausgabe in den Prompt gelangen. Da der Befehl im Projektstamm läuft, sollten destruktive oder geheimhaltende Befehle nicht in eine globale Vorlage gelangen.
Argumente sind Eingaben, keine Berechtigungen. Beginne mit einer lesenden Prüfung, genehmige danach eine kleine Änderung und automatisiere erst in einem vertrauenswürdigen Repository.
Sichere Wiederverwendung
Namen, Prompts und Rechte vorhersehbar halten
Ein eigener Befehl mit demselben Namen kann einen integrierten Befehl überschreiben. Vermeide daher help, undo und share, sofern der Austausch nicht ausdrücklich geplant ist. Ein Name wie review-tests ist für andere Entwickler verständlicher.
Prüfe Befehlsdateien wie Code: Prompt-Diff, erzeugte Antwort, referenzierte Dateien und vorgeschlagene Shell-Befehle. Agenten und Modelle sollten mit der Agents-Anleitung abgeglichen werden; bei Skills oder MCP helfen die Skills-Anleitung und die MCP-Anleitung.
| Problem | Ebene | Erste Prüfung |
|---|---|---|
| Slash-Befehl fehlt | Pfad oder Name | Datei, Verzeichnis, Frontmatter und Projektstamm prüfen. |
| Falsches Ergebnis | Prompt oder Argumente | Mit kleinem Beispiel und einem Argument testen. |
| Unsichere Shell-Ausgabe | Shell-Kontext | Befehl manuell und im richtigen Verzeichnis prüfen. |
| Integriertes Verhalten geändert | Namenskonflikt | Befehl umbenennen und /help vergleichen. |
Verifikation
Sechs Prüfungen vor dem Team-Einsatz
- Umfang: Eingabe und Ausgabe in einem Satz festlegen.
- Ort: Projekt- oder globales Verzeichnis wählen und dokumentieren.
- Eingaben: normale, fehlende, quotierte und pfadartige Werte testen.
- Kontext: Datei- und Shell-Kontext vor einer Änderung prüfen.
- Rechte: mit ask oder Lesen beginnen und nur kleine Änderungen erlauben.
- Rollback: im Git festhalten, wie der Befehl deaktiviert oder umbenannt wird.
So lassen sich Fehler zuordnen: fehlender Befehl bedeutet meist Pfadproblem, falsche Antwort Prompt- oder Argumentproblem, verweigerte Änderung Berechtigungsproblem und ein Modellfehler Providerproblem.
FAQ
Fragen zu OpenCode-Befehlen
Wofür werden OpenCode-Befehle verwendet?
Integrierte Befehle steuern die TUI. Eigene Befehle verpacken wiederholbare Prompts für Reviews, Testzusammenfassungen oder Dateivorlagen.
Wo liegt das Verzeichnis für eigene OpenCode-Befehle?
Projektbefehle liegen unter .opencode/commands/, globale Befehle unter ~/.config/opencode/commands/. Der Dateiname wird zum Befehlsnamen.
Wie übergebe ich Argumente?
Nutze $ARGUMENTS für die gesamte Zeichenfolge oder $1, $2 für einzelne Werte. Werte mit Leerzeichen oder JSON sollten quotiert werden.
Warum erscheint ein eigener Befehl nicht?
Prüfe Verzeichnis, Projektstamm, Dateiname, Frontmatter und Namenskonflikte. Danach mit /help und der offiziellen Dokumentation vergleichen.
Offizielle Quellen
Versionsabhängige Details prüfen
Diese Seite wurde am 19. August 2026 mit der offiziellen OpenCode-Dokumentation abgeglichen. Namen und Pfade können sich ändern.
Zusammenfassung
Nutze integrierte Befehle für die TUI, Markdown-Dateien für prüfbare Projektabläufe und JSON für Befehle neben den übrigen Projekteinstellungen. Argumente sollten klar bleiben, Shell-Ausgabe als nicht vertrauenswürdiger Kontext behandelt werden und jeder neue Befehl mit einer kleinen, rückgängig machbaren Aufgabe starten.