Deutsch
Dokumentation
Werkzeuge

Werkzeuge

Verwalten Sie die Werkzeuge, die ein LLM verwenden kann.

Werkzeuge ermoglichen es dem LLM, Aktionen in Ihrer Codebasis durchzufuhren. OpenCode wird mit einer Reihe integrierter Werkzeuge geliefert, aber Sie konnen es mit benutzerdefinierten Werkzeugen oder MCP-Servern erweitern.

Standardmassig sind alle Werkzeuge aktiviert und benotigen keine Berechtigung zur Ausfuhrung. Sie konnen das Werkzeugverhalten uber Berechtigungen steuern.


Konfiguration

Verwenden Sie das permission-Feld, um das Werkzeugverhalten zu steuern. Sie konnen jedes Werkzeug erlauben, verweigern oder eine Genehmigung anfordern.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "edit": "deny",
    "bash": "ask",
    "webfetch": "allow"
  }
}

Sie konnen auch Platzhalter verwenden, um mehrere Werkzeuge gleichzeitig zu steuern. Zum Beispiel, um eine Genehmigung fur alle Werkzeuge eines MCP-Servers anzufordern:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "mymcp_*": "ask"
  }
}

Erfahren Sie mehr uber die Konfiguration von Berechtigungen.


Integrierte Werkzeuge

Hier sind alle in OpenCode verfugbaren integrierten Werkzeuge.


bash

Fuhren Sie Shell-Befehle in Ihrer Projektumgebung aus.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "bash": "allow"
  }
}

Dieses Werkzeug ermoglicht es dem LLM, Terminalbefehle wie npm install, git status oder andere Shell-Befehle auszufuhren.


edit

Andern Sie vorhandene Dateien mit exakten Zeichenkettenersetzungen.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "edit": "allow"
  }
}

Dieses Werkzeug fuhrt prazise Bearbeitungen an Dateien durch, indem es exakte Textubereinstimmungen ersetzt. Es ist die primare Methode, mit der das LLM Code andert.


write

Erstellen Sie neue Dateien oder uberschreiben Sie vorhandene.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "edit": "allow"
  }
}

Verwenden Sie dies, um dem LLM das Erstellen neuer Dateien zu ermoglichen. Es uberschreibt vorhandene Dateien, wenn sie bereits existieren.

Hinweis: Das write-Werkzeug wird durch die edit-Berechtigung gesteuert, die alle Dateimodifikationen abdeckt (edit, write, patch, multiedit).


read

Lesen Sie Dateiinhalte aus Ihrer Codebasis.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "read": "allow"
  }
}

Dieses Werkzeug liest Dateien und gibt deren Inhalt zuruck. Es unterstutzt das Lesen bestimmter Zeilenbereiche fur grosse Dateien.


grep

Durchsuchen Sie Dateiinhalte mit regularen Ausdrucken.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "grep": "allow"
  }
}

Schnelle Inhaltssuche in Ihrer gesamten Codebasis. Unterstutzt vollstandige Regex-Syntax und Dateimusterfilterung.


glob

Finden Sie Dateien durch Musterabgleich.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "glob": "allow"
  }
}

Suchen Sie nach Dateien mit Glob-Mustern wie **/*.js oder src/**/*.ts. Gibt ubereinstimmende Dateipfade sortiert nach Anderungszeit zuruck.


list

Listen Sie Dateien und Verzeichnisse in einem bestimmten Pfad auf.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "list": "allow"
  }
}

Dieses Werkzeug listet Verzeichnisinhalte auf. Es akzeptiert Glob-Muster zum Filtern der Ergebnisse.


lsp (experimentell)

Interagieren Sie mit Ihren konfigurierten LSP-Servern, um Code-Intelligenz-Funktionen wie Definitionen, Referenzen, Hover-Informationen und Aufrufhierarchie zu erhalten.

Hinweis: Dieses Werkzeug ist nur verfugbar, wenn OPENCODE_EXPERIMENTAL_LSP_TOOL=true (oder OPENCODE_EXPERIMENTAL=true).

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "lsp": "allow"
  }
}

Unterstutzte Operationen umfassen goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls und outgoingCalls.

Um zu konfigurieren, welche LSP-Server fur Ihr Projekt verfugbar sind, siehe LSP-Server.


patch

