#!/bin/bash # Auto-start dev server in tmux session when build/dev commands are detected # Event: PreToolUse | Matcher: Bash # Profile: standard # Non-blocking (exit 0) INPUT=$(cat) COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty') if [ -z "$COMMAND" ]; then exit 0 fi # Detect dev server commands DEV_PATTERNS=( 'npm\s+run\s+dev' 'pnpm\s+(run\s+)?dev' 'yarn\s+dev' 'next\s+dev' 'vite\s*$' 'vite\s+dev' ) IS_DEV_COMMAND=false for pattern in "${DEV_PATTERNS[@]}"; do if echo "$COMMAND" | grep -qE "$pattern"; then IS_DEV_COMMAND=true break fi done if [ "$IS_DEV_COMMAND" = false ]; then exit 0 fi # Check if tmux is available if ! command -v tmux &>/dev/null; then exit 0 fi # Check if dev server is already running in a tmux session SESSION_NAME="claude-dev" if tmux has-session -t "$SESSION_NAME" 2>/dev/null; then echo "Dev server already running in tmux session '$SESSION_NAME'. Use 'tmux attach -t $SESSION_NAME' to view." >&2 exit 0 fi echo "Tip: Long-running dev servers work better in tmux. Run: tmux new -d -s $SESSION_NAME '$COMMAND'" >&2 exit 0