Install
openclaw skills install winget-package-managerControlled Windows package management workflow based on winget. Guides an agent to safely search, inspect, download, install, upgrade, uninstall, and list up...
openclaw skills install winget-package-managerThis is a prompt-only Windows package management skill built around winget.
It does not provide its own executable wrapper scripts. Instead, it defines a safe workflow, decision rules, and behavior constraints for agents that already have access to a terminal, shell, or command-execution capability in the host environment.
The goal of this skill is to help an agent use winget safely and consistently on Windows without turning package management into arbitrary shell execution.
This skill assumes the host environment already provides a way to run Windows commands.
Examples of suitable host capabilities include:
wingetIf the host cannot execute commands, this skill can still provide workflow guidance, but it cannot directly perform package operations.
Use this skill when the user wants to:
Do not use this skill for:
.exe, .bat, .cmd, or .ps1 files outside the host's trusted execution modelThis skill supports exactly 7 operations:
searchshowdownloadinstallupgradeuninstalllist-upgradesDo not expand the scope beyond these operations unless the skill is explicitly redesigned.
Only use the 7 supported operations:
searchshowdownloadinstallupgradeuninstalllist-upgradesPrefer exact package IDs over fuzzy names whenever possible. Examples:
Microsoft.VisualStudioCodeGoogle.ChromeGit.GitFor install, upgrade, and uninstall:
search or show first.Only allow approved sources:
wingetmsstoreDo not invent or append unsupported WinGet arguments.
Do not transform this skill into a generic PowerShell executor or shell tool.
Treat uninstall as high-risk:
Never automatically retry install, upgrade, or uninstall after failure.
Report the failure and let the user decide what to do next.
Repeated retries may trigger repeated elevation prompts or vendor installer/uninstaller dialogs.
Disambiguation is mandatory: When multiple packages match a request, list all relevant candidates and ask which one should be used. Never silently operate on all matches.
For uninstall, do not rely only on a success-looking message from the package manager.
If the host environment allows it, perform a post-check to verify whether the package still appears to be installed.
| Action | Description | Risk Level |
|---|---|---|
search | Search for packages | Low |
show | View package details | Low |
download | Download installer only | Medium |
install | Install a package | Medium |
upgrade | Upgrade a package | Medium |
uninstall | Uninstall a package | High |
list-upgrades | List updatable packages | Low |
The agent should follow this workflow:
When the user provides a fuzzy name such as:
the agent should first identify the correct package through winget search or equivalent host capability.
If identity is uncertain, or the action is medium/high risk, inspect the package before acting.
Use show when helpful to confirm:
For these actions:
installupgradedownloaduninstallthe agent should prefer a precise package ID and avoid acting on vague names.
Only after the package is sufficiently identified should the agent execute the requested operation through the host's command capability.
Return a concise, structured result that includes:
If the action is uninstall, and the host allows further checks, verify the result afterward.
A vendor uninstaller may show its own dialog and may not always report cancellation in a reliable way.
The exact execution mechanism depends on the host environment. However, the agent should generally use patterns like the following.
winget search "Visual Studio Code"
winget show --id Microsoft.VisualStudioCode --exact
winget download --id Google.Chrome --source winget --download-directory "$env:USERPROFILE\Downloads" --exact
winget install --id Microsoft.VisualStudioCode --source winget --exact --accept-package-agreements --accept-source-agreements
winget upgrade --id Git.Git --source winget --exact --accept-package-agreements --accept-source-agreements
winget uninstall --id 7zip.7zip --source winget --exact
winget upgrade
Because this is a prompt-only skill, the exact output format depends on the host tool.
When the host environment supports structured output, prefer a consistent JSON-like structure such as:
{
"success": true,
"action": "search",
"query": "Visual Studio Code",
"source": "winget",
"candidates": [
{
"name": "Microsoft Visual Studio Code",
"id": "Microsoft.VisualStudioCode",
"version": "1.96.0"
}
],
"stdout": "...",
"stderr": "",
"exit_code": 0,
"summary": "Search completed for 'Visual Studio Code'."
}
If the host does not support structured tool output, the agent should still present results using a stable and consistent schema in its response.
If the user asks something like:
and multiple packages match, the agent must:
install, upgrade, or uninstall until the user clarifiesExample ambiguity handling:
DevToys.DevToysDevToys.DevToys.PreviewDo not operate on both unless the user explicitly asks for both.
The agent should handle and clearly report situations such as:
winget is not installedwinget is not available in PATHWhen a failure occurs, report it clearly and do not automatically retry high-risk operations.
winget 1.6+ recommended
winget 1.6+ is especially useful for downloadThis skill is intentionally designed as a prompt-only / policy-only skill so it can be distributed in environments where script files may not be accepted.
A richer local version may additionally provide:
Those implementation assets are useful, but they are outside the scope of this prompt-only distribution.