# Zulassen und Verweigern der Verwendung von Tools

Steuern Sie, welche Tools Copilot CLI verwendet werden können, um unbeabsichtigte Änderungen zu vermeiden.

## Einführung

Copilot CLI verwendet eine Vielzahl von Tools zum Ausführen von Aufgaben für Sie. Sie kann Shellbefehle ausführen, Dateien lesen und schreiben, Ihre Codebasis durchsuchen, Webinhalte abrufen und Aufgaben an spezialisierte Unter-Agents delegieren.

Während schreibgeschützte Vorgänge wie Suchen, Lesen von Dateien und Ausführen schreibgeschützter Shellbefehle automatisch zulässig sind, erfordern Tools, die Ihr System ändern können, z. B. das Ausführen destruktiver Shellbefehle, das Bearbeiten von Dateien oder den Zugriff auf URLs, ihre explizite Genehmigung, bevor Copilot sie verwendet werden können. Dadurch wird die Verwendung der CLI vermieden, was zu Änderungen führt, die Sie nicht beabsichtigt haben, da ein Shellbefehl beispielsweise alles tun kann, was Ihr Benutzerkonto tun kann: Installieren von Paketen, Löschen von Dateien, Pushcode oder Senden von Netzwerkanforderungen.

Sie können Berechtigungen für Tools entweder beim Starten der CLI oder während der interaktiven Sitzung zulassen oder verweigern. Wenn Sie vor dem Starten einer Sitzung keine Berechtigung erteilt haben, wird Sie Copilot CLI jedes Mal zur Berechtigung auffordern, wenn eine potentiell destruktive Aktion erforderlich ist. Sie können das Tool dieses Mal oder für den Rest der Sitzung zulassen.

## Beibehaltene Berechtigungen

Einige Eingabeaufforderungsoptionen speichern Ihre Zustimmung, sodass Sie nicht erneut gefragt werden. Wo Ihre Genehmigung gespeichert ist, hängt davon ab, was Sie genehmigt haben.

Wenn Sie ein Tool für den aktuellen Speicherort zulassen, wird die Genehmigung in `permissions-config.json` in Ihrem Konfigurationsverzeichnis gespeichert. Standardmäßig ist diese Datei `~/.copilot/permissions-config.json`. Sie können z. B. "In diesem Repository nicht erneut fragen" (oder "in diesem Verzeichnis") für einen Shellbefehl, Dateischreibzugriff, MCP-Tool oder Speicheraktualisierung auswählen. Die Freigabe gilt nur für den aktuellen Ort: entweder für das Wurzelverzeichnis des Git-Repositorys oder, wenn Sie sich nicht in einem Repository befinden, für das Arbeitsverzeichnis. Alle Verzeichnisse, auf die Sie Zugriff gewähren, werden in derselben Datei gespeichert.

URL-Genehmigungen funktionieren anders. Wenn Sie eine URL dauerhaft genehmigen, wird ihre Domain zur `allowedUrls`-Liste in Ihrem `settings.json` hinzugefügt. Diese Datei ist standardmäßig `~/.copilot/settings.json`. Diese Genehmigung gilt für alle Ihre Sitzungen, anstatt an einen einzelnen Speicherort gebunden zu sein.

Befehlszeilenoptionen wie `--allow-tool` und `--deny-tool` gelten nur für die aktuelle Sitzung und werden nicht in `permissions-config.json` geschrieben. Ablehnungsregeln haben weiterhin Vorrang vor gespeicherten Genehmigungen.

