II.
HookSurface JSON
Structured · livehook-surface:post-tool-use
PostToolUse (canonical) json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "hook-surface:post-tool-use",
"_kind": "HookSurface",
"_file": "channels-hooks/hook-surfaces/canonical/post-tool-use.yaml",
"_cluster": "channels-hooks",
"attributes": {
"eventName": "PostToolUse (canonical)",
"displayName": "PostToolUse (canonical)",
"kind": "canonical",
"direction": "post",
"blocking": false,
"family": "shell-hook",
"payloadSchema": {
"type": "object",
"required": [
"tool_name",
"tool_input",
"tool_response",
"session_id",
"transcript_path"
],
"properties": {
"tool_name": {
"type": "string"
},
"tool_input": {
"type": "object"
},
"tool_response": {
"type": "object",
"description": "Result returned by the tool (success or error)."
},
"session_id": {
"type": "string"
},
"transcript_path": {
"type": "string"
},
"cwd": {
"type": "string"
}
}
},
"description": "Canonical post-tool-use hook. Fires after every tool invocation\ncompletes, providing input and output for telemetry / governance.\n"
},
"outgoingEdges": [],
"incomingEdges": [
{
"from": "agent-core-impl:a5c.core@current",
"to": "hook-surface:post-tool-use",
"kind": "fires_hook",
"attributes": {}
},
{
"from": "agent-core-impl:claude-agent-sdk.core@current",
"to": "hook-surface:post-tool-use",
"kind": "fires_hook",
"attributes": {}
},
{
"from": "agent-core-impl:claude-code.core@1.x",
"to": "hook-surface:post-tool-use",
"kind": "fires_hook",
"attributes": {}
},
{
"from": "agent-runtime-impl:claude-code.runtime@1.x",
"to": "hook-surface:post-tool-use",
"kind": "exposes",
"attributes": {}
},
{
"from": "hook-mapping:post-tool-use-opencode",
"to": "hook-surface:post-tool-use",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-mapping:post-tool-use-gemini",
"to": "hook-surface:post-tool-use",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-mapping:post-tool-use-hermes",
"to": "hook-surface:post-tool-use",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-mapping:post-tool-use-claude-code",
"to": "hook-surface:post-tool-use",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-mapping:post-tool-use-omp",
"to": "hook-surface:post-tool-use",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-mapping:post-tool-use-opencode",
"to": "hook-surface:post-tool-use",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-mapping:post-tool-use-codex",
"to": "hook-surface:post-tool-use",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-mapping:post-tool-use-cursor",
"to": "hook-surface:post-tool-use",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-mapping:tool-after-gemini",
"to": "hook-surface:post-tool-use",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-mapping:tool-after-copilot",
"to": "hook-surface:post-tool-use",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-mapping:tool-result-oh-my-pi",
"to": "hook-surface:post-tool-use",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-mapping:plugin-tool-after-openclaw",
"to": "hook-surface:post-tool-use",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-mapping:post-tool-use-pi",
"to": "hook-surface:post-tool-use",
"kind": "maps_hook",
"attributes": {}
},
{
"from": "hook-surface:claude.post-tool-use-failure",
"to": "hook-surface:post-tool-use",
"kind": "canonicalized_to",
"attributes": {}
},
{
"from": "hook-surface:gemini.post-response",
"to": "hook-surface:post-tool-use",
"kind": "canonicalized_to",
"attributes": {}
},
{
"from": "hook-surface:gemini.tool-call-post",
"to": "hook-surface:post-tool-use",
"kind": "canonicalized_to",
"attributes": {}
},
{
"from": "hook-surface:hermes.on-event",
"to": "hook-surface:post-tool-use",
"kind": "canonicalized_to",
"attributes": {}
},
{
"from": "hook-surface:claude.post-tool-use",
"to": "hook-surface:post-tool-use",
"kind": "canonicalized_to",
"attributes": {}
},
{
"from": "hook-surface:omp.on-event",
"to": "hook-surface:post-tool-use",
"kind": "canonicalized_to",
"attributes": {}
},
{
"from": "hook-surface:openclaw.on-event",
"to": "hook-surface:post-tool-use",
"kind": "canonicalized_to",
"attributes": {}
},
{
"from": "hook-surface:opencode.on-step",
"to": "hook-surface:post-tool-use",
"kind": "canonicalized_to",
"attributes": {}
},
{
"from": "hook-surface:pi.on-event",
"to": "hook-surface:post-tool-use",
"kind": "canonicalized_to",
"attributes": {}
}
]
}