Add native PowerShell installer for Windows

Features:
- Automatic download of repository from GitHub
- Full installation of all components (skills, agents, hooks, commands, plugins, scripts)
- Claude Code detection and optional installation via npm
- Dependency checking (Node.js, Git, Python, Ralph Orchestrator)
- Automatic backup of existing configuration
- Color-coded output for better user experience
- Error handling with clear messages

Usage:
  irm https://.../install-windows.ps1 | pwsh -ExecutionPolicy Bypass -
  OR right-click "Run with PowerShell"

Updated README with PowerShell installer as Option 1 (recommended)
Updated WordPress article with Windows PowerShell option

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
uroma
2026-01-22 19:09:49 +00:00
Unverified
parent 9b2588cff5
commit 68193bbf39
2 changed files with 509 additions and 8 deletions

View File

@@ -22,13 +22,25 @@ cd SuperCharged-Claude-Code-Upgrade
### Windows Installation Options
#### Option 1: WSL (Windows Subsystem for Linux) - **Recommended**
#### Option 1: PowerShell Installer ⭐ **Native - Recommended**
```powershell
# Download and run the native PowerShell installer
irm https://github.rommark.dev/admin/SuperCharged-Claude-Code-Upgrade/raw/main/install-windows.ps1 | pwsh -ExecutionPolicy Bypass -
# OR download and run manually
Invoke-WebRequest -Uri "https://github.rommark.dev/admin/SuperCharged-Claude-Code-Upgrade/raw/main/install-windows.ps1" -OutFile "install-windows.ps1"
pwsh -ExecutionPolicy Bypass -File install-windows.ps1
# OR right-click install-windows.ps1 and select "Run with PowerShell"
```
#### Option 2: WSL (Windows Subsystem for Linux)
```bash
# Clone and run in WSL
wsl bash -c "git clone https://github.rommark.dev/admin/SuperCharged-Claude-Code-Upgrade.git && cd SuperCharged-Claude-Code-Upgrade && ./supercharge.sh"
```
#### Option 2: Git Bash
#### Option 3: Git Bash
```bash
# Clone the repository
git clone https://github.rommark.dev/admin/SuperCharged-Claude-Code-Upgrade.git
@@ -38,20 +50,19 @@ cd SuperCharged-Claude-Code-Upgrade
./supercharge.sh
```
#### Option 3: Manual Download
#### Option 4: Manual Download
```powershell
# 1. Download and extract the ZIP from:
# https://github.rommark.dev/admin/SuperCharged-Claude-Code-Upgrade/archive/refs/heads/main.zip
# 2. Open WSL and navigate to extracted folder
wsl
# 2. Open PowerShell and navigate to extracted folder
cd path\to\SuperCharged-Claude-Code-Upgrade
# 3. Run the installer
cd /path/to/SuperCharged-Claude-Code-Upgrade
./supercharge.sh
pwsh -ExecutionPolicy Bypass -File install-windows.ps1
```
> **⚠️ Important:** The installer requires access to files in the repository (skills, agents, hooks, etc.). One-line curl installs won't work - you must clone the full repository first.
> **📝 Note:** The PowerShell installer (Option 1) downloads everything automatically. For bash/WSL options, you must clone the repository first since the script needs access to local files.
---

490
install-windows.ps1 Normal file
View File

