[FEATURE] Add hook event for extended thinking / LLM reasoning blocks

Resolved 💬 5 comments Opened Mar 26, 2026 by avivcarmis-bb Closed May 29, 2026

Feature Request: Thinking Hook Event

Summary

Add a hook event (e.g. LLMResponse or ThinkingBlock) that fires when Claude produces extended thinking content, delivering the reasoning text to hook consumers.

Problem

Currently, the only way to capture LLM reasoning is by reading the session JSONL file and extracting "type": "thinking" blocks. This approach has two fragility points:

  1. Redaction via beta header: When the tengu_quiet_hollow server-side flag is active, the client sends the redact-thinking-2026-02-12 beta header and the API returns empty thinking fields — only the signature remains (see #32810).
  2. Post-hoc extraction: Tools that want reasoning context must poll/tail the JSONL file after the fact rather than receiving it in real time.

Proposed Solution

Expose a ThinkingBlock (or similar) hook event that fires whenever Claude generates a thinking block, with a payload like:

{
  "hook_event_name": "ThinkingBlock",
  "session_id": "...",
  "thinking": "Let me analyze this step by step...",
  "signature": "EoAC..."
}

Alternatively, include thinking content in the existing Stop or SessionEnd hook payloads as an array of reasoning blocks.

Motivation

Third-party tooling (security governance, session replay, audit logging, context recovery) depends on capturing Claude's reasoning. A dedicated hook event would:

  • Eliminate the JSONL-polling workaround
  • Be resilient to redaction changes (tool receives content directly from the hook system, not via the stored transcript)
  • Enable real-time reasoning visibility for monitoring tools

Related

  • #32810 — thinking block content empty in JSONL since server-side flag change
  • #25980 — verbose mode not displaying thinking blocks
  • #33414 — firehose monitoring request

Workaround (until this is implemented)

Set "showThinkingSummaries": true in ~/.claude/settings.json to bypass the redaction condition and restore thinking content in JSONL files.

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