All hooks now use CLAUDE_MONITOR_URL environment variable to allow configuration for remote deployments. Defaults to http://localhost:8000 for local development. Changes: - All hooks now read CLAUDE_MONITOR_URL from environment - Added README.md with installation instructions for local and remote setups - Includes troubleshooting guide for common issues Usage: export CLAUDE_MONITOR_URL="http://vm-ip:8000" cp -r .claude/hooks/* ~/.claude/hooks/ chmod +x ~/.claude/hooks/*.sh 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
Claude Code Monitor Hooks
These hooks capture Claude Code events and send them to the monitoring backend.
Installation
Local Installation (localhost)
# Copy hooks to Claude Code directory
cp -r .claude/hooks/* ~/.claude/hooks/
# Make hooks executable
chmod +x ~/.claude/hooks/*.sh
The hooks will automatically use http://localhost:8000 as the backend URL.
Remote/VM Installation
For remote installations, set the CLAUDE_MONITOR_URL environment variable:
# Add to your shell profile (~/.bashrc, ~/.zshrc, etc.)
export CLAUDE_MONITOR_URL="http://your-vm-ip:8000"
# Or for a specific domain
export CLAUDE_MONITOR_URL="http://monitor.example.com:8000"
# Then copy and enable hooks
cp -r .claude/hooks/* ~/.claude/hooks/
chmod +x ~/.claude/hooks/*.sh
Docker Deployment with Port 3000
If you're running the monitor with Docker (frontend on port 3000), use:
# For VM with IP 192.168.1.100
export CLAUDE_MONITOR_URL="http://192.168.1.100:8000"
# Or if backend is exposed via nginx on port 3000
export CLAUDE_MONITOR_URL="http://192.168.1.100:3000"
Verification
Test if hooks are working:
# Check if environment variable is set
echo $CLAUDE_MONITOR_URL
# Manually test a hook
echo '{"session_id":"test","timestamp":1234567890}' | ~/.claude/hooks/session_start.sh
# Check backend logs for the test event
curl http://your-backend:8000/api/events | jq
Available Hooks
pre_tool_use.sh- Before tool executionpost_tool_use.sh- After tool executionuser_prompt.sh- When user submits a promptsession_start.sh- Session initializationsession_end.sh- Session terminationsubagent_stop.sh- Agent completion
Troubleshooting
No events appearing in dashboard
-
Check if
CLAUDE_MONITOR_URLis set correctly:echo $CLAUDE_MONITOR_URL -
Verify backend is reachable:
curl $CLAUDE_MONITOR_URL/health -
Check hook permissions:
ls -la ~/.claude/hooks/*.sh -
Test hook manually:
echo '{"session_id":"test","timestamp":1234567890}' | ~/.claude/hooks/session_start.sh
Events only work locally
Make sure to set CLAUDE_MONITOR_URL in your shell profile and restart your terminal.