Windows Installation
Lattice works on Windows 10 and later (both x86-64 and ARM64).
Quick Install
irm https://uselovelace.com/lattice/install.ps1 | iex
This PowerShell script:
- Downloads the appropriate binary (x86-64 or ARM64)
- Installs to
%ProgramFiles%\Lattice\ - Sets up Windows Service for auto-start
- Creates
%AppData%\.lovelace\lattice\configuration directory - Adds Lattice to your system PATH
Step-by-Step Installation
Step 1: Download and Install
Open PowerShell as Administrator and run:
# Run the installation script
irm https://uselovelace.com/lattice/install.ps1 | iex
# Verify installation
lattice-ctl --version
Step 2: Start the Daemon
# Start the daemon
lattice-ctl daemon start
# Verify it's running
lattice-ctl ping
Expected output:
✓ Lattice daemon is running (PID: 12345)
Uptime: 2 seconds
Socket: \\.\pipe\lattice\daemon
Step 3: Enable Auto-Start
The installation script automatically sets up Windows Service for auto-start. To verify:
# Check service is enabled
Get-Service -Name "lattice" | Select-Object Status, StartType
# Should show:
# Status : Running
# StartType : Automatic
Manual Installation
Download Binary
If the installation script fails, download the binary manually:
# Create installation directory
$InstallPath = "$env:ProgramFiles\Lattice"
New-Item -ItemType Directory -Path $InstallPath -Force
# Download the appropriate binary for your architecture
# For x86-64 (most common):
$DownloadUrl = "https://github.com/lovelace-ai/lattice/releases/latest/download/lattice-windows-x86_64.exe"
# For ARM64 (Surface Pro X, etc):
$DownloadUrl = "https://github.com/lovelace-ai/lattice/releases/latest/download/lattice-windows-arm64.exe"
# Download
Invoke-WebRequest -Uri $DownloadUrl -OutFile "$InstallPath\lattice-ctl.exe"
# Create configuration directory
New-Item -ItemType Directory -Path "$env:APPDATA\.lovelace\lattice" -Force
Register Windows Service
Create a Windows Service to run Lattice as a background service:
# Create service
sc.exe create lattice `
binPath= "$InstallPath\lattice-ctl.exe daemon" `
start= auto `
DisplayName= "Lattice Daemon" `
obj= "LocalSystem"
# Start the service
Start-Service -Name "lattice"
# Verify
Get-Service -Name "lattice"
Add to PATH (Optional)
To use lattice-ctl from any directory:
# Add to user PATH
[Environment]::SetEnvironmentVariable(
"Path",
"$env:Path;$env:ProgramFiles\Lattice",
[System.EnvironmentVariableTarget]::User
)
# Refresh PATH in current session
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Windows-Specific Issues
Windows Defender SmartScreen Warning
You might see "Windows Defender SmartScreen prevented an unrecognized app from starting":
# Method 1: Click "More info" → "Run anyway"
# Method 2: Unblock the downloaded file
Unblock-File -Path "$env:ProgramFiles\Lattice\lattice-ctl.exe"
"Permission Denied" Errors
If you get permission errors, ensure you're running PowerShell as Administrator:
# Run PowerShell as Administrator
Start-Process powershell -Verb RunAs
# Then retry installation
irm https://uselovelace.com/lattice/install.ps1 | iex
AppLocker Blocking Lattice
If your organization uses AppLocker policies, you may need to whitelist the lattice executable:
# Check AppLocker status
Get-AppLockerPolicy -Effective | Select-Object -ExpandProperty RuleCollections
# Contact your IT department to whitelist:
# Path: %ProgramFiles%\Lattice\lattice-ctl.exe
Windows Firewall Issues
If the daemon can't start, Windows Firewall might be blocking the named pipe:
# Allow Lattice through Windows Firewall
New-NetFirewallRule -DisplayName "Lattice Daemon" `
-Direction Inbound `
-Program "$env:ProgramFiles\Lattice\lattice-ctl.exe" `
-Action Allow
# Restart the service
Restart-Service -Name "lattice"
Service Management
Check Service Status
# Using lattice-ctl
lattice-ctl status
# Using Windows Services
Get-Service -Name "lattice" | Format-List
# Using sc.exe
sc.exe query lattice
Start/Stop Service
# Start service
Start-Service -Name "lattice"
# or: lattice-ctl start
# Stop service
Stop-Service -Name "lattice"
# or: lattice-ctl stop
# Restart service
Restart-Service -Name "lattice"
# or: lattice-ctl restart
# View logs
Get-EventLog -LogName System -Source "lattice" | Select-Object -Last 10
View Service Logs
# View recent Lattice daemon logs
Get-EventLog -LogName System -Source "lattice" -Newest 20
# Or check application event viewer
eventvwr.msc # Opens Windows Event Viewer
# Navigate to: Windows Logs → System → Filter by "lattice"
Disable Auto-Start
# Disable auto-start but keep installed
Set-Service -Name "lattice" -StartupType Disabled
# To re-enable auto-start later
Set-Service -Name "lattice" -StartupType Automatic
Start-Service -Name "lattice"
Uninstalling
To completely remove Lattice from Windows:
# Stop the service
Stop-Service -Name "lattice" -Force
# Remove Windows Service
sc.exe delete lattice
# Remove installation directory
Remove-Item -Path "$env:ProgramFiles\Lattice" -Recurse -Force
# Remove configuration directory
Remove-Item -Path "$env:APPDATA\.lovelace" -Recurse -Force
# Remove from PATH (if you added it manually)
[Environment]::SetEnvironmentVariable(
"Path",
$env:Path.Replace("$env:ProgramFiles\Lattice;", ""),
[System.EnvironmentVariableTarget]::User
)
Updating
To update to the latest version:
# Re-run the installation script
irm https://uselovelace.com/lattice/install.ps1 | iex
# Or manually:
# Stop service
Stop-Service -Name "lattice"
# Download new binary (same as manual installation)
$DownloadUrl = "https://github.com/lovelace-ai/lattice/releases/latest/download/lattice-windows-x86_64.exe"
Invoke-WebRequest -Uri $DownloadUrl -OutFile "$env:ProgramFiles\Lattice\lattice-ctl.exe"
# Restart service
Start-Service -Name "lattice"
Troubleshooting
"Connection refused"
# Check if daemon is running
lattice-ctl status
Get-Service -Name "lattice"
# If not running, start it
lattice-ctl start
# or: Start-Service -Name "lattice"
# Check logs for errors
Get-EventLog -LogName System -Source "lattice" -Newest 5
"Command not found: lattice-ctl"
# Verify installation path
Test-Path "$env:ProgramFiles\Lattice\lattice-ctl.exe"
# Verify PATH includes Lattice directory
$env:Path -split ";" | Select-String "Lattice"
# If not in PATH, add it
[Environment]::SetEnvironmentVariable(
"Path",
"$env:Path;$env:ProgramFiles\Lattice",
[System.EnvironmentVariableTarget]::User
)
# Restart PowerShell for changes to take effect
Named Pipe Permission Errors
# Lattice uses Windows named pipes for IPC
# If you see "Access Denied" errors:
# Ensure service is running as correct user
Get-WmiObject Win32_Service -Filter "Name='lattice'" | Select-Object Name, StartName
# Reset permissions on named pipe location
icacls "\\.\pipe\lattice" /grant Everyone:F
Service Won't Start
# Check service error logs
Get-EventLog -LogName System | Where-Object {$_.Source -like "*lattice*"} | Select-Object -First 5
# Try manual daemon execution to see detailed errors
& "$env:ProgramFiles\Lattice\lattice-ctl.exe" daemon --verbose
# If permission issues, run as Administrator
Start-Process powershell -Verb RunAs -ArgumentList "Start-Service -Name lattice"
Architecture Mismatch Error
# Check your system architecture
[System.Environment]::Is64BitOperatingSystem # Should be True for x86-64
# Check if running ARM64 Windows (Surface Pro X, etc)
(Get-WmiObject -Class Win32_Processor).Architecture
# 9 = x86-64, 5 = ARM64
# If ARM64, ensure you downloaded the ARM64 binary:
# lattice-windows-arm64.exe (not lattice-windows-x86_64.exe)
PowerShell Execution Policy Error
If you see "cannot be loaded because running scripts is disabled":
# Temporarily allow script execution for this session
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
# Then re-run installation
irm https://uselovelace.com/lattice/install.ps1 | iex
# Permanently allow (not recommended for security)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Next Steps
- Quickstart → - Run your first agent
- Using Lattice → - Learn the CLI
- Understanding → - Deep dive into architecture
- Troubleshooting → - Common issues