SpyBara
Go Premium

agent-sdk/permissions.md 2026-05-04 22:58 UTC to 2026-05-05 23:00 UTC

242 added, 0 removed.

2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19

Berechtigungen konfigurieren

Kontrollieren Sie, wie Ihr Agent Tools mit Berechtigungsmodi, Hooks und deklarativen Allow/Deny-Regeln verwendet.

Das Claude Agent SDK bietet Berechtigungskontrollen zur Verwaltung der Tool-Nutzung durch Claude. Verwenden Sie Berechtigungsmodi und Regeln, um zu definieren, was automatisch zulässig ist, und den canUseTool-Callback, um alles andere zur Laufzeit zu handhaben.

Wie Berechtigungen ausgewertet werden

Wenn Claude ein Tool anfordert, prüft das SDK die Berechtigungen in dieser Reihenfolge:

1

Hooks

Führen Sie Hooks zuerst aus. Ein Hook kann den Aufruf direkt ablehnen oder ihn weitergeben. Ein Hook, der allow zurückgibt, überspringt nicht die Deny- und Ask-Regeln unten; diese werden unabhängig vom Hook-Ergebnis ausgewertet.

2

Deny-Regeln

Prüfen Sie deny-Regeln (aus disallowed_tools und settings.json). Wenn eine Deny-Regel zutrifft, wird das Tool blockiert, auch im bypassPermissions-Modus.

3

Berechtigungsmodus

Wenden Sie den aktiven Berechtigungsmodus an. bypassPermissions genehmigt alles, das diesen Schritt erreicht. acceptEdits genehmigt Dateivorgänge. Andere Modi fallen durch.

4

Allow-Regeln

Prüfen Sie allow-Regeln (aus allowed_tools und settings.json). Wenn eine Regel zutrifft, wird das Tool genehmigt.

5

canUseTool-Callback

Wenn nicht durch eines der oben genannten Verfahren gelöst, rufen Sie Ihren canUseTool-Callback für eine Entscheidung auf. Im dontAsk-Modus wird dieser Schritt übersprungen und das Tool wird abgelehnt.

Diagramm des Berechtigungsauswertungsflusses

Diese Seite konzentriert sich auf Allow- und Deny-Regeln sowie Berechtigungsmodi. Für die anderen Schritte:

Allow- und Deny-Regeln

allowed_tools und disallowed_tools (TypeScript: allowedTools / disallowedTools) fügen Einträge zu den Allow- und Deny-Regellisten im obigen Auswertungsfluss hinzu. Sie steuern, ob ein Tool-Aufruf genehmigt wird, nicht ob das Tool für Claude verfügbar ist.

Option Auswirkung
allowed_tools=["Read", "Grep"] Read und Grep werden automatisch genehmigt. Tools, die hier nicht aufgelistet sind, existieren immer noch und fallen durch zum Berechtigungsmodus und canUseTool.
disallowed_tools=["Bash"] Bash wird immer abgelehnt. Deny-Regeln werden zuerst geprüft und gelten in jedem Berechtigungsmodus, einschließlich bypassPermissions.

Für einen gesperrten Agent kombinieren Sie allowedTools mit permissionMode: "dontAsk". Aufgelistete Tools werden genehmigt; alles andere wird direkt abgelehnt, anstatt zu fragen:

const options = {
  allowedTools: ["Read", "Glob", "Grep"],
  permissionMode: "dontAsk"
};

Sie können Allow-, Deny- und Ask-Regeln auch deklarativ in .claude/settings.json konfigurieren. Diese Regeln werden gelesen, wenn die project-Einstellungsquelle aktiviert ist, was sie für Standard-query()-Optionen ist. Wenn Sie setting_sources (TypeScript: settingSources) explizit setzen, fügen Sie "project" ein, damit sie angewendet werden. Siehe Berechtigungseinstellungen für die Regelsyntax.

Berechtigungsmodi

Berechtigungsmodi bieten globale Kontrolle über die Tool-Nutzung durch Claude. Sie können den Berechtigungsmodus beim Aufrufen von query() setzen oder ihn dynamisch während Streaming-Sitzungen ändern.

Verfügbare Modi

Das SDK unterstützt diese Berechtigungsmodi:

