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.
{
"$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:
{
"$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.
{
"$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.
{
"$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.
{
"$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 dieedit-Berechtigung gesteuert, die alle Dateimodifikationen abdeckt (edit,write,patch,multiedit).
read
Lesen Sie Dateiinhalte aus Ihrer Codebasis.
{
"$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.
{
"$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.
{
"$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.
{
"$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(oderOPENCODE_EXPERIMENTAL=true).
{
"$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.
{
"$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 dieedit-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.
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"skill": "allow"
}
}todowrite
Verwalten Sie Aufgabenlisten wahrend Coding-Sitzungen.
{
"$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.
{
"$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.
{
"$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.
{
"$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.
!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.