From optimize
Audit and clean up Windows startup programs to speed up boot time and reduce idle RAM. Use when the user wants faster boot, fewer things loading at startup, or wants to know what runs automatically. Trigger for: "too many startup programs", "slow boot", "too many things open at startup", "disable startup apps", "what runs at boot", "my PC takes forever to start".
How this skill is triggered — by the user, by Claude, or both
Slash command
/optimize:startupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Inventories everything that loads when Windows starts and helps the user decide what
Inventories everything that loads when Windows starts and helps the user decide what to keep, what to remove, and what to postpone until actually needed.
Run this PowerShell as Administrator to get the full picture:
$items = @()
# HKCU Run
$hkcu = Get-ItemProperty "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -EA SilentlyContinue
$hkcu.PSObject.Properties | Where-Object { $_.Name -notlike "PS*" } | ForEach-Object {
$items += [PSCustomObject]@{ Source="HKCU"; Name=$_.Name; Value=$_.Value }
}
# HKLM Run
$hklm = Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -EA SilentlyContinue
$hklm.PSObject.Properties | Where-Object { $_.Name -notlike "PS*" } | ForEach-Object {
$items += [PSCustomObject]@{ Source="HKLM"; Name=$_.Name; Value=$_.Value }
}
# HKLM32 Run
$hklm32 = Get-ItemProperty "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run" -EA SilentlyContinue
$hklm32.PSObject.Properties | Where-Object { $_.Name -notlike "PS*" } | ForEach-Object {
$items += [PSCustomObject]@{ Source="HKLM32"; Name=$_.Name; Value=$_.Value }
}
# Startup folders
foreach ($folder in @([Environment]::GetFolderPath("Startup"), [Environment]::GetFolderPath("CommonStartup"))) {
Get-ChildItem $folder -EA SilentlyContinue | ForEach-Object {
$items += [PSCustomObject]@{ Source="Folder"; Name=$_.Name; Value=$_.FullName }
}
}
# Scheduled tasks at logon
Get-ScheduledTask -EA SilentlyContinue | Where-Object {
$_.State -ne "Disabled" -and ($_.Triggers | Where-Object { $_ -and $_.CimClass.CimClassName -match "Logon|Boot" })
} | ForEach-Object {
$items += [PSCustomObject]@{ Source="Task"; Name=$_.TaskName; Value=$_.TaskPath }
}
$items | Format-Table -AutoSize
Show the user the full list grouped by source (HKCU, HKLM, folders, tasks). For each item, briefly describe what it is if it's not obvious from the name.
Common identifications:
SecurityHealth / SecurityHealthSystray → Windows Defender tray — keepFocusrite Notifier → audio interface driver notification — keep if has FocusritePlex Media Server → Plex server — keep if running as home serverParsec.App.0 → remote gaming client — keep if used for remote accessDiscord → chat app — can open manuallySpotify → music app — can open manuallyEpicGamesLauncher → game launcher — can open manuallyEADesktop → EA game launcher — can open manuallySteam → game launcher — can open manually (or keep if they always use it)AdobeAAMUpdater / AdobeUpdater → Adobe auto-updater — managed by CC appGoogleDriveFS → Google Drive sync — depends if constant sync is neededOneDrive → Microsoft OneDrive — depends on useDSALaunchAgent / DSATray → Intel Driver Support Assistant — not needed at bootGoodSync / gsync → backup sync tool — can run on scheduleTeamViewer → remote support — service runs when app openscom.squirrel.slack.slack → Slack — can open manuallyNotion → note-taking — can open manuallyTell the user:
"Here's everything that loads when Windows starts. Tell me what you want to keep and I'll remove the rest. At minimum, I'd suggest keeping:
- SecurityHealth (Windows Defender)
- Any audio interface software (Focusrite, Scarlett, etc.)
- Anything you need available the moment you sit down (Plex, Parsec, etc.)"
Wait for their answer.
Before removing anything, export the current state:
reg export "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" startup_backup_hkcu.reg /y
reg export "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" startup_backup_hklm.reg /y
For each item to remove:
Registry (HKCU/HKLM):
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -Name "AppName"
Startup folder shortcuts:
Remove-Item "C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\App.lnk" -Force
Scheduled tasks:
Disable-ScheduledTask -TaskName "TaskName"
Kill the process for each item removed (so the effect is immediate):
Stop-Process -Name "ProcessName" -Force -ErrorAction SilentlyContinue
Show:
To restore any item later:
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" `
-Name "AppName" -Value '"C:\path\to\app.exe"'
npx claudepluginhub julianprincipe/windows-pc-optimizer --plugin optimizeWindows 11 disk cleanup and health playbook using native tooling (Storage Sense, DISM, cleanmgr) with a drift-protected HTML UI and Task Scheduler alerting. For full/slow PCs, BSODs, or commit-memory pressure.
Diagnoses and fixes Windows workstation issues: slow boot, failing drives, BSOD crashes, startup bloat, and event log forensics.
Finds stale and resource-hungry processes, scores waste, and presents cleanup report. Activates on RAM queries or slow machine, or proactively when noticing sluggishness.