@dreamcats/openhooks
v0.1.1
Published
A CLI tool for managing Claude Code hooks
Readme
OpenHooks
A CLI tool for managing Claude Code hooks, similar to how OpenSkills manages skills.
Features
- 🚀 Install hooks from GitHub repositories
- 📁 Install from local directories or single files
- 🌍 Global and local installation support
- 🔗 Symbolic link support for development
- 🎯 Interactive hook selection
- 📋 List installed hooks with metadata
- 🗑️ Remove hooks with confirmation
- 🛠️ Create hook templates
Installation
npm install -g @DreamCats/openhooksUsage
Install hooks from GitHub repository
# Install from a public repository
openhooks install user/repo
# Install from a specific repository with SSH
openhooks install [email protected]:user/repo.git
# Install globally (user-level)
openhooks install user/repo --globalInstall from local directory or file
# Install from a local directory
openhooks install ./my-hooks
# Install a single hook file
openhooks install ./my-hook.sh
# Create symbolic links for development
openhooks install ./my-hooks --symlinkList installed hooks
# List all hooks
openhooks list
# List with detailed information
openhooks list --verboseRemove hooks
# Remove a specific hook
openhooks remove my-hook
# Remove with confirmation bypass
openhooks remove my-hook --force
# Interactive removal
openhooks manageCreate new hooks
# Create a new hook interactively
openhooks create
# Create with a specific name
openhooks create my-new-hook
# Create in global directory
openhooks create my-global-hook --globalHook File Format
Hooks are executable scripts with the following supported extensions:
.sh- Bash scripts.ts- TypeScript (requires tsx).js- JavaScript (Node.js).py- Python scripts
Example Hook
#!/bin/bash
# My custom hook
# Read JSON input from stdin
json_input=$(cat)
# Process the input
prompt=$(echo "$json_input" | grep -o '"prompt":"[^"]*"' | sed 's/"prompt":"\(.*\)"/\1/')
# Your logic here
echo "Processing: $prompt"
# Output modified JSON
echo "$json_input"Directory Structure
Hooks are installed to:
- Global:
~/.claude/hooks/ - Local:
./.claude/hooks/
Subdirectories are preserved during installation:
~/.claude/hooks/
├── simple-hook.sh
├── git/
│ ├── pre-commit.sh
│ └── post-merge.sh
└── build/
└── typecheck.tsDevelopment
# Install dependencies
npm install
# Build the project
npm run build
# Run tests
npm test
# Development mode
npm run devLicense
MIT
