From b9b32c59c47a3267a8fc063e7ee22c57c212f9ec Mon Sep 17 00:00:00 2001 From: The_miro Date: Mon, 18 May 2026 10:46:13 +0200 Subject: [PATCH] setup: add Claude Code module Installs @anthropic-ai/claude-code via npm, sourcing nvm if npm is not already in PATH. Wired into tui-install.sh and install-modules.sh. Co-Authored-By: Claude Sonnet 4.6 --- setup/install-modules.sh | 4 ++++ setup/modules/optional-Modules/apps/claude.sh | 9 +++++++++ setup/tui-install.sh | 4 ++++ 3 files changed, 17 insertions(+) create mode 100755 setup/modules/optional-Modules/apps/claude.sh diff --git a/setup/install-modules.sh b/setup/install-modules.sh index bf39708..db725b3 100755 --- a/setup/install-modules.sh +++ b/setup/install-modules.sh @@ -84,6 +84,7 @@ run_module() { count_steps() { local sel="$1" TOTAL=0 + [[ "$sel" == *"claude"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$sel" == *"networking-cli"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$sel" == *"disk-recovery"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$sel" == *"himalaya"* ]] && TOTAL=$(( TOTAL + 1 )) @@ -143,6 +144,7 @@ SELECTED=$(dialog --backtitle "$BACKTITLE" \ --title " Select Modules " \ --checklist "Space toggles · Enter confirms · Arrow keys scroll" 40 76 32 \ \ + "claude" "Claude Code Anthropic CLI via npm" off \ "networking-cli" "Networking CLI nmap · nethogs · mitmproxy · httpie" off \ "disk-recovery" "Disk Recovery ddrescue · f3" off \ "himalaya" "Himalaya terminal email client (AUR)" off \ @@ -183,6 +185,7 @@ SELECTED=$(dialog --backtitle "$BACKTITLE" \ [[ -z "$SELECTED" ]] && { clear; echo "Nothing selected."; exit 0; } SUMMARY="" +[[ "$SELECTED" == *"claude"* ]] && SUMMARY+=" ✦ Claude Code\n" [[ "$SELECTED" == *"networking-cli"* ]] && SUMMARY+=" ✦ Networking CLI (nmap, nethogs, mitmproxy, httpie)\n" [[ "$SELECTED" == *"disk-recovery"* ]] && SUMMARY+=" ✦ Disk Recovery (ddrescue, f3)\n" [[ "$SELECTED" == *"himalaya"* ]] && SUMMARY+=" ✦ Himalaya\n" @@ -225,6 +228,7 @@ dialog --backtitle "$BACKTITLE" \ count_steps "$SELECTED" +[[ "$SELECTED" == *"claude"* ]] && run_module "Claude Code" "$APPS/claude.sh" [[ "$SELECTED" == *"networking-cli"* ]] && run_module "Networking CLI" "$APPS/networking-cli.sh" [[ "$SELECTED" == *"disk-recovery"* ]] && run_module "Disk Recovery" "$APPS/disk-recovery.sh" [[ "$SELECTED" == *"himalaya"* ]] && run_module "Himalaya" "$APPS/himalaya.sh" diff --git a/setup/modules/optional-Modules/apps/claude.sh b/setup/modules/optional-Modules/apps/claude.sh new file mode 100755 index 0000000..64d6933 --- /dev/null +++ b/setup/modules/optional-Modules/apps/claude.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -euo pipefail + +if ! command -v npm &>/dev/null; then + export NVM_DIR="$HOME/.nvm" + [[ -s "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh" +fi + +npm install -g @anthropic-ai/claude-code diff --git a/setup/tui-install.sh b/setup/tui-install.sh index c021334..429db9b 100755 --- a/setup/tui-install.sh +++ b/setup/tui-install.sh @@ -94,6 +94,7 @@ count_steps() { [[ "$c" == *"svc"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$c" == *"shell"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$c" == *"de"* && "$de" != "none" ]] && TOTAL=$(( TOTAL + 1 )) + [[ "$a" == *"claude"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"networking-cli"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"disk-recovery"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"himalaya"* ]] && TOTAL=$(( TOTAL + 1 )) @@ -179,6 +180,7 @@ fi SELECTED_APPS=$(dialog --backtitle "$BACKTITLE" \ --title " Applications " \ --checklist "Optional applications — installed after base components:" 40 76 32 \ + "claude" "Claude Code Anthropic CLI via npm" off \ "networking-cli" "Networking CLI nmap · nethogs · mitmproxy · httpie" off \ "disk-recovery" "Disk Recovery ddrescue · f3" off \ "himalaya" "Himalaya terminal email client (AUR)" off \ @@ -225,6 +227,7 @@ SUMMARY="" if [[ -n "$SELECTED_APPS" ]]; then SUMMARY+="\n Applications:\n" + [[ "$SELECTED_APPS" == *"claude"* ]] && SUMMARY+=" ✦ Claude Code\n" [[ "$SELECTED_APPS" == *"networking-cli"* ]] && SUMMARY+=" ✦ Networking CLI (nmap, nethogs, mitmproxy, httpie)\n" [[ "$SELECTED_APPS" == *"disk-recovery"* ]] && SUMMARY+=" ✦ Disk Recovery (ddrescue, f3)\n" [[ "$SELECTED_APPS" == *"himalaya"* ]] && SUMMARY+=" ✦ Himalaya\n" @@ -282,6 +285,7 @@ if [[ "$COMPONENTS" == *"de"* && "$DE" != "none" ]]; then fi # ── Installation: applications ──────────────────────────────────────────────── +[[ "$SELECTED_APPS" == *"claude"* ]] && run_module "Claude Code" "$APPS/claude.sh" [[ "$SELECTED_APPS" == *"networking-cli"* ]] && run_module "Networking CLI" "$APPS/networking-cli.sh" [[ "$SELECTED_APPS" == *"disk-recovery"* ]] && run_module "Disk Recovery" "$APPS/disk-recovery.sh" [[ "$SELECTED_APPS" == *"himalaya"* ]] && run_module "Himalaya" "$APPS/himalaya.sh"