Ausführliche Informationen dazu, wo gespeicherte Genehmigungen gespeichert werden, wie Speicherorte übereinstimmen, und das vollständige `permissions-config.json` Schema finden Sie unter [GitHub Copilot CLI-Konfigurationsverzeichnis](/de/copilot/reference/copilot-cli-reference/cli-config-dir-reference#permissions-configjson).

## Ebenen von Toolsteuerelementen

Es gibt zwei Steuerungsebenen, die Sie beim Angeben von Toolberechtigungen in Befehlszeilenoptionen verwenden können. Sie können:

* Beschränken Sie die Auswahl der tools, die für das KI-Modell verfügbar sind.
* Berechtigung für bestimmte Tools zulassen oder verweigern.

## Einschränken der Auswahl der verfügbaren Tools für das KI-Modell

Die Optionen `--available-tools` und `--excluded-tools` beschränken die Menge der Werkzeuge, die dem KI-Modell bekannt sind, und dies beeinflusst die Auswahl des Modells bei der Bestimmung, wie es eine Aufgabe abschließen soll.

* `--available-tools` deaktiviert alle anderen Tools als die von Ihnen angegebenen Tools.
* `--excluded-tools` deaktiviert nur die angegebenen Tools.

Wenn Sie beide Optionen zusammen verwenden, wendet die CLI die in der Zulassungsliste angegebene `--available-tools` an und ignoriert die in der Sperrliste angegebene `--excluded-tools`.

Wenn sich ein Tool nicht im verfügbaren Satz befindet, kann das KI-Modell es überhaupt nicht verwenden, auch wenn Sie es mit der `--allow-tool` Option angeben. In einer interaktiven Sitzung, in der Sie keinen verfügbaren Toolsatz angeben, kann das KI-Modell versuchen, ein Tool zu verwenden, nur um verweigert zu werden. Die Optionen `--available-tools` und `--excluded-tools` verhindern, dass Sie auf diese Weise Interaktionen mit dem Modell verschwenden.

### Exemplarischer Anwendungsfall

Sie beginnen eine CLI-Sitzung, um Benchmarking für Ihr Projekt durchzuführen und verhindern dass das KI-Modell überhaupt versucht, die Websuche zu verwenden.

```bash
copilot --excluded-tools='web_fetch, web_search'
```

> \[!NOTE]
> Ausführliche Informationen zur Syntax für diese und andere in diesem Artikel erwähnte Befehlszeilenoptionen finden Sie unter [GitHub Copilot CLI-Befehlsreferenz](/de/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options).

## Zulassen oder Verweigern der Berechtigung für bestimmte Tools

Die `--allow-tool` Optionen `--deny-tool` erlauben oder verweigern die Berechtigung für bestimmte Tools oder Toolunterbefehle.

Der Wert für jede dieser Optionen ist eine durch Trennzeichen getrennte Liste von Tooltypen, die optional genaue Tools und Unterbefehlsmuster angeben können.

Wenn Sie ein Tool mit `--allow-tool`angeben, kann das KI-Modell auswählen, dass dieses Tool verwendet werden soll, ohne Sie zur Berechtigung aufzufordern. Wenn Sie ein Tool mit `--deny-tool`angeben, kann das KI-Modell dieses Tool überhaupt nicht verwenden, auch wenn es die beste Wahl für die Durchführung einer Aufgabe wäre.

Ablehnungsregeln haben immer Vorrang vor Erlaubnisregeln, auch wenn `--allow-all` festgelegt ist oder in `permissions-config.json` eine entsprechende Genehmigung gespeichert wurde.

### Beispiele

| Auswahl                                                                                                                                                                                                       | Auswirkung                                                                            |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| `--allow-tool=shell`                                                                                                                                                                                          | Alle Shellbefehle zulassen.                                                           |
| `--allow-tool='shell(git commit)'`                                                                                                                                                                            | Lassen Sie den `git commit` Befehl zu.                                                |
| `--allow-tool='shell(git:*)' --deny-tool='shell(git push)'`                                                                                                                                                   | Zulassen Sie alle `git` Befehle außer `git push`.                                     |
| `--deny-tool=write`                                                                                                                                                                                           | Alle Dateischreibvorgänge verweigern.                                                 |
| `--allow-tool='read, write(.github/copilot-instructions.md)'`                                                                                                                                                 | Alle Lesevorgänge zulassen und Schreibvorgänge für eine bestimmte Datei zulassen.     |
| `--allow-tool='MyMCP(create_issue), MyMCP(delete_issue)'`                                                                                                                                                     | Erlauben Sie die `create_issue`- und `delete_issue`-Werkzeuge vom `MyMCP` MCP-Server. |
| `--available-tools='bash,edit,view,grep,glob' --allow-tool='shell(git:*)' --deny-tool='shell(git push)'`                                                                                                      | Kombinieren Sie beide Steuerungsebenen für eine eingeschränkte CLI-Sitzung.           |
| Copilot kann den Code erkunden, Änderungen vornehmen und diese speichern, hat aber keinen Zugriff auf das Internet, kann keine beliebigen Subagenten ausführen oder Änderungen in den Git-Verlauf übertragen. |                                                                                       |

Ausführliche Informationen zu den unterstützten Tooltypen finden Sie unter [GitHub Copilot CLI-Befehlsreferenz](/de/copilot/reference/copilot-cli-reference/cli-command-reference#tool-permission-patterns).

## Zulässige Optionen

Die folgenden Befehlszeilenoptionen erteilen Copilot CLI die Berechtigung, alle verfügbaren Tools zu verwenden.

> \[!NOTE] Wenn Sie über eine Copilot Business- oder Copilot Enterprise-Lizenz verfügen, können diese Befehle von einem Enterprise-Administrator blockiert werden.

* `--allow-all-tools` — Vollzugriff auf die verfügbaren Tools.

* `--allow-all` oder `--yolo` — Entspricht der Nutzung aller Optionen `--allow-all-tools`, `--allow-all-paths` und `--allow-all-urls` beim Starten der CLI.

  Innerhalb einer interaktiven Sitzung können Sie die `/allow-all` Befehle oder `/yolo` Schrägstriche verwenden, um alle Tools zuzulassen, ohne die Sitzung neu starten zu müssen.

  > \[!NOTE]
  > Es wird dringend empfohlen, diese Optionen nur in einer isolierten Umgebung zu verwenden. Sie sollten niemals einen Alias verwenden, um jedes Mal, wenn Sie Copilot CLI starten, eine dieser Optionen anzuwenden, da dies Copilot die Verwendung eines Tools ohne Ihre ausdrückliche Erlaubnis jedes Mal ermöglichen würde, wenn Sie die CLI verwenden, was zu unbeabsichtigten Folgen führen könnte.

## Zurücksetzen von Berechtigungen

Der `/reset-allowed-tools` Schrägstrichbefehl widerruft alle Berechtigungen, die Sie während der aktuellen interaktiven Sitzung erteilt haben. Dies gilt gleichermaßen für Berechtigungen, die Sie erteilt haben, indem Sie auf Eingabeaufforderungen reagiert haben, und die Verwendung von `/allow-all` oder `/yolo` Schrägstrich-Befehlen.

Mit der Verwendung `/reset-allowed-tools` werden die Berechtigungen auf die Standardeinstellung oder auf den Zustand zurückgesetzt, der von allen Befehlszeilenoptionen definiert wird, die Sie beim Starten Copilot CLIverwendet haben. Außerdem werden gespeicherte Toolgenehmigungen für den aktuellen Speicherort gelöscht `permissions-config.json`. Wenn Sie beispielsweise eine Copilot CLI interaktive Sitzung mit der Option `--allow-tool='shell(git:*)'`starten und dann weitere Berechtigungen während der Sitzung zulassen und verweigern, indem Sie auf Eingabeaufforderungen antworten, wenn Sie dann den `/reset-allowed-tools` Befehl verwenden, kehren die Berechtigungen der CLI in den ursprünglichen `--allow-tool='shell(git:*)'` Zustand zurück, ohne dass andere Berechtigungen zulässig oder verweigert wurden. Wenn Sie weiterhin in der Sitzung arbeiten, werden Sie erneut aufgefordert, falls Copilot zusätzliche Berechtigungen benötigt.

Um gespeicherte Genehmigungen für einen anderen Speicherort zu entfernen, bearbeiten oder löschen Sie den entsprechenden Speicherorteintrag in `permissions-config.json`. Weitere Informationen findest du unter [GitHub Copilot CLI-Konfigurationsverzeichnis](/de/copilot/reference/copilot-cli-reference/cli-config-dir-reference#permissions-configjson).

## Weiterführende Lektüre

* [Bewährte Methoden für GitHub Copilot CLI](/de/copilot/how-tos/copilot-cli/cli-best-practices#configure-allowed-tools)
* [GitHub Copilot CLI-Befehlsreferenz](/de/copilot/reference/copilot-cli-reference/cli-command-reference)
* [GitHub Copilot CLI-Konfigurationsverzeichnis](/de/copilot/reference/copilot-cli-reference/cli-config-dir-reference#permissions-configjson)