Zum Inhalt springen

Tools

Verwalte, welche Tools ein LLM nutzen darf.

Tools erlauben dem LLM Aktionen in deiner Codebasis. OpenCode bringt eingebaute Tools mit und laesst sich ueber Custom Tools oder MCP-Server erweitern.

Standardmaessig sind alle Tools aktiviert und brauchen keine Freigabe. Das Verhalten steuerst du ueber Berechtigungen.


Konfiguration

Nutze das Feld permission, um Tool-Verhalten zu steuern. Pro Tool kannst du erlauben, verbieten oder eine Rueckfrage verlangen.

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

Mit Wildcards kannst du mehrere Tools auf einmal steuern. Zum Beispiel, um fuer alle Tools eines MCP-Servers eine Freigabe zu verlangen:

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

Mehr dazu, wie du Berechtigungen konfigurierst.


Eingebaut

Hier sind alle in OpenCode verfuegbaren eingebauten Tools.


bash

Fuehrt Shell-Befehle in deiner Projektumgebung aus.

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

Damit kann das LLM Terminal-Befehle wie npm install, git status oder andere Shell-Kommandos ausfuehren.


edit

Bearbeitet bestehende Dateien ueber exakte String-Ersetzungen.

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

Dieses Tool fuehrt praezise Aenderungen per exakter Textsuche aus. Es ist der zentrale Weg, wie das LLM Code aendert.


write

Erstellt neue Dateien oder ueberschreibt bestehende Dateien.

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

Damit erlaubst du dem LLM, neue Dateien anzulegen. Bestehende Dateien werden dabei ueberschrieben.


read

Liest Dateiinhalte aus deiner Codebasis.

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

Dieses Tool liest Dateien und gibt deren Inhalt zurueck. Es unterstuetzt das Lesen spezifischer Zeilenbereiche bei grossen Dateien.


grep

Durchsucht Dateiinhalte mit regulaeren Ausdruecken.

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

Schnelle Inhaltssuche in deiner Codebasis. Unterstuetzt volle Regex-Syntax und Filterung nach Dateimustern.


glob

Findet Dateien per Musterabgleich.

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

Sucht nach Dateien mit Glob-Mustern wie **/*.js oder src/**/*.ts. Gibt passende Dateipfade sortiert nach Aenderungsdatum zurueck.


list

Listet Dateien und Verzeichnisse in einem Pfad auf.

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

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


lsp (experimentell)

Interagiere mit deinen konfigurierten LSP-Servern fuer Code-Intelligence-Features wie Definitionen, Referenzen, Hover-Infos und Call-Hierarchien.

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

Unterstuetzte Operationen sind goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls und outgoingCalls.

Um verfuegbare LSP-Server fuer dein Projekt zu konfigurieren, siehe LSP-Server.


patch

Wendet Patches auf Dateien an.

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

Dieses Tool wendet Patch-Dateien auf deine Codebasis an. Nuetzlich fuer Diffs und Patches aus verschiedenen Quellen.


skill

Laedt einen Skill (eine SKILL.md-Datei) und gibt dessen Inhalt in der Unterhaltung zurueck.

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

todowrite

Verwaltet Todo-Listen waehrend Coding-Sessions.

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 nutzt dies, um mehrstufige Aufgaben zu organisieren.


todoread

Liest existierende Todo-Listen.

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

Liest den aktuellen Status der Todo-Liste. Wird vom LLM genutzt, um offene oder erledigte Aufgaben zu verfolgen.


webfetch

Ruft Webinhalte ab.

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

Erlaubt dem LLM, Webseiten abzurufen und zu lesen. Nuetzlich zum Nachschlagen von Dokumentation oder fuer Online-Recherche.


websearch

Durchsucht das Web nach Informationen.

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

Fuehrt Websuchen mit Exa AI durch, um relevante Informationen online zu finden. Nuetzlich fuer Recherche, aktuelle Ereignisse oder Informationen jenseits des Trainingsdatums.

Kein API-Key erforderlich — das Tool verbindet sich direkt mit dem gehosteten MCP-Service von Exa AI ohne Authentifizierung.


question

Stellt dem Benutzer waehrend der Ausfuehrung Fragen.

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

Dieses Tool erlaubt dem LLM, dem Benutzer waehrend einer Aufgabe Fragen zu stellen. Nuetzlich fuer:

  • Sammeln von Benutzerpraeferenzen oder Anforderungen
  • Klaerung mehrdeutiger Anweisungen
  • Entscheidungen bei Implementierungsoptionen einholen
  • Auswahlmoeglichkeiten fuer das weitere Vorgehen anbieten

Jede Frage enthaelt eine Ueberschrift, den Fragetext und eine Liste von Optionen. Benutzer koennen aus den Optionen waehlen oder eine eigene Antwort eingeben. Bei mehreren Fragen koennen Benutzer zwischen ihnen navigieren, bevor sie alle Antworten absenden.


Benutzerdefinierte Tools

Mit Custom Tools definierst du eigene Funktionen, die das LLM aufrufen kann. Sie werden in der Konfigurationsdatei definiert und koennen beliebigen Code ausfuehren.

Mehr dazu, wie du Custom Tools erstellst.


MCP-Server

MCP-Server (Model Context Protocol) binden externe Tools und Dienste ein. Dazu gehoeren Datenbanken, API-Integrationen und Drittanbieter-Services.

Mehr dazu, wie du MCP-Server konfigurierst.


Interna

Intern verwenden Tools wie grep, glob und list ripgrep. Standardmaessig beachtet ripgrep .gitignore, daher werden dort aufgefuehrte Dateien und Ordner nicht durchsucht.


Ignorier-Muster

Wenn du normalerweise ignorierte Dateien einschliessen willst, lege im Projekt-Root eine .ignore-Datei an. Dort kannst du Pfade explizit erlauben.

.ignore
!node_modules/
!dist/
!build/

Dieses Beispiel erlaubt ripgrep, in node_modules/, dist/ und build/ zu suchen, auch wenn sie in .gitignore stehen.