Wenden Sie Patches auf Dateien an.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "edit": "allow"
  }
}

Dieses Werkzeug wendet Patch-Dateien auf Ihre Codebasis an. Nutzlich zum Anwenden von Diffs und Patches aus verschiedenen Quellen.

Hinweis: Das patch-Werkzeug wird durch die edit-Berechtigung gesteuert, die alle Dateimodifikationen abdeckt (edit, write, patch, multiedit).


skill

Laden Sie eine Fahigkeit (eine SKILL.md-Datei) und geben Sie deren Inhalt in der Konversation zuruck.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "skill": "allow"
  }
}

todowrite

Verwalten Sie Aufgabenlisten wahrend Coding-Sitzungen.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "todowrite": "allow"
  }
}

Erstellt und aktualisiert Aufgabenlisten, um den Fortschritt bei komplexen Operationen zu verfolgen. Das LLM verwendet dies, um mehrstufige Aufgaben zu organisieren.

Hinweis: Dieses Werkzeug ist standardmassig fur Subagenten deaktiviert, aber Sie konnen es manuell aktivieren. Erfahren Sie mehr


todoread

Lesen Sie vorhandene Aufgabenlisten.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "todoread": "allow"
  }
}

Liest den aktuellen Aufgabenlistenstatus. Wird vom LLM verwendet, um zu verfolgen, welche Aufgaben ausstehend oder abgeschlossen sind.

Hinweis: Dieses Werkzeug ist standardmassig fur Subagenten deaktiviert, aber Sie konnen es manuell aktivieren. Erfahren Sie mehr


webfetch

Rufen Sie Webinhalte ab.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "webfetch": "allow"
  }
}

Ermoglicht dem LLM, Webseiten abzurufen und zu lesen. Nutzlich zum Nachschlagen von Dokumentation oder Recherchieren von Online-Ressourcen.


question

Stellen Sie dem Benutzer wahrend der Ausfuhrung Fragen.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "question": "allow"
  }
}

Dieses Werkzeug ermoglicht es dem LLM, dem Benutzer wahrend einer Aufgabe Fragen zu stellen. Es ist nutzlich fur:

  • Sammeln von Benutzerpraferenzen oder Anforderungen
  • Klarung mehrdeutiger Anweisungen
  • Einholen von Entscheidungen uber Implementierungsoptionen
  • Anbieten von Auswahlmoglichkeiten uber die Richtung

Jede Frage enthalt eine Uberschrift, den Fragetext und eine Liste von Optionen. Benutzer konnen aus den angebotenen Optionen wahlen oder eine benutzerdefinierte Antwort eingeben. Bei mehreren Fragen konnen Benutzer zwischen ihnen navigieren, bevor sie alle Antworten absenden.


Benutzerdefinierte Werkzeuge

Mit benutzerdefinierten Werkzeugen konnen Sie Ihre eigenen Funktionen definieren, die das LLM aufrufen kann. Diese werden in Ihrer Konfigurationsdatei definiert und konnen beliebigen Code ausfuhren.

Erfahren Sie mehr uber das Erstellen benutzerdefinierter Werkzeuge.


MCP-Server

MCP (Model Context Protocol)-Server ermoglichen die Integration externer Werkzeuge und Dienste. Dies umfasst Datenbankzugriff, API-Integrationen und Drittanbieterdienste.

Erfahren Sie mehr uber die Konfiguration von MCP-Servern.


Interna

Intern verwenden Werkzeuge wie grep, glob und list ripgrep (opens in a new tab) unter der Haube. Standardmassig respektiert ripgrep .gitignore-Muster, was bedeutet, dass Dateien und Verzeichnisse, die in Ihrer .gitignore aufgefuhrt sind, von Suchen und Auflistungen ausgeschlossen werden.


Ignorier-Muster

Um Dateien einzuschliessen, die normalerweise ignoriert wurden, erstellen Sie eine .ignore-Datei in Ihrem Projektstammverzeichnis. Diese Datei kann bestimmte Pfade explizit erlauben.

.ignore
!node_modules/
!dist/
!build/

Zum Beispiel ermoglicht diese .ignore-Datei ripgrep, innerhalb der Verzeichnisse node_modules/, dist/ und build/ zu suchen, auch wenn sie in .gitignore aufgefuhrt sind.