Files
SuperCharged-Claude-Code-Up…/supercharge.sh
Trae Agent 2ba9dedfb0 fix: robust node.js version parsing in installers
Improved Node.js version check logic to handle prefixed version strings and avoid brittle cut commands. Verified with multiple version formats including v24.11.1.
2026-01-29 11:26:11 +04:00

626 lines
22 KiB
Bash
Executable File

#!/bin/bash
################################################################################
# SuperCharge Claude Code - Ultimate Installation Script v3.0
################################################################################
# This script transforms any Claude Code installation into a supercharged
# version with all customizations, skills, agents, plugins, and integrations.
#
# Features v3.0:
# - 291 Custom Skills (cognitive, development, UI/UX, brainstorming, agents)
# - RalphLoop autonomous agent integration
# - Prometheus code analysis integration (6 commands)
# - Dexto multi-agent harness (12 commands)
# - Clawd autonomous gateway
# - Intelligent auto-routing system
# - Multi-AI consultation (Qwen integration)
# - Agent management system with sync capabilities
# - Custom hooks for session management
# - MCP servers integration (10 servers)
# - Plugin marketplace setup
#
# Usage: ./supercharge.sh [options]
# --skip-deps Skip dependency installation
# --dev-mode Development mode (verbose output)
################################################################################
set -e
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
BOLD='\033[1m'
NC='\033[0m' # No Color
# Script directory
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Claude config directory
CLAUDE_DIR="${HOME}/.claude"
# Backup directory
BACKUP_DIR="${HOME}/.claude-backup-$(date +%Y%m%d_%H%M%S)"
# Flags
SKIP_DEPS=false
DEV_MODE=false
################################################################################
# Helper Functions
################################################################################
log_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
log_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
log_step() {
echo -e "${CYAN}${BOLD}==>${NC} ${BOLD}$1${NC}"
}
print_banner() {
echo -e "${CYAN}${BOLD}"
cat << "EOF"
╔═══════════════════════════════════════════════════════════════╗
║ ║
║ ███████╗██╗ █████╗ ██████╗ ║
║ ██╔════╝██║ ██╔══██╗██╔════╝ ║
║ ███████╗██║ ███████║██║ ███╗ ║
║ ╚════██║██║ ██╔══██║██║ ██║ ║
║ ███████║███████╗██║ ██║╚██████╔╝ ║
║ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ║
║ ║
║ ███████╗██╗ ██╗███████╗███╗ ██╗ ║
║ ██╔════╝╚██╗██╔╝██╔════╝████╗ ██║ ║
║ █████╗ ╚███╔╝ █████╗ ██╔██╗ ██║ ║
║ ██╔══╝ ██╔██╗ ██╔══╝ ██║╚██╗██║ ║
║ ███████╗██║██╗██║███████╗██║ ╚████║ ║
║ ╚══════╝╚═╝╚═╝╚═╝╚══════╝╚═╝ ╚═══╝ ║
║ ║
║ Ultimate Installation Script ║
║ Version 3.0 ║
291 Skills • 21 Commands • 10 MCP Servers ║
║ ║
╚═══════════════════════════════════════════════════════════════╝
EOF
echo -e "${NC}"
}
check_claude_code() {
log_step "Checking for Claude Code installation..."
if ! command -v claude &> /dev/null; then
log_warn "Claude Code CLI not found!"
echo ""
echo -e "${YELLOW}Claude Code is required to use these customizations.${NC}"
echo ""
echo "Options:"
echo " 1. Install Claude Code with Z.AI API support (recommended)"
echo " 2. Install manually later"
echo " 3. Exit to install first"
echo ""
read -p "Choose option [1/2/3]: " -n 1 -r choice
echo ""
case $choice in
1)
log_info "Running Claude Code installer..."
bash "$SCRIPT_DIR/install-claude-code.sh" --auto
if ! command -v claude &> /dev/null; then
log_error "Claude Code installation failed. Please install manually."
exit 1
fi
log_success "Claude Code installed successfully"
;;
2)
log_warn "Skipping Claude Code installation"
log_info "You can install it later with: ./install-claude-code.sh"
return 1
;;
3)
log_info "Please install Claude Code first:"
echo " npm install -g @anthropic-ai/claude-code"
echo " Or run: ./install-claude-code.sh"
exit 1
;;
*)
log_error "Invalid choice"
exit 1
;;
esac
fi
log_success "Claude Code found: $(claude --version 2>/dev/null || echo 'installed')"
return 0
}
backup_existing_config() {
log_step "Backing up existing configuration..."
if [ -d "$CLAUDE_DIR" ]; then
mkdir -p "$BACKUP_DIR"
cp -r "$CLAUDE_DIR" "$BACKUP_DIR/"
log_success "Backup created at: $BACKUP_DIR"
else
log_info "No existing configuration to backup"
fi
}
install_dependencies() {
if [ "$SKIP_DEPS" = true ]; then
log_warn "Skipping dependency installation"
return
fi
log_step "Checking and installing dependencies..."
# Check Python 3
if ! command -v python3 &> /dev/null; then
log_warn "Python 3 not found. Some features may not work."
else
log_success "Python 3 found: $(python3 --version)"
fi
# Check Node.js
if ! command -v node &> /dev/null; then
log_warn "Node.js not found. Some features may not work."
else
local node_full_version=$(node -v 2>&1)
local node_version=$(echo "$node_full_version" | grep -oE '[0-9]+' | head -n1)
if [ ! -z "$node_version" ] && [ "$node_version" -ge 18 ]; then
log_success "Node.js found: $node_full_version"
else
log_warn "Node.js found but too old ($node_full_version). v18+ recommended."
fi
fi
# Check Git
if ! command -v git &> /dev/null; then
log_error "Git not found. Please install Git first."
exit 1
else
log_success "Git found: $(git --version)"
fi
# Install Ralph Orchestrator
install_ralph_orchestrator
# Install Prometheus Integration
install_prometheus_integration
# Install Dexto Integration
install_dexto_integration
# Install Clawd Gateway
install_clawd_gateway
# Configure MCP Servers
configure_mcp_servers
}
install_ralph_orchestrator() {
log_step "Installing Ralph Orchestrator..."
RALPH_INSTALLED=false
if command -v ralph &> /dev/null; then
log_success "Ralph Orchestrator found: $(ralph --version 2>/dev/null || echo installed)"
RALPH_INSTALLED=true
fi
if python3 -c "import ralph_orchestrator" 2>/dev/null; then
if [ "$RALPH_INSTALLED" = false ]; then
log_success "Ralph Orchestrator Python package found"
RALPH_INSTALLED=true
fi
fi
if [ "$RALPH_INSTALLED" = false ]; then
log_info "Installing Ralph Orchestrator..."
if command -v pip3 &> /dev/null; then
if [ -f "$SCRIPT_DIR/requirements.txt" ]; then
log_info "Installing from requirements.txt..."
pip3 install -r "$SCRIPT_DIR/requirements.txt" 2>/dev/null && {
log_success "Ralph Orchestrator installed from requirements.txt"
} || {
log_warn "requirements.txt install failed, trying direct install..."
pip3 install ralph-orchestrator pyyaml 2>/dev/null || {
log_warn "Failed to install Ralph Orchestrator"
}
}
else
pip3 install ralph-orchestrator pyyaml 2>/dev/null || {
log_warn "Failed to install Ralph Orchestrator"
}
fi
else
log_warn "pip3 not found. Skipping Ralph Orchestrator installation."
fi
fi
if command -v ralph &> /dev/null || python3 -c "import ralph_orchestrator" 2>/dev/null; then
log_success "Ralph Orchestrator ready"
else
log_warn "Ralph Orchestrator not available - /ralph will use fallback mode"
fi
}
install_prometheus_integration() {
log_step "Installing Prometheus Integration..."
if [ -d "$SCRIPT_DIR/prometheus" ]; then
mkdir -p "$CLAUDE_DIR/prometheus"
cp -r "$SCRIPT_DIR/prometheus/"* "$CLAUDE_DIR/prometheus/" 2>/dev/null || true
log_success "Prometheus integration installed (6 commands)"
else
log_warn "Prometheus directory not found"
fi
}
install_dexto_integration() {
log_step "Installing Dexto Integration..."
if [ -d "$SCRIPT_DIR/dexto" ]; then
mkdir -p "$CLAUDE_DIR/dexto"
cp -r "$SCRIPT_DIR/dexto/"* "$CLAUDE_DIR/dexto/" 2>/dev/null || true
log_success "Dexto integration installed (12 commands)"
else
log_warn "Dexto directory not found"
fi
}
install_clawd_gateway() {
log_step "Installing Clawd Gateway..."
if [ -d "$SCRIPT_DIR/clawd" ]; then
mkdir -p "$CLAUDE_DIR/clawd"
cp -r "$SCRIPT_DIR/clawd/"* "$CLAUDE_DIR/clawd/" 2>/dev/null || true
# Setup Python virtual environment if needed
if [ -f "$CLAUDE_DIR/clawd/gateway/requirements.txt" ]; then
if [ ! -d "$CLAUDE_DIR/clawd/gateway/venv" ]; then
log_info "Setting up Clawd gateway virtual environment..."
python3 -m venv "$CLAUDE_DIR/clawd/gateway/venv" 2>/dev/null || {
log_warn "Failed to create virtual environment"
}
fi
if [ -d "$CLAUDE_DIR/clawd/gateway/venv" ]; then
"$CLAUDE_DIR/clawd/gateway/venv/bin/pip" install -r "$CLAUDE_DIR/clawd/gateway/requirements.txt" 2>/dev/null || {
log_warn "Failed to install Clawd dependencies"
}
fi
fi
log_success "Clawd gateway installed"
else
log_warn "Clawd directory not found"
fi
}
configure_mcp_servers() {
log_step "Configuring MCP Servers..."
mkdir -p "$CLAUDE_DIR/mcp-servers"
if [ -f "$SCRIPT_DIR/mcp-servers/registry.json" ]; then
cp "$SCRIPT_DIR/mcp-servers/registry.json" "$CLAUDE_DIR/mcp-servers/"
log_success "MCP servers registry configured (10 servers)"
else
log_warn "MCP servers registry not found"
fi
if [ -f "$SCRIPT_DIR/mcp-servers/manager.sh" ]; then
cp "$SCRIPT_DIR/mcp-servers/manager.sh" "$CLAUDE_DIR/mcp-servers/"
chmod +x "$CLAUDE_DIR/mcp-servers/manager.sh"
log_success "MCP servers manager installed"
fi
}
install_skills() {
log_step "Installing custom skills..."
mkdir -p "$CLAUDE_DIR/skills"
if [ -d "$SCRIPT_DIR/skills" ]; then
cp -r "$SCRIPT_DIR/skills/"* "$CLAUDE_DIR/skills/" 2>/dev/null || true
local skill_count=$(find "$SCRIPT_DIR/skills" -name "SKILL.md" 2>/dev/null | wc -l)
log_success "Installed ${skill_count:-291} custom skills"
else
log_warn "Skills directory not found"
fi
}
install_agents() {
log_step "Installing agent management system..."
mkdir -p "$CLAUDE_DIR/agents"
if [ -d "$SCRIPT_DIR/agents" ]; then
cp -r "$SCRIPT_DIR/agents/"* "$CLAUDE_DIR/agents/" 2>/dev/null || true
log_success "Agent management system installed"
find "$CLAUDE_DIR/agents" -name "*.sh" -exec chmod +x {} \;
else
log_warn "Agents directory not found"
fi
}
install_hooks() {
log_step "Installing custom hooks..."
mkdir -p "$CLAUDE_DIR/hooks"
if [ -d "$SCRIPT_DIR/hooks" ]; then
cp -r "$SCRIPT_DIR/hooks/"* "$CLAUDE_DIR/hooks/" 2>/dev/null || true
find "$CLAUDE_DIR/hooks" -name "*.sh" -exec chmod +x {} \;
log_success "Custom hooks installed (intelligent routing enabled)"
else
log_warn "Hooks directory not found"
fi
if [ -f "$SCRIPT_DIR/hooks.json" ]; then
cp "$SCRIPT_DIR/hooks.json" "$CLAUDE_DIR/hooks.json"
log_success "Hooks configuration (v5) installed"
fi
}
install_commands() {
log_step "Installing custom commands..."
mkdir -p "$CLAUDE_DIR/commands"
if [ -d "$SCRIPT_DIR/commands" ]; then
cp -r "$SCRIPT_DIR/commands/"* "$CLAUDE_DIR/commands/" 2>/dev/null || true
local cmd_count=$(ls -1 "$SCRIPT_DIR/commands" 2>/dev/null | wc -l)
log_success "Installed ${cmd_count:-21} custom commands"
else
log_warn "Commands directory not found"
fi
}
install_plugins() {
log_step "Installing plugin marketplace..."
mkdir -p "$CLAUDE_DIR/plugins"
if [ -d "$SCRIPT_DIR/plugins" ]; then
cp -r "$SCRIPT_DIR/plugins/"* "$CLAUDE_DIR/plugins/" 2>/dev/null || true
log_success "Plugin marketplace configured"
else
log_warn "Plugins directory not found"
fi
}
install_binaries() {
log_step "Installing custom binaries..."
mkdir -p "$HOME/.local/bin"
if [ -f "$SCRIPT_DIR/bin/ralphloop" ]; then
cp "$SCRIPT_DIR/bin/ralphloop" "$HOME/.local/bin/"
chmod +x "$HOME/.local/bin/ralphloop"
if ! echo "$PATH" | grep -q "$HOME/.local/bin"; then
echo "" >> "$HOME/.bashrc"
echo "# SuperCharge Claude Code - Add local bin to PATH" >> "$HOME/.bashrc"
echo "export PATH=\"\$HOME/.local/bin:\$PATH\"" >> "$HOME/.bashrc"
log_info "Added ~/.local/bin to PATH in .bashrc"
fi
log_success "RalphLoop wrapper installed"
else
log_warn "RalphLoop binary not found"
fi
}
install_scripts() {
log_step "Installing utility scripts..."
mkdir -p "$CLAUDE_DIR/scripts"
if [ -d "$SCRIPT_DIR/scripts" ]; then
cp -r "$SCRIPT_DIR/scripts/"* "$CLAUDE_DIR/scripts/" 2>/dev/null || true
find "$CLAUDE_DIR/scripts" -name "*.sh" -exec chmod +x {} \;
log_success "Utility scripts installed"
else
log_warn "Scripts directory not found"
fi
}
install_config_templates() {
log_step "Installing configuration templates..."
if [ -d "$SCRIPT_DIR/templates" ]; then
if [ -f "$SCRIPT_DIR/templates/config.json" ] && [ ! -f "$CLAUDE_DIR/config.json" ]; then
cp "$SCRIPT_DIR/templates/config.json" "$CLAUDE_DIR/config.json"
log_success "config.json installed"
fi
if [ -f "$SCRIPT_DIR/templates/settings.json" ]; then
if [ -f "$CLAUDE_DIR/settings.json" ]; then
local temp_file=$(mktemp)
python3 -c "
import json
try:
with open('$CLAUDE_DIR/settings.json', 'r') as f:
existing = json.load(f)
except:
existing = {}
try:
with open('$SCRIPT_DIR/templates/settings.json', 'r') as f:
template = json.load(f)
except:
template = {}
for key in template:
if key != 'permissions':
existing[key] = template[key]
with open('$temp_file', 'w') as f:
json.dump(existing, f, indent=2)
" 2>/dev/null || cp "$SCRIPT_DIR/templates/settings.json" "$temp_file"
mv "$temp_file" "$CLAUDE_DIR/settings.json"
else
cp "$SCRIPT_DIR/templates/settings.json" "$CLAUDE_DIR/settings.json"
fi
log_success "settings.json configured"
fi
fi
}
sync_agents() {
log_step "Syncing agents from repository..."
if [ -f "$CLAUDE_DIR/scripts/sync-agents.sh" ]; then
bash "$CLAUDE_DIR/scripts/sync-agents.sh" 2>/dev/null || log_warn "Agent sync completed with warnings"
log_success "Agent sync completed"
else
log_warn "sync-agents.sh not found"
fi
}
print_summary() {
echo ""
echo -e "${GREEN}${BOLD}╔═══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${GREEN}${BOLD}║ INSTALLATION COMPLETE v3.0! ║${NC}"
echo -e "${GREEN}${BOLD}╚═══════════════════════════════════════════════════════════════╝${NC}"
echo ""
echo -e "${BOLD}Your Claude Code installation is now SUPERCHARGED!${NC}"
echo ""
echo -e "${CYAN}Installed Features:${NC}"
echo -e " ${GREEN}${NC} 291 Custom Skills (cognitive, development, UI/UX, agents)"
echo -e " ${GREEN}${NC} RalphLoop Autonomous Agent"
echo -e " ${GREEN}${NC} Prometheus Code Analysis (6 commands)"
echo -e " ${GREEN}${NC} Dexto Multi-Agent Harness (12 commands)"
echo -e " ${GREEN}${NC} Clawd Autonomous Gateway"
echo -e " ${GREEN}${NC} Intelligent Auto-Routing System"
echo -e " ${GREEN}${NC} Multi-AI Consultation (Qwen)"
echo -e " ${GREEN}${NC} 10 MCP Servers Configured"
echo -e " ${GREEN}${NC} Plugin Marketplace"
echo ""
echo -e "${CYAN}Available Commands (21 total):${NC}"
echo ""
echo -e "${BOLD}Autonomous Agents:${NC}"
echo -e " ${YELLOW}/clawd${NC} - Fully autonomous task execution"
echo -e " ${YELLOW}/ralph${NC} - Iterative architecture & orchestration"
echo ""
echo -e "${BOLD}Prometheus (Code Analysis):${NC}"
echo -e " ${YELLOW}/prometheus${NC} - Master command (auto-routes to sub-agent)"
echo -e " ${YELLOW}/prometheus-bug${NC} - Bug analysis and fixing"
echo -e " ${YELLOW}/prometheus-feature${NC} - Feature implementation"
echo -e " ${YELLOW}/prometheus-context${NC} - Code context understanding"
echo -e " ${YELLOW}/prometheus-edit${NC} - Code editing and refactoring"
echo -e " ${YELLOW}/prometheus-test${NC} - Test generation and validation"
echo -e " ${YELLOW}/prometheus-classify${NC} - Issue classification"
echo ""
echo -e "${BOLD}Dexto (Specialized Agents):${NC}"
echo -e " ${YELLOW}/dexto${NC} - Master command (auto-routes to sub-agent)"
echo -e " ${YELLOW}/dexto-code${NC} - Code analysis and generation"
echo -e " ${YELLOW}/dexto-database${NC} - Database optimization"
echo -e " ${YELLOW}/dexto-github${NC} - GitHub PR/issue analysis"
echo -e " ${YELLOW}/dexto-pdf${NC} - PDF document analysis"
echo -e " ${YELLOW}/dexto-image-edit${NC}- Image editing and enhancement"
echo -e " ${YELLOW}/dexto-nano-banana${NC}- AI image generation"
echo -e " ${YELLOW}/dexto-sora${NC} - AI video generation"
echo -e " ${YELLOW}/dexto-music${NC} - AI music/audio generation"
echo -e " ${YELLOW}/dexto-podcast${NC} - AI podcast generation"
echo -e " ${YELLOW}/dexto-research${NC} - Product research and ideation"
echo -e " ${YELLOW}/dexto-triage${NC} - Support ticket triage"
echo -e " ${YELLOW}/dexto-explore${NC} - Codebase exploration"
echo ""
echo -e "${CYAN}Intelligent Auto-Routing:${NC}"
echo -e " The system automatically detects task patterns and suggests"
echo -e " the best agent. Just describe your task naturally!"
echo ""
echo -e "${CYAN}Quick Start:${NC}"
echo -e " 1. Restart your terminal or run: ${YELLOW}source ~/.bashrc${NC}"
echo -e " 2. Run Claude Code: ${YELLOW}claude${NC}"
echo -e " 3. Try any command or just describe your task - auto-routing will help!"
echo ""
echo -e "${CYAN}Examples:${NC}"
echo -e " ${YELLOW}claude${NC} \"Fix the authentication bug\" → Auto-routes to /prometheus-bug"
echo -e " ${YELLOW}claude${NC} \"Generate an image of a city\" → Auto-routes to /dexto-nano-banana"
echo -e " ${YELLOW}claude${NC} \"Design a microservices architecture\" → Auto-routes to /ralph"
echo ""
echo -e "${CYAN}Configuration:${NC}"
echo -e " Config dir: ${YELLOW}$CLAUDE_DIR${NC}"
echo -e " Backup: ${YELLOW}$BACKUP_DIR${NC}"
echo ""
echo -e "${GREEN}${BOLD}Enjoy your supercharged Claude Code experience!${NC}"
echo ""
}
################################################################################
# Main Installation
################################################################################
main() {
print_banner
while [[ $# -gt 0 ]]; do
case $1 in
--skip-deps)
SKIP_DEPS=true
shift
;;
--dev-mode)
DEV_MODE=true
set -x
shift
;;
-h|--help)
echo "Usage: $0 [options]"
echo " --skip-deps Skip dependency installation"
echo " --dev-mode Development mode (verbose output)"
exit 0
;;
*)
log_error "Unknown option: $1"
exit 1
;;
esac
done
if ! check_claude_code; then
log_info "Customizations installed. Install Claude Code to use them."
echo ""
echo -e "${CYAN}Install Claude Code:${NC}"
echo " npm install -g @anthropic-ai/claude-code"
echo " Or run: ./install-claude-code.sh"
echo ""
exit 0
fi
backup_existing_config
install_dependencies
install_skills
install_agents
install_hooks
install_commands
install_plugins
install_binaries
install_scripts
install_config_templates
sync_agents
print_summary
}
main "$@"