32 lifecycle and event hooks — extend ScorpioX Code with shell scripts triggered at key moments. Session lifecycle, tool execution, agent events, and more.
Shell script at .scorpiox/hooks/session_start/01-notify.sh (or sync-01-validate.sh for blocking)
scorpiox/libsxutil/sx_session.c
#!/bin/bash echo "Session starting: model=$( echo $4 | jq -r .model )" >> /tmp/sx.log
Shell script at .scorpiox/hooks/session_end/
scorpiox/libsxutil/sx_session.c
#!/bin/bash echo "Session $2 ended at $3" >> /tmp/sx.log
Shell script at .scorpiox/hooks/session_clear/
scorpiox/libsxutil/sx_session.c
#!/bin/bash echo "Chat cleared" >> /tmp/sx.log
Shell script at .scorpiox/hooks/user_message/
scorpiox/libsxnet/sx_agent.c
#!/bin/bash echo "User message length: $( echo $4 | jq -r .len )" >> /tmp/sx.log
Shell script at .scorpiox/hooks/agent_run_start/
scorpiox/libsxnet/sx_agent.c
#!/bin/bash echo "Agent started processing" >> /tmp/sx.log
Shell script at .scorpiox/hooks/agent_complete/
scorpiox/libsxnet/sx_agent.c
#!/bin/bash echo "Agent done after $( echo $4 | jq -r .turns ) turns" >> /tmp/sx.log
Shell script at .scorpiox/hooks/subagent_complete/
scorpiox/libsxnet/sx_agent.c
#!/bin/bash echo "Subagent done" >> /tmp/sx.log
Shell script at .scorpiox/hooks/agent_cancelled/
scorpiox/libsxnet/sx_agent.c
#!/bin/bash echo "Cancelled: $( echo $4 | jq -r .reason )" >> /tmp/sx.log
Shell script at .scorpiox/hooks/tool_use/
scorpiox/libsxnet/sx_agent.c
#!/bin/bash echo "Tool: $( echo $4 | jq -r .tool )" >> /tmp/sx.log
Shell script at .scorpiox/hooks/mcp_call/
scorpiox/libsxnet/sx_agent.c
#!/bin/bash echo "MCP: $( echo $4 | jq -r .server )/$( echo $4 | jq -r .tool )" >> /tmp/sx.log
Shell script at .scorpiox/hooks/api_response/
scorpiox/libsxnet/sx_agent.c
#!/bin/bash echo "API: in=$( echo $4 | jq -r .in_tokens ) out=$( echo $4 | jq -r .out_tokens )" >> /tmp/sx.log
Shell script at .scorpiox/hooks/api_error/
scorpiox/libsxnet/sx_agent.c
#!/bin/bash
curl -X POST https://hooks.slack.com/... -d '{"text":"API error: '$( echo $4 | jq -r .error )'"}'
Shell script at .scorpiox/hooks/compact/
scorpiox/libsxutil/sx_session.c
#!/bin/bash echo "Compacted from $( echo $4 | jq -r .from ) to $( echo $4 | jq -r .to ) messages" >> /tmp/sx.log
Shell script at .scorpiox/hooks/hook_failed/
scorpiox/scorpiox-hook.c
#!/bin/bash echo "Hook failed: $( echo $4 | jq -r .hook ) exit=$( echo $4 | jq -r .exit_code )" >> /tmp/sx.log