一键导入
extension-hooks-events
Hook catalog, lifecycle events, hook scripts, and event-driven automation
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Hook catalog, lifecycle events, hook scripts, and event-driven automation
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Search the web for information using the WebSearch tool
Demonstrates governance blocking when plaintext secrets are detected in tool inputs
A simple demonstration skill that searches the web for information
Demonstration skill that attempts to use a plaintext secret, designed to be blocked by governance hooks
List, message, configure, and restart agents via the systemprompt CLI
View traffic, costs, agent stats, and bot detection via the systemprompt CLI
| name | Extension: Hooks & Events |
| description | Hook catalog, lifecycle events, hook scripts, and event-driven automation |
Hooks are event handlers that fire on system lifecycle events. They enable plugins to react to sessions, tool executions, agent activity, and user interactions.
| Event | Trigger | Use Cases |
|---|---|---|
tracking_session_start | User session begins | Initialize tracking |
tracking_session_end | User session ends | Finalize analytics |
tracking_post_tool_use | Tool executed successfully | Log tool usage |
tracking_post_tool_use_failure | Tool execution failed | Alert on failures |
tracking_subagent_start | Sub-agent spawned | Track agent lifecycle |
tracking_subagent_stop | Sub-agent stopped | Cleanup |
tracking_stop | Application shutdown | Graceful cleanup |
tracking_user_prompt_submit | User submits prompt | Input validation |
The hook catalog (hook_catalog table) stores hook definitions.
CREATE TABLE IF NOT EXISTS hook_catalog (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name TEXT NOT NULL UNIQUE,
description TEXT,
version TEXT NOT NULL DEFAULT '1.0.0',
event TEXT NOT NULL,
matcher TEXT,
command TEXT NOT NULL,
is_async BOOLEAN NOT NULL DEFAULT true,
category TEXT,
tags TEXT[],
enabled BOOLEAN NOT NULL DEFAULT true,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
services/hooks/
tracking_post_tool_use/
my-hook.sh
tracking_session_end/
cleanup.sh
tracking_session_start/
init.sh
tracking_stop/
save-state.sh
tracking_subagent_start/
track-agent.sh
tracking_user_prompt_submit/
validate-input.sh
#!/bin/bash
set -euo pipefail
# Environment variables available:
# $HOOK_EVENT - Event type
# $HOOK_DATA - JSON payload with event details
# $SYSTEMPROMPT_PROFILE - Profile path
| Mode | Behavior | Use Case |
|---|---|---|
Async (is_async: true) | Fire-and-forget | Logging, analytics, notifications |
Blocking (is_async: false) | Waits for completion | Validation, authorization |
Blocking hooks must complete within 5 seconds.
systemprompt core hooks list
HOOK_EVENT=tracking_session_start HOOK_DATA='{"session_id":"test"}' bash services/hooks/tracking_session_start/my-hook.sh
| Rule | Rationale |
|---|---|
| Hook names must be unique | Catalog keyed by name |
Scripts must be executable (chmod +x) | Shell execution requires permission |
Use set -euo pipefail in scripts | Fail fast on errors |
| Prefer async hooks | Blocking hooks slow the pipeline |
| Hook data is JSON | Structured payload via $HOOK_DATA |
| Blocking hooks timeout at 5 seconds | Prevents hung pipelines |