Hooks now read backend URL from ~/.claude/monitor_url config file, making it easier to configure for remote/VM deployments without relying on environment variables. Priority order: 1. Config file (~/.claude/monitor_url) 2. Environment variable (CLAUDE_MONITOR_URL) 3. Default (http://localhost:8000) This fixes the issue where Claude Code doesn't see environment variables when not started from a configured shell. Usage: echo "http://your-vm:8000" > ~/.claude/monitor_url cp .claude/hooks/*.sh ~/.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>
38 lines
1.1 KiB
Bash
38 lines
1.1 KiB
Bash
#!/bin/bash
|
|
# Configure Claude Code Monitor hooks with custom backend URL
|
|
|
|
set -e
|
|
|
|
# Get backend URL from user or use localhost
|
|
read -p "Enter backend URL (default: http://localhost:8000): " BACKEND_URL
|
|
BACKEND_URL=${BACKEND_URL:-http://localhost:8000}
|
|
|
|
echo "Configuring hooks to use: $BACKEND_URL"
|
|
|
|
# Create temporary directory
|
|
TEMP_DIR=$(mktemp -d)
|
|
trap "rm -rf $TEMP_DIR" EXIT
|
|
|
|
# Copy hooks to temp directory
|
|
cp *.sh "$TEMP_DIR/"
|
|
|
|
# Update each hook with the configured URL
|
|
for hook in "$TEMP_DIR"/*.sh; do
|
|
if [ -f "$hook" ] && [ "$(basename "$hook")" != "configure.sh" ]; then
|
|
# Replace the MONITOR_URL line with hardcoded URL
|
|
sed -i.bak "s|MONITOR_URL=\"\${CLAUDE_MONITOR_URL:-http://localhost:8000}\"|MONITOR_URL=\"$BACKEND_URL\"|g" "$hook"
|
|
rm -f "${hook}.bak"
|
|
fi
|
|
done
|
|
|
|
# Install to ~/.claude/hooks/
|
|
mkdir -p ~/.claude/hooks
|
|
cp "$TEMP_DIR"/*.sh ~/.claude/hooks/
|
|
chmod +x ~/.claude/hooks/*.sh
|
|
|
|
echo "✓ Hooks installed and configured successfully!"
|
|
echo "✓ Backend URL: $BACKEND_URL"
|
|
echo ""
|
|
echo "Test with:"
|
|
echo " echo '{\"session_id\":\"test\",\"timestamp\":1234567890}' | ~/.claude/hooks/session_start.sh"
|