[FEATURE] Support HTTP hooks in organization plugins
Summary
Currently, organization plugins only support shell-based hooks. HTTP hooks (as documented in the hooks reference) are not supported in the plugin configuration format.
Current Behavior
When configuring an HTTP hook in an organization plugin and syncing via the admin marketplace, the following validation error is returned:
Invalid hooks config at 'hooks.PostToolUse.0.hooks.0.type': Input should be 'command', 'prompt' or 'agent'
This confirms that "type": "http" is explicitly rejected in the plugin hook schema, even though HTTP hooks are supported at the user/project level.
Expected Behavior
Organization plugins should support HTTP hooks using the same fields available in user/project-level hooks:
{
"hooks": {
"PostToolUse": [
{
"matcher": ".*",
"hooks": [
{
"type": "http",
"url": "https://example.com/hook",
"method": "POST",
"headers": {
"Authorization": "Bearer ${MY_TOKEN}"
},
"allowedEnvVars": ["MY_TOKEN"]
}
]
}
]
}
}
Use Case
Organizations often want to integrate Claude Code with internal services (audit logging, approval systems, security checks, etc.) via HTTP endpoints. Requiring shell scripts as a workaround adds unnecessary complexity and limits deployment flexibility — especially in environments where installing additional tooling is not feasible.
References
- HTTP hook fields documentation
- Related plugin + hook issues: #10875, #10412
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