# ============================================================================== # OpenCode Agent & CLI v2 - Automated Installer for Windows (PowerShell) # https://opencode.developed.work # ============================================================================== $ErrorActionPreference = "Continue" Write-Host "======================================================" -ForegroundColor Cyan Write-Host " OpenCode Agent & CLI v2 - Instalador Oficial " -ForegroundColor Cyan Write-Host " https://opencode.developed.work " -ForegroundColor Cyan Write-Host "======================================================`n" -ForegroundColor Cyan # 1. Editor detection $EditorCmd = $null if (Get-Command "code" -ErrorAction SilentlyContinue) { $EditorCmd = "code" } elseif (Get-Command "cursor" -ErrorAction SilentlyContinue) { $EditorCmd = "cursor" } elseif (Get-Command "code-insiders" -ErrorAction SilentlyContinue) { $EditorCmd = "code-insiders" } elseif (Get-Command "codium" -ErrorAction SilentlyContinue) { $EditorCmd = "codium" } if ($EditorCmd) { Write-Host "[OK] Editor detectado: $EditorCmd" -ForegroundColor Green } else { Write-Host "[!] No se encontro 'code' en PATH. Se procedera con la descarga." -ForegroundColor Yellow } # 2. Download and install VSIX $VsixUrl = "https://opencode.developed.work/downloads/opencode-vscode-agent-0.2.5.vsix" $TmpVsix = Join-Path $env:TEMP "opencode-vscode-agent.vsix" Write-Host "`n[1/4] Descargando OpenCode Agent v0.2.5..." -ForegroundColor Cyan Invoke-WebRequest -Uri $VsixUrl -OutFile $TmpVsix -UseBasicParsing if ($EditorCmd) { Write-Host "[2/4] Instalando extension en $EditorCmd..." -ForegroundColor Cyan & $EditorCmd --install-extension $TmpVsix --force Write-Host "[OK] Extension instalada exitosamente en $EditorCmd." -ForegroundColor Green } else { $Dest = Join-Path $env:USERPROFILE "opencode-vscode-agent-0.2.5.vsix" Copy-Item $TmpVsix $Dest Write-Host "[i] Archivo guardado en $Dest" -ForegroundColor Yellow } Remove-Item $TmpVsix -Force -ErrorAction SilentlyContinue # 3. Verify OpenCode CLI v2 Write-Host "`n[3/4] Verificando OpenCode CLI v2..." -ForegroundColor Cyan $OpencodeCmd = Get-Command "opencode" -ErrorAction SilentlyContinue $isV2 = $false if ($OpencodeCmd) { $helpOut = & opencode serve --help 2>&1 | Out-String if ($helpOut -match "--service") { $isV2 = $true Write-Host "[OK] OpenCode CLI v2 activo y detectado." -ForegroundColor Green } } if (-not $isV2) { Write-Host "[!] Instalando OpenCode CLI v2 (@opencode/cli)..." -ForegroundColor Yellow if (Get-Command "npm" -ErrorAction SilentlyContinue) { Write-Host "Ejecutando: npm install -g @opencode/cli" -ForegroundColor Cyan npm install -g @opencode/cli } else { irm https://opencode.ai/install.ps1 | iex } } # 4. Check Authorization Write-Host "`n[4/4] Verificando Autorizacion e Integraciones..." -ForegroundColor Cyan try { $authOut = & opencode auth list 2>&1 | Out-String if ($authOut -match "No authenticated") { Write-Host "[i] Estado de Autorizacion: Plan Gratuito activo (10 modelos gratuitos listos)." -ForegroundColor Yellow Write-Host " Para autorizar Anthropic Claude o OpenAI ejecuta: opencode auth login" -ForegroundColor Cyan Write-Host " O en VS Code presiona Ctrl+Shift+P > 'OpenCode: Iniciar Sesion / Establecer API Key'" -ForegroundColor Cyan } else { Write-Host "[OK] Integraciones encontradas:" -ForegroundColor Green Write-Host $authOut } # Ensure service runs & opencode serve --service | Out-Null Write-Host "[OK] Servicio OpenCode v2 activo y respondiendo." -ForegroundColor Green } catch { Write-Host "[!] Puedes iniciar el servicio ejecutando: opencode serve --service" -ForegroundColor Yellow } Write-Host "`n======================================================" -ForegroundColor Green Write-Host " [OK] Instalacion y Verificacion Completa! " -ForegroundColor Green Write-Host "======================================================" -ForegroundColor Green Write-Host "Abre VS Code y haz clic en el icono de OpenCode en la barra lateral.`n" -ForegroundColor Cyan