This guide explains how to reset and restore your Espanso config folder from a Git repository.
This config repo is normally set up automatically by the espanso-utility installer, which clones it to %APPDATA%\espanso, installs Git + Espanso, configures the AI scripts, and starts everything. From PowerShell:
irm https://raw.githubusercontent.com/questbibek/espanso-utility/main/setup-espanso.ps1 | iexRe-running it is safe — it git pulls the latest config instead of overwriting. See the espanso-utility repo for the full toolkit and trigger list.
The steps below are the manual alternative — only needed if you want to reset/restore just this config folder by hand.
espanso stopRemove-Item -Recurse -Force "$env:APPDATA\espanso"Navigate to the Roaming folder and clone your repo as the espanso folder:
cd "$env:APPDATA"
git clone https://github.com/questbibek/espanso.git espansoespanso restartespanso stop
Remove-Item -Recurse -Force "$env:APPDATA\espanso"
cd "$env:APPDATA"
git clone https://github.com/questbibek/espanso.git espanso
espanso restartespanso stop; Remove-Item -Recurse -Force "$env:APPDATA\espanso"; git clone https://github.com/questbibek/espanso.git "$env:APPDATA\espanso"; espanso restart- Make sure Espanso is fully stopped before removing the folder to avoid file-lock issues.
- If
espanso restartdoesn't work right away, try launching Espanso manually from the Start Menu or runningespanso start.
- Espanso was not auto-starting on boot despite being listed in Task Manager startup apps
- When run manually, a UAC (User Account Control) allow/deny popup appeared
Replaced the default startup entry with a Windows Task Scheduler task that runs at login with elevated privileges — bypassing the UAC prompt entirely.
espanso statusespanso startespanso logespanso service unregister
espanso service register$espansoPath = "$env:LOCALAPPDATA\Programs\Espanso\espansod.exe"
$action = New-ScheduledTaskAction -Execute $espansoPath -Argument "daemon"
$trigger = New-ScheduledTaskTrigger -AtLogOn -User $env:USERNAME
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -ExecutionTimeLimit 0
$principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive -RunLevel Highest
Register-ScheduledTask -TaskName "Espanso" -Action $action -Trigger $trigger -Settings $settings -Principal $principal -Forceespanso service unregisterEspanso will now start automatically and silently on every login with no UAC popup.
| Method | UAC Popup | Auto-start |
|---|---|---|
| Default service registration | ✅ Yes (annoying) | ❌ Unreliable |
| Task Scheduler (RunLevel Highest) | ❌ No | ✅ Reliable |
Task Scheduler with RunLevel Highest tells Windows to trust the process at login, so it never asks for permission again.