@@ -0,0 +1,490 @@
#!/usr/bin/env pwsh
################################################################################
# SuperCharge Claude Code - Windows PowerShell Installer
################################################################################
# This script transforms any Claude Code installation into a supercharged
# version with all customizations, skills, agents, plugins, and integrations.
#
# Usage:
# pwsh -ExecutionPolicy Bypass -File install-windows.ps1
# OR right-click -> "Run with PowerShell"
#
# Features:
# - 30+ Custom Skills (cognitive, development, UI/UX)
# - RalphLoop autonomous agent integration
# - Multi-AI consultation (Qwen integration)
# - Agent management system
# - Custom hooks and commands
# - MCP servers integration
################################################################################
#Requires -Version 5.1
[CmdletBinding()]
param()
# Colors for output
function Write-ColorOutput {
param(
[Parameter(Mandatory=$true)]
[string]$Message,
[Parameter(Mandatory=$false)]
[ValidateSet("Info", "Success", "Warning", "Error", "Step")]
[string]$Type = "Info"
)
$colors = @{
"Info" = "Cyan"
"Success" = "Green"
"Warning" = "Yellow"
"Error" = "Red"
"Step" = "Magenta"
}
$prefixes = @{
"Info" = "[INFO]"
"Success" = "[SUCCESS]"
"Warning" = "[WARN]"
"Error" = "[ERROR]"
"Step" = "==>"
}
Write-Host "$($prefixes[$Type]) $Message" -ForegroundColor $colors[$Type]
}
function Show-Banner {
Write-Host @"
Windows PowerShell Installer
"@ -ForegroundColor Cyan
}
function Test-ClaudeCode {
Write-ColorOutput "Checking for Claude Code installation..." -Type Step
$claudeCmd = Get-Command claude -ErrorAction SilentlyContinue
if (-not $claudeCmd) {
Write-ColorOutput "Claude Code CLI not found!" -Type Warning
Write-Host ""
Write-Host "Claude Code is required to use these customizations." -ForegroundColor Yellow
Write-Host ""
Write-Host "Installation options:" -ForegroundColor White
Write-Host " 1. Install Claude Code with npm (requires Node.js)"
Write-Host " 2. Install manually later"
Write-Host " 3. Exit to install first"
Write-Host ""
$choice = Read-Host "Choose option [1/2/3]"
Write-Host ""
switch ($choice) {
"1" {
Write-ColorOutput "Installing Claude Code via npm..." -Type Info
try {
npm install -g @anthropic-ai/claude-code
if ($LASTEXITCODE -eq 0) {
Write-ColorOutput "Claude Code installed successfully!" -Type Success
} else {
Write-ColorOutput "Claude Code installation failed. Please install manually." -Type Error
exit 1
}
} catch {
Write-ColorOutput "npm install failed: $_" -Type Error
Write-ColorOutput "Please install Node.js from https://nodejs.org/ and try again." -Type Info
exit 1
}
}
"2" {
Write-ColorOutput "Skipping Claude Code installation." -Type Warning
Write-ColorOutput "You can install it later with: npm install -g @anthropic-ai/claude-code" -Type Info
return $false
}
"3" {
Write-ColorOutput "Please install Claude Code first:" -Type Info
Write-Host " npm install -g @anthropic-ai/claude-code" -ForegroundColor White
exit 1
}
default {
Write-ColorOutput "Invalid choice." -Type Error
exit 1
}
}
}
# Refresh path and check again
$claudeCmd = Get-Command claude -ErrorAction SilentlyContinue
if ($claudeCmd) {
$version = & claude --version 2>$null
Write-ColorOutput "Claude Code found: $version" -Type Success
return $true
}
return $false
}
function Backup-ExistingConfig {
Write-ColorOutput "Backing up existing configuration..." -Type Step
$claudeDir = Join-Path $env:USERPROFILE ".claude"
$backupDir = Join-Path $env:USERPROFILE ".claude-backup-$(Get-Date -Format 'yyyyMMdd_HHmmss')"
if (Test-Path $claudeDir) {
Copy-Item -Path $claudeDir -Destination $backupDir -Recurse -Force
Write-ColorOutput "Backup created at: $backupDir" -Type Success
} else {
Write-ColorOutput "No existing configuration to backup." -Type Info
}
}
function Install-Dependencies {
Write-ColorOutput "Checking dependencies..." -Type Step
# Check Node.js
$nodeCmd = Get-Command node -ErrorAction SilentlyContinue
if ($nodeCmd) {
$version = & node --version
Write-ColorOutput "Node.js found: $version" -Type Success
} else {
Write-ColorOutput "Node.js not found. Some features may not work." -Type Warning
}
# Check Git
$gitCmd = Get-Command git -ErrorAction SilentlyContinue
if (-not $gitCmd) {
Write-ColorOutput "Git not found. Please install Git from https://git-scm.com/" -Type Error
exit 1
} else {
$version = & git --version
Write-ColorOutput "Git found: $version" -Type Success
}
# Check Python (optional)
$pythonCmd = Get-Command python -ErrorAction SilentlyContinue
if (-not $pythonCmd) {
$pythonCmd = Get-Command python3 -ErrorAction SilentlyContinue
}
if ($pythonCmd) {
$version = & $pythonCmd --version
Write-ColorOutput "Python found: $version" -Type Success
# Try to install Ralph Orchestrator
Write-ColorOutput "Installing Ralph Orchestrator..." -Type Info
try {
& $pythonCmd -m pip install ralph-orchestrator 2>$null
if ($LASTEXITCODE -eq 0) {
Write-ColorOutput "Ralph Orchestrator installed." -Type Success
}
} catch {
Write-ColorOutput "Could not install Ralph Orchestrator (optional)." -Type Warning
}
} else {
Write-ColorOutput "Python not found. Some features may not work." -Type Warning
}
}
function Download-Repository {
Write-ColorOutput "Downloading SuperCharge Claude Code package..." -Type Step
$tempDir = Join-Path $env:TEMP "SuperCharged-Claude-Code-Upgrade"
$zipFile = Join-Path $env:TEMP "supercharge.zip"
$repoUrl = "https://github.rommark.dev/admin/SuperCharged-Claude-Code-Upgrade/archive/refs/heads/main.zip"
# Clean up any existing download
if (Test-Path $tempDir) {
Remove-Item -Path $tempDir -Recurse -Force -ErrorAction SilentlyContinue
}
if (Test-Path $zipFile) {
Remove-Item -Path $zipFile -Force -ErrorAction SilentlyContinue
}
# Download the repository
try {
Write-ColorOutput "Downloading from: $repoUrl" -Type Info
Invoke-WebRequest -Uri $repoUrl -OutFile $zipFile -UseBasicParsing
# Extract the zip
Write-ColorOutput "Extracting files..." -Type Info
Expand-Archive -Path $zipFile -DestinationPath $env:TEMP -Force
# Rename the extracted folder
$extractedDir = Join-Path $env:TEMP "SuperCharged-Claude-Code-Upgrade-main"
if (Test-Path $extractedDir) {
Move-Item -Path $extractedDir -Destination $tempDir -Force
}
Write-ColorOutput "Repository downloaded to: $tempDir" -Type Success
return $tempDir
} catch {
Write-ColorOutput "Failed to download repository: $_" -Type Error
return $null
}
}
function Copy-DirectoryContent {
param(
[string]$Source,
[string]$Destination
)
if (Test-Path $Source) {
# Create destination if it doesn't exist
if (-not (Test-Path $Destination)) {
New-Item -Path $Destination -ItemType Directory -Force | Out-Null
}
# Copy all items
Get-ChildItem -Path $Source -Force | ForEach-Object {
Copy-Item -Path $_.FullName -Destination $Destination -Recurse -Force -ErrorAction SilentlyContinue
}
return $true
}
return $false
}
function Install-Skills {
param([string]$SourceDir)
Write-ColorOutput "Installing custom skills..." -Type Step
$claudeDir = Join-Path $env:USERPROFILE ".claude"
$skillsDir = Join-Path $SourceDir "skills"
$destDir = Join-Path $claudeDir "skills"
if (Copy-DirectoryContent -Source $skillsDir -Destination $destDir) {
$count = (Get-ChildItem -Path $destDir -Filter "SKILL.md" -Recurse -ErrorAction SilentlyContinue).Count
Write-ColorOutput "Installed $count custom skills." -Type Success
} else {
Write-ColorOutput "Skills directory not found in source." -Type Warning
}
}
function Install-Agents {
param([string]$SourceDir)
Write-ColorOutput "Installing agent management system..." -Type Step
$claudeDir = Join-Path $env:USERPROFILE ".claude"
$agentsDir = Join-Path $SourceDir "agents"
$destDir = Join-Path $claudeDir "agents"
if (Copy-DirectoryContent -Source $agentsDir -Destination $destDir) {
Write-ColorOutput "Agent management system installed." -Type Success
} else {
Write-ColorOutput "Agents directory not found in source." -Type Warning
}
}
function Install-Hooks {
param([string]$SourceDir)
Write-ColorOutput "Installing custom hooks..." -Type Step
$claudeDir = Join-Path $env:USERPROFILE ".claude"
$hooksDir = Join-Path $SourceDir "hooks"
$destDir = Join-Path $claudeDir "hooks"
if (Copy-DirectoryContent -Source $hooksDir -Destination $destDir) {
Write-ColorOutput "Custom hooks installed." -Type Success
} else {
Write-ColorOutput "Hooks directory not found in source." -Type Warning
}
}
function Install-Commands {
param([string]$SourceDir)
Write-ColorOutput "Installing custom commands..." -Type Step
$claudeDir = Join-Path $env:USERPROFILE ".claude"
$commandsDir = Join-Path $SourceDir "commands"
$destDir = Join-Path $claudeDir "commands"
if (Copy-DirectoryContent -Source $commandsDir -Destination $destDir) {
$count = (Get-ChildItem -Path $destDir -ErrorAction SilentlyContinue).Count
Write-ColorOutput "Installed $count custom commands." -Type Success
} else {
Write-ColorOutput "Commands directory not found in source." -Type Warning
}
}
function Install-Plugins {
param([string]$SourceDir)
Write-ColorOutput "Installing plugin references..." -Type Step
$claudeDir = Join-Path $env:USERPROFILE ".claude"
$pluginsDir = Join-Path $SourceDir "plugins"
$destDir = Join-Path $claudeDir "plugins"
if (Copy-DirectoryContent -Source $pluginsDir -Destination $destDir) {
$count = (Get-ChildItem -Path $destDir -Directory -ErrorAction SilentlyContinue).Count
Write-ColorOutput "Installed $count plugin references." -Type Success
} else {
Write-ColorOutput "Plugins directory not found in source." -Type Warning
}
}
function Install-Scripts {
param([string]$SourceDir)
Write-ColorOutput "Installing utility scripts..." -Type Step
$claudeDir = Join-Path $env:USERPROFILE ".claude"
$scriptsDir = Join-Path $SourceDir "scripts"
$destDir = Join-Path $claudeDir "scripts"
if (Copy-DirectoryContent -Source $scriptsDir -Destination $destDir) {
Write-ColorOutput "Utility scripts installed." -Type Success
} else {
Write-ColorOutput "Scripts directory not found in source." -Type Warning
}
}
function Install-Templates {
param([string]$SourceDir)
Write-ColorOutput "Installing configuration templates..." -Type Step
$claudeDir = Join-Path $env:USERPROFILE ".claude"
$templatesDir = Join-Path $SourceDir "templates"
if (Test-Path $templatesDir) {
# Install config.json if not exists
$configJson = Join-Path $templatesDir "config.json"
if ((Test-Path $configJson) -and -not (Test-Path (Join-Path $claudeDir "config.json"))) {
Copy-Item -Path $configJson -Destination (Join-Path $claudeDir "config.json") -Force
Write-ColorOutput "config.json installed." -Type Success
}
# Install hooks.json if not exists
$hooksJson = Join-Path $templatesDir "hooks.json"
if ((Test-Path $hooksJson) -and -not (Test-Path (Join-Path $claudeDir "hooks.json"))) {
Copy-Item -Path $hooksJson -Destination (Join-Path $claudeDir "hooks.json") -Force
Write-ColorOutput "hooks.json installed." -Type Success
}
# Install settings.local.json if not exists
$settingsLocalJson = Join-Path $templatesDir "settings.local.json"
if ((Test-Path $settingsLocalJson) -and -not (Test-Path (Join-Path $claudeDir "settings.local.json"))) {
Copy-Item -Path $settingsLocalJson -Destination (Join-Path $claudeDir "settings.local.json") -Force
Write-ColorOutput "settings.local.json installed." -Type Success
}
} else {
Write-ColorOutput "Templates directory not found." -Type Warning
}
}
function Show-Summary {
$claudeDir = Join-Path $env:USERPROFILE ".claude"
Write-Host ""
Write-Host "╔═══════════════════════════════════════════════════════════════╗" -ForegroundColor Green
Write-Host "║ INSTALLATION COMPLETE! ║" -ForegroundColor Green
Write-Host "╚═══════════════════════════════════════════════════════════════╝" -ForegroundColor Green
Write-Host ""
Write-Host "Your Claude Code installation is now SUPERCHARGED!" -ForegroundColor Green
Write-Host ""
Write-Host "Installed Features:" -ForegroundColor Cyan
Write-Host " [OK] 30+ Custom Skills (cognitive, development, UI/UX)" -ForegroundColor Green
Write-Host " [OK] RalphLoop Autonomous Agent Integration" -ForegroundColor Green
Write-Host " [OK] Multi-AI Consultation (Qwen)" -ForegroundColor Green
Write-Host " [OK] Agent Management System" -ForegroundColor Green
Write-Host " [OK] Custom Hooks & Commands" -ForegroundColor Green
Write-Host " [OK] Plugin Marketplace Setup" -ForegroundColor Green
Write-Host ""
Write-Host "New Commands Available:" -ForegroundColor Cyan
Write-Host " /ralph - Autonomous 'Tackle Until Solved' agent" -ForegroundColor Yellow
Write-Host " /brainstorm - Multi-AI brainstorming session" -ForegroundColor Yellow
Write-Host " /write-plan - Create implementation plans" -ForegroundColor Yellow
Write-Host " /execute-plan - Execute written plans" -ForegroundColor Yellow
Write-Host ""
Write-Host "Quick Start:" -ForegroundColor Cyan
Write-Host " 1. Close and reopen your terminal" -ForegroundColor White
Write-Host " 2. Run Claude Code: claude" -ForegroundColor Yellow
Write-Host " 3. Try: /ralph 'Design a microservices architecture'" -ForegroundColor Yellow
Write-Host ""
Write-Host "Configuration:" -ForegroundColor Cyan
Write-Host " Config dir: $claudeDir" -ForegroundColor Yellow
Write-Host ""
Write-Host "Enjoy your supercharged Claude Code experience!" -ForegroundColor Green
Write-Host ""
}
################################################################################
# Main Installation
################################################################################
function Main {
Show-Banner
# Check for Claude Code
$claudeInstalled = Test-ClaudeCode
if (-not $claudeInstalled) {
Write-Host ""
Write-Host "Customizations installed. Install Claude Code to use them." -ForegroundColor Cyan
Write-Host ""
Write-Host "Install Claude Code:" -ForegroundColor Cyan
Write-Host " npm install -g @anthropic-ai/claude-code" -ForegroundColor White
Write-Host ""
return
}
# Run installation steps
Backup-ExistingConfig
Install-Dependencies
# Download the repository
$repoDir = Download-Repository
if (-not $repoDir) {
Write-ColorOutput "Failed to download repository. Installation aborted." -Type Error
exit 1
}
# Install all components
Install-Skills -SourceDir $repoDir
Install-Agents -SourceDir $repoDir
Install-Hooks -SourceDir $repoDir
Install-Commands -SourceDir $repoDir
Install-Plugins -SourceDir $repoDir
Install-Scripts -SourceDir $repoDir
Install-Templates -SourceDir $repoDir
# Clean up
Write-ColorOutput "Cleaning up temporary files..." -Type Info
$zipFile = Join-Path $env:TEMP "supercharge.zip"
if (Test-Path $zipFile) {
Remove-Item -Path $zipFile -Force -ErrorAction SilentlyContinue
}
Show-Summary
}
# Run main function
try {
Main
} catch {
Write-ColorOutput "Installation failed: $_" -Type Error
exit 1
}