Preface

The core philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” In Windows environments, agent software-management tools usually rely on manual terminal operations or require complex script wrappers. dsh-winget is a plugin that wraps the Windows Package Manager (winget) into a native dsh tool. It allows agents to perform search, install, upgrade, and uninstall operations through tools such as winget_search and winget_install. All commands run in non-interactive mode by default and support headless environments.

Core Features

The plugin provides 9 native dsh tools covering the full software-management lifecycle. It includes a SKILL.md skill file to guide agents on when to call tools and how to follow security rules.

Main features include:
* Search and view: Use winget_search and winget_show to find software and retrieve details.
* Install and uninstall: Use winget_install and winget_uninstall to change system state (confirmation required first).
* Upgrade management: Use winget_upgrade to upgrade specified or all software.
* Manifest management: Use winget_export and winget_import to export and import software manifests.
* Version pinning: Use winget_pin to pin software versions.

Installation and Enablement

Add to profile as a bundle

Insert the following configuration into your DSH profile:

- insert:
    - id: winget
      name: './src/index.js'
      config:
        wingetPath: winget
        alwaysAcceptAgreements: true

Temporary local patch loading

If temporary loading is needed, you can use the following command:

pnpm dsh web --patch ./dsh-winget/cordis.patch.yml

Configuration Options and Tools

Configuration Options

The plugin uses Schemastery for configuration and supports the following parameters:

Key Default Description
wingetPath winget Path to winget.exe
alwaysAcceptAgreements true Automatically accept package/source agreements (required for headless installation)
timeoutMs 600000 Timeout per invocation (installation may be slow)

Native Tool List

  1. winget_search: Search software; supports query/id/name/moniker/tag parameters.
  2. winget_show: View software details, including version, source, and installer information.
  3. winget_install: Install software (changes system state; confirmation required).
  4. winget_upgrade: Upgrade specified software or all (all=true).
  5. winget_list: List installed software; supports filtering and export.
  6. winget_uninstall: Uninstall software (confirmation required).
  7. winget_export / winget_import: Export or import a software manifest.
  8. winget_pin: Pin software versions (add/list/remove).

Typical Usage

Agents can directly call the tools above. For example:
* Use winget_search to search for “VS Code” and use winget_show to view details.
* Use winget_install to install a specified package (confirmation required first).
* Use winget_upgrade all=true to upgrade all outdated software.

Notes

  1. Output format: The current version of winget does not support JSON output. Tools return table text, which models can parse directly.
  2. Administrator privileges: Install operations requiring administrator privileges may fail in non-interactive mode because UAC prompts cannot appear. The plugin returns errors as-is.
  3. Microsoft Store sign-in: Some packages from the Microsoft Store source may require the agent to sign in to a Microsoft account first.

Ecosystem Context

This plugin is maintained by the community and is not official. DSH aims to extend agents’ local capabilities through plugins. Before use, review the source code and license.

Summary

dsh-winget connects Windows software-management capabilities to DSH agents. With 9 native tools and non-interactive configuration by default, it addresses the pain points of managing Windows software packages in headless environments.

Detailed documentation and source code: GitHub