Download plugins/hookify/hooks/userpromptsubmit.py from SaylorTwift/claude-code: direct link, hf CLI and curl.
- Browser
- Download file 1.54 kB
-
https://huggingface.co/SaylorTwift/claude-code/resolve/main/plugins/hookify/hooks/userpromptsubmit.py
- Command line
-
hf download hf://SaylorTwift/claude-code/plugins/hookify/hooks/userpromptsubmit.py
-
curl -L -o userpromptsubmit.py https://huggingface.co/SaylorTwift/claude-code/resolve/main/plugins/hookify/hooks/userpromptsubmit.py
1.54 kB
| #!/usr/bin/env python3 | |
| """UserPromptSubmit hook executor for hookify plugin. | |
| This script is called by Claude Code when user submits a prompt. | |
| It reads .claude/hookify.*.local.md files and evaluates rules. | |
| """ | |
| import os | |
| import sys | |
| import json | |
| # CRITICAL: Add plugin root to Python path for imports | |
| PLUGIN_ROOT = os.environ.get('CLAUDE_PLUGIN_ROOT') | |
| if PLUGIN_ROOT: | |
| parent_dir = os.path.dirname(PLUGIN_ROOT) | |
| if parent_dir not in sys.path: | |
| sys.path.insert(0, parent_dir) | |
| if PLUGIN_ROOT not in sys.path: | |
| sys.path.insert(0, PLUGIN_ROOT) | |
| try: | |
| from hookify.core.config_loader import load_rules | |
| from hookify.core.rule_engine import RuleEngine | |
| except ImportError as e: | |
| error_msg = {"systemMessage": f"Hookify import error: {e}"} | |
| print(json.dumps(error_msg), file=sys.stdout) | |
| sys.exit(0) | |
| def main(): | |
| """Main entry point for UserPromptSubmit hook.""" | |
| try: | |
| # Read input from stdin | |
| input_data = json.load(sys.stdin) | |
| # Load user prompt rules | |
| rules = load_rules(event='prompt') | |
| # Evaluate rules | |
| engine = RuleEngine() | |
| result = engine.evaluate_rules(rules, input_data) | |
| # Always output JSON (even if empty) | |
| print(json.dumps(result), file=sys.stdout) | |
| except Exception as e: | |
| error_output = { | |
| "systemMessage": f"Hookify error: {str(e)}" | |
| } | |
| print(json.dumps(error_output), file=sys.stdout) | |
| finally: | |
| # ALWAYS exit 0 | |
| sys.exit(0) | |
| if __name__ == '__main__': | |
| main() | |