anthropics / anthropics/claude-agent-sdk-python

bypassPermissions mode does not execute settings.json shell hooks

Offen
#768 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Python
Sterne
8.1k
Forks
1.3k
Ø Merge
2 T. 31 Min.
Gemergte PRs (30 T.)
1

Beschreibung

## Description

When using `permission_mode="bypassPermissions"`, shell hooks configured in `~/.claude/settings.json` are never executed. The PreToolUse hook for AskUserQuestion (configured as a shell command) never fires.

## Steps to Reproduce

1. Configure a PreToolUse hook in `~/.claude/settings.json`:
```json
{
"hooks": {
"PreToolUse": [{
"matcher": "AskUserQuestion",
"hooks": [{"type": "command", "command": "/path/to/hook.sh"}]
}]
}
}
```

2. Run a query that triggers AskUserQuestion:
```python
options = ClaudeAgentOptions(
permission_mode="bypassPermissions",
cli_path="/home/tester/.local/bin/claude",
)
async for msg in query(prompt="Ask my name with AskUserQuestion", options=options):
pass
```

3. The hook script is never called (verified via logs and lack of HTTP calls from the hook).

The same hook fires correctly when running `claude --print --dangerously-skip-permissions -p "..."` directly.

## Expected Behavior

Shell hooks from settings.json should still fire in `bypassPermissions` mode. Permission bypass should skip the interactive permission prompt, not skip all hooks.

## Workaround

Use Python hook callbacks via the `hooks` parameter in `ClaudeAgentOptions` instead of shell hooks in settings.json.

## Environment

- claude-agent-sdk: 0.1.51
- Claude CLI: 2.1.86
- Python: 3.12
- OS: Linux (Docker)

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.