iiRecord
Agentic AI Atlas · PermissionRequest (Claude Code)
hook-surface:claude.permission-requesta5c.ai
II.
HookSurface JSON

hook-surface:claude.permission-request

Structured · live

PermissionRequest (Claude Code) json

Inspect the normalized record payload exactly as the atlas UI reads it.

File · channels-hooks/hook-surfaces/native/claude-code-extended-hooks.yamlCluster · channels-hooks
Record JSON
{
  "id": "hook-surface:claude.permission-request",
  "_kind": "HookSurface",
  "_file": "channels-hooks/hook-surfaces/native/claude-code-extended-hooks.yaml",
  "_cluster": "channels-hooks",
  "attributes": {
    "eventName": "PermissionRequest (Claude Code)",
    "displayName": "PermissionRequest (Claude Code)",
    "kind": "native",
    "originVendor": "Anthropic",
    "direction": "pre",
    "blocking": true,
    "family": "in-process",
    "payloadSchema": {
      "type": "object",
      "required": [
        "hook_event_name",
        "tool_name",
        "tool_input"
      ],
      "properties": {
        "hook_event_name": {
          "type": "string",
          "const": "PermissionRequest"
        },
        "tool_name": {
          "type": "string"
        },
        "tool_input": {
          "type": "object"
        },
        "permission_suggestions": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "const": "addRules"
              },
              "rules": {
                "type": "array"
              },
              "behavior": {
                "type": "string",
                "enum": [
                  "allow",
                  "deny",
                  "ask"
                ]
              },
              "destination": {
                "type": "string",
                "enum": [
                  "localSettings",
                  "projectSettings"
                ]
              }
            }
          }
        }
      }
    },
    "description": "Fires when the permission dialog is about to be shown to the user.\nSubscribers can short-circuit the dialog by returning a decision\n(allow/deny). Output may also include updatedPermissions to write new\nrules to settings. Distinct from PreToolUse — only fires when the\npermission dialog would appear; PreToolUse fires for every tool call.\n"
  },
  "outgoingEdges": [],
  "incomingEdges": [
    {
      "from": "agent-runtime-impl:claude-code.runtime@1.x",
      "to": "hook-surface:claude.permission-request",
      "kind": "exposes",
      "attributes": {}
    },
    {
      "from": "hook-mapping:claude-permission-request",
      "to": "hook-surface:claude.permission-request",
      "kind": "maps_hook",
      "attributes": {}
    }
  ]
}