File size: 3,537 Bytes
8f16a6b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# AgentBridge one-line installer (Windows PowerShell).
#
#   irm https://graphene-lab.github.io/AgentBridge/install.ps1 | iex
#
# Downloads the latest Windows release archive from GitHub, extracts it into
# %LOCALAPPDATA%\AgentBridge and prints how to start the agent. The archive is
# self-contained (~460 MB): no .NET installation needed, Kokoro TTS voices included.

$ErrorActionPreference = "Stop"

$Repo = "Graphene-Lab/AgentBridge"
$Base = "https://github.com/$Repo/releases/latest/download"
$Dest = Join-Path $env:LOCALAPPDATA "AgentBridge"

# Only a win-x64 archive is published (no win-arm64 asset yet).
$Asset = "agentbridge-win-x64.tar.gz"

Write-Host "Installing AgentBridge into $Dest ..."
Write-Host "Downloading $Base/$Asset"

New-Item -ItemType Directory -Force -Path $Dest | Out-Null
$tmp = Join-Path $env:TEMP ("agentbridge-" + [guid]::NewGuid().ToString("N"))
New-Item -ItemType Directory -Force -Path $tmp | Out-Null

try {
    $archive = Join-Path $tmp $Asset
    Invoke-WebRequest -Uri "$Base/$Asset" -OutFile $archive -UseBasicParsing
    tar -xzf $archive -C $tmp
    Remove-Item $archive
    Copy-Item -Path (Join-Path $tmp "*") -Destination $Dest -Recurse -Force
}
finally {
    Remove-Item -LiteralPath $tmp -Recurse -Force -ErrorAction SilentlyContinue
}

# TTS GPU acceleration: if a CUDA-capable GPU is present, offer the CUDA Toolkit + cuDNN
# (AgentBridge ships the GPU ONNX Runtime — the TTS uses CUDA automatically when the toolkit
# is installed; the app probes the toolkit dirs at runtime, no manual PATH setup needed).
try {
    $gpu = (nvidia-smi --query-gpu=name --format=csv,noheader 2>$null | Select-Object -First 1)
} catch { $gpu = $null }
if ($gpu) {
    Write-Host ""
    Write-Host "CUDA-capable GPU detected: $gpu"
    $toolkit = Test-Path "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA"
    $cudnn = Test-Path "C:\Program Files\NVIDIA\CUDNN"
    if ($toolkit -and $cudnn) {
        Write-Host "CUDA Toolkit + cuDNN already installed — the TTS will run on the GPU automatically."
    }
    else {
        $ans = Read-Host "The TTS can run ~1.5x faster on the GPU. Install the CUDA Toolkit 12.8 + cuDNN 9.7 (large download)? [y/N]"
        if ($ans -match "^[yY]") {
            Write-Host "Downloading the CUDA Toolkit 12.8 network installer..."
            curl.exe -L -o "$env:TEMP\cuda-12.8.2-net.exe" "https://developer.download.nvidia.com/compute/cuda/12.8.2/network_installers/cuda_12.8.2_windows_network.exe"
            Write-Host "Installing CUDA Toolkit (silent)..."
            Start-Process -Wait "$env:TEMP\cuda-12.8.2-net.exe" -ArgumentList "-s","-noreboot"
            Write-Host "Downloading cuDNN 9.7..."
            curl.exe -L -o "$env:TEMP\cudnn-9.7.exe" "https://developer.download.nvidia.com/compute/cudnn/9.7.0/local_installers/cudnn_9.7.0_windows.exe"
            Write-Host "Installing cuDNN 9.7 (silent)..."
            Start-Process -Wait "$env:TEMP\cudnn-9.7.exe" -ArgumentList "/s"
            Write-Host "CUDA Toolkit installed — the TTS will use the GPU automatically."
        }
        else {
            Write-Host "TTS will run on the CPU (slower). You can install CUDA later — AgentBridge picks it up automatically at runtime."
        }
    }
}
else {
    Write-Host "No CUDA-capable GPU detected — the TTS will use the CPU."
}

Write-Host ""
Write-Host "AgentBridge installed to $Dest."
Write-Host "TTS is ready: the Kokoro voices and model are included — nothing else to install."
Write-Host "Run:  $(Join-Path $Dest 'agent.exe')"