From 53682f045d15042d35159ddc3deca00f3bff7a4a Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 5 Apr 2026 12:34:06 +0000 Subject: [PATCH] ci: add SessionStart hook to install Node.js 24 for web sessions Configures nvm to install and use Node.js 24 and runs pnpm install when starting a Claude Code web session. https://claude.ai/code/session_01HRTjVTv1bCMwWioAx61UJT --- .claude/hooks/session-start.sh | 24 ++++++++++++++++++++++++ .claude/settings.json | 10 ++++++++++ 2 files changed, 34 insertions(+) create mode 100755 .claude/hooks/session-start.sh diff --git a/.claude/hooks/session-start.sh b/.claude/hooks/session-start.sh new file mode 100755 index 0000000..7a727ff --- /dev/null +++ b/.claude/hooks/session-start.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -euo pipefail + +# Only run in remote (web) environments +if [ "${CLAUDE_CODE_REMOTE:-}" != "true" ]; then + exit 0 +fi + +# Load nvm +export NVM_DIR="${NVM_DIR:-/opt/nvm}" +[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" + +# Install and use Node.js 24 +nvm install 24 +nvm alias default 24 + +# Make Node.js 24 available for this session +echo 'export NVM_DIR="${NVM_DIR:-/opt/nvm}"' >> "$CLAUDE_ENV_FILE" +echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' >> "$CLAUDE_ENV_FILE" +echo 'nvm use 24 > /dev/null 2>&1' >> "$CLAUDE_ENV_FILE" + +# Install dependencies +cd "$CLAUDE_PROJECT_DIR" +pnpm install diff --git a/.claude/settings.json b/.claude/settings.json index 0ae0d81..90be259 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -1,5 +1,15 @@ { "hooks": { + "SessionStart": [ + { + "hooks": [ + { + "type": "command", + "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/session-start.sh" + } + ] + } + ], "PostToolUse": [ { "matcher": "Write|Edit",