Skip to content

Instantly share code, notes, and snippets.

@johnlindquist
Created March 11, 2026 04:40
Show Gist options
  • Select an option

  • Save johnlindquist/58717ae9ac62b4a506b5f5b9f0c039e2 to your computer and use it in GitHub Desktop.

Select an option

Save johnlindquist/58717ae9ac62b4a506b5f5b9f0c039e2 to your computer and use it in GitHub Desktop.

Claude Code → Cursor Hook Schema Mapping

Key differences between Claude Code and Cursor hook formats:

Concept Claude Code Cursor
Event name hook_event_name hook_event_name (same)
Session ID session_id conversation_id
Working dir cwd + CLAUDE_PROJECT_ROOT env workspace_roots[] + CURSOR_PROJECT_DIR env
Tool name tool_name tool_name (same for preToolUse/postToolUse)
Tool input tool_input tool_input (same)
Tool output tool_response (PostToolUse) tool_output (PostToolUse, JSON-stringified)
Prompt text prompt (UserPromptSubmit) Part of beforeSubmitPrompt
Env file CLAUDE_ENV_FILE (append exports) sessionStart returns { env: {...} }
Output: context hookSpecificOutput.additionalContext additional_context (top-level)
Output: permission hookSpecificOutput.permissionDecision permission (top-level)
Matcher String in hooks.json matcher field Object in hooks.json matcher field
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment