Find the right package
Search your WinGet sources, inspect publisher and version details, then choose exactly what to install.
diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml
new file mode 100644
index 0000000..dfe403f
--- /dev/null
+++ b/.github/workflows/pages.yml
@@ -0,0 +1,54 @@
+name: Pages
+
+on:
+ push:
+ branches: [main]
+ paths:
+ - 'site/**'
+ - '.github/workflows/pages.yml'
+ pull_request:
+ branches: [main]
+ paths:
+ - 'site/**'
+ - '.github/workflows/pages.yml'
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+concurrency:
+ group: pages-${{ github.ref }}
+ cancel-in-progress: false
+
+jobs:
+ validate:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
+ - name: Build and check local links
+ run: python3 site/build.py
+
+ deploy:
+ if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request'
+ needs: validate
+ runs-on: ubuntu-latest
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ permissions:
+ contents: read
+ pages: write
+ id-token: write
+ steps:
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
+ - name: Build site
+ run: python3 site/build.py
+ - name: Configure Pages
+ uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5
+ - name: Upload site
+ uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4
+ with:
+ path: site/_build
+ - name: Deploy Pages
+ id: deployment
+ uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 02cc754..0fce33c 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -2,8 +2,8 @@ name: Release
# Tag-driven release. To cut a release:
#
-# git tag v0.1.0
-# git push origin v0.1.0
+# git tag v0.2.0
+# git push origin v0.2.0
#
# Builds win-x64 and win-arm64 AOT executables, packages them with the README and
# LICENSE into zips, computes SHA-256 checksums, and publishes a GitHub Release with
diff --git a/.gitignore b/.gitignore
index 65ea102..ae7f9ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@ bin/
obj/
publish/
dist/
+/site/_build/
/packaging/release-assets/
/packaging/winget-manifests/
*.nupkg
diff --git a/README.md b/README.md
index 974f3a7..eff1f04 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,8 @@
[](https://www.microsoft.com/windows)
[](LICENSE)
+[Website](https://wingetscout.com/) · [Documentation](https://wingetscout.com/docs.html) · [Releases](https://github.com/harder/wingetscout/releases)
+
## Install
**Recommended: download the portable ZIP** from [GitHub Releases](https://github.com/harder/wingetscout/releases). It includes `wingetscout.exe` and the companion files needed for the full WinGet COM experience. No .NET runtime or installer is required.
@@ -14,8 +16,6 @@ A WinGet community package is being prepared as `Harder.WinGetScout`. Use the re
After that package is accepted, `winget install -e --id Harder.WinGetScout` will install the ZIP into WinGet's managed portable directory and add `wingetscout` to your user `PATH`. Open a **new terminal** to use the command from any folder. The WinGet manifest already requests this behavior; it does not require a separate installer or manual PATH editing. WinGet verifies the downloaded ZIP hash, but it does not sign the executable. See [signing and distribution](code-signing.md).
-> **Release availability:** The Scout filenames below will appear with the first Scout release. If they are not on the Releases page yet, Scout has not been published; see [Build from source](#build-from-source) to try the current code.
-
1. Choose the ZIP for your Windows PC:
| PC | Download |
diff --git a/WinGetScout.csproj b/WinGetScout.csproj
index d20415d..3cc6496 100644
--- a/WinGetScout.csproj
+++ b/WinGetScout.csproj
@@ -20,7 +20,7 @@
WINGET SCOUT / DOCUMENTATION
Everything you need to install Scout and manage packages with confidence.
01 / INSTALL
Scout runs on Windows 10 or 11 with WinGet available through App Installer. Windows Terminal is recommended. Choose the portable ZIP that matches your PC:
%LOCALAPPDATA%\Programs\WinGetScout..\wingetscout.exe.The community WinGet package ID is Harder.WinGetScout. When its submission is accepted, winget install -e --id Harder.WinGetScout will place the portable package in WinGet's managed directory and add its command to your user PATH. The package is not yet available in the community source.
Downloads are currently unsigned. Check the release's SHA256SUMS file before running a download. See the signing status and plan.
02 / FIRST RUN
Scout opens on Installed packages. Move between Search, Installed, and Upgrades with the left and right arrow keys. The package list and details panel stay side by side.
Installed view · demo dataSearch for a package, inspect its details, and press i to install. Select several Search results with Space, then press B to review an install plan. On Upgrades, select packages and press U to review and upgrade them together.
03 / SHORTCUTS
Scout also supports mouse input. The status bar shows actions available in the current view; press ? for the complete in-app help.
04 / STAY CURRENT
On the Upgrades tab, press C to check now or set a daily local time. Scout creates a current-user Windows Task Scheduler task. The first successful check establishes a baseline; later checks can notify you about new or changed unpinned upgrades or a failed check.
Scout keeps package sets, recent runs, update-check results, and schedule settings under %LOCALAPPDATA%\WinGetScout.
05 / UNDER THE HOOD
The complete portable ZIP uses the structured WinGet COM API where it can activate. If COM is unavailable, Scout falls back to the winget CLI and shows the active backend in its header. The standalone EXE download uses the CLI because it lacks the COM companion files.
Both backends support core search, install, upgrade, uninstall, pins, saved sets, history, and scheduled checks. COM can provide richer details, installer previews, version lists, live progress, and supported verify or repair actions. Some information depends on what the active backend exposes.
06 / HELP
Run winget --version. If the command is unavailable, install or update Microsoft App Installer, then open a new terminal.
Confirm the file came from the project's GitHub Release and compare its SHA-256 hash with the matching SHA256SUMS file. See the signing guide for the current status.
Make sure you extracted the whole ZIP, then check the active backend shown in Scout. CLI fallback still supports the core workflows. See COM activation details.
Press ? in Scout or open a GitHub issue.
07 / MORE
Read the README for contributor and build instructions, the known limitations, and the release notes.
Scout was inspired by Scott Hanselman's winget-tui and is built with Terminal.Gui. It is an independent MIT-licensed project.
MADE FOR WINDOWS 10 & 11
+Discover software, plan installs, manage upgrades, and keep track of changes from a terminal that feels at home on Windows.
+ +
+ THE WORKSPACE
Scout brings the useful parts of WinGet together without hiding what will happen to your system.
Search your WinGet sources, inspect publisher and version details, then choose exactly what to install.
Select several results and review a source-aware install plan before Scout changes anything.
See upgrades, run them together, and manage pins when a package should stay on a specific version.
Review recent runs, save package sets, export visible lists, and opt in to daily update checks.
A QUICK TOUR
Move between Search, Installed, and Upgrades with the keyboard. Details stay beside your list, so context is always close.

Captured from the real application with tuirec. Demo data is used in this recording.
GET STARTED
Download the portable ZIP for your PC, extract the whole folder, and run wingetscout.exe. No .NET runtime is needed.
Choose win-x64 or win-arm64.
Extract all files together to a folder you will keep.
Open a terminal there and run wingetscout.exe.
The WinGet community package is being prepared. The winget install command will be available after its submission is accepted.