Modus Beschreibung Tool-Verhalten
default Standardberechtigungsverhalten Keine automatischen Genehmigungen; nicht übereinstimmende Tools lösen Ihren canUseTool-Callback aus
dontAsk Ablehnung statt Nachfrage Alles, das nicht von allowed_tools oder Regeln vorab genehmigt ist, wird abgelehnt; canUseTool wird nie aufgerufen
acceptEdits Dateibearbeitungen automatisch akzeptieren Dateibearbeitungen und Dateisystemvorgänge (mkdir, rm, mv usw.) werden automatisch genehmigt
bypassPermissions Alle Berechtigungsprüfungen umgehen Alle Tools werden ohne Berechtigungsaufforderungen ausgeführt (mit Vorsicht verwenden)
plan Planungsmodus Schreibgeschützte Tools werden ausgeführt; Claude analysiert und plant, ohne Ihre Quelldateien zu bearbeiten
auto (nur TypeScript) Modellklassifizierte Genehmigungen Ein Modellklassifizierer genehmigt oder lehnt jeden Tool-Aufruf ab. Siehe Auto-Modus für Verfügbarkeit

Berechtigungsmodus setzen

Sie können den Berechtigungsmodus einmal beim Starten einer Abfrage setzen oder ihn dynamisch ändern, während die Sitzung aktiv ist.

Übergeben Sie permission_mode (Python) oder permissionMode (TypeScript) beim Erstellen einer Abfrage. Dieser Modus gilt für die gesamte Sitzung, es sei denn, er wird dynamisch geändert.

import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions


async def main():
async for message in query(
prompt="Help me refactor this code",
options=ClaudeAgentOptions(
permission_mode="default",  # Set the mode here
),
):
if hasattr(message, "result"):
print(message.result)


asyncio.run(main())

Modusdetails

Accept Edits-Modus (acceptEdits)

Genehmigt automatisch Dateivorgänge, damit Claude Code ohne Aufforderung bearbeiten kann. Andere Tools (wie Bash-Befehle, die keine Dateisystemvorgänge sind) erfordern weiterhin normale Berechtigungen.

Automatisch genehmigte Vorgänge:

  • Dateibearbeitungen (Edit-, Write-Tools)
  • Dateisystembefehle: mkdir, touch, rm, rmdir, mv, cp, sed

Beide gelten nur für Pfade innerhalb des Arbeitsverzeichnisses oder additionalDirectories. Pfade außerhalb dieses Bereichs und Schreibvorgänge auf geschützte Pfade werden weiterhin angefordert.

Verwenden Sie, wenn: Sie Claudes Bearbeitungen vertrauen und schnellere Iteration wünschen, z. B. während der Prototypenerstellung oder beim Arbeiten in einem isolierten Verzeichnis.

Don't Ask-Modus (dontAsk)

Konvertiert jede Berechtigungsaufforderung in eine Ablehnung. Tools, die von allowed_tools, settings.json-Allow-Regeln oder einem Hook vorab genehmigt sind, werden normal ausgeführt. Alles andere wird abgelehnt, ohne canUseTool aufzurufen.

Verwenden Sie, wenn: Sie eine feste, explizite Tool-Oberfläche für einen Headless-Agent wünschen und eine harte Ablehnung gegenüber stiller Abhängigkeit von fehlender canUseTool bevorzugen.

Bypass Permissions-Modus (bypassPermissions)

Genehmigt automatisch alle Tool-Nutzungen ohne Aufforderungen. Hooks werden weiterhin ausgeführt und können Vorgänge bei Bedarf blockieren.

Plan-Modus (plan)

Beschränkt Claude auf schreibgeschützte Tools. Claude kann Dateien lesen und schreibgeschützte Shell-Befehle ausführen, um die Codebasis zu erkunden, bearbeitet aber nicht Ihre Quelldateien. Claude kann AskUserQuestion verwenden, um Anforderungen zu klären, bevor der Plan abgeschlossen wird. Siehe Genehmigungen und Benutzereingaben handhaben für die Behandlung dieser Aufforderungen.

Verwenden Sie, wenn: Sie möchten, dass Claude Änderungen vorschlägt, ohne sie auszuführen, z. B. während der Code-Überprüfung oder wenn Sie Änderungen genehmigen müssen, bevor sie vorgenommen werden.

Verwandte Ressourcen

Für die anderen Schritte im Berechtigungsauswertungsfluss: