Update Forge
Free and open source software updater

Keep every app up to date.

Update Forge finds the software installed on your Windows PC, shows which apps have a newer version, and installs updates through trusted package managers, on demand or on a schedule. It tells you plainly what it can and cannot update.

  • MIT licensed
  • No telemetry
  • No accounts or ads
  • Windows 11
The Update Forge dashboard after a scan: 140 installed applications, 2 updates available, 50 up to date and 62 that require attention, with Claude Code and PowerShell listed as Update ready
The dashboard after a scan. Updates ready to install are listed with one click each.

Every update in one place

One list for everything on the PC, whichever tool installed it, with updates that are checked after they run.

Finds what you have

Reads WinGet packages, the Windows uninstall registry (read-only), Microsoft Store and MSIX apps, and Scoop, Chocolatey and npm global packages when they are installed.

WinGet, Store, Scoop, Chocolatey, npm

Honest status

An unknown version is never reported as newer, and Update Forge never invents installers or switches. If it cannot update something, it says so.

Faster batches

Installs up to three WinGet updates at once (adjustable) and retries when Windows Installer is busy. Other package managers run one at a time.

Checked after install

After each install it re-reads the installed version. A "success" that left the old version in place is reported as a failure, not a win.

Survives interruptions

If the app closes mid-install, the next run compares the real installed version and records what actually happened in your history.

Clear failures

When an app is open and its files are locked, you see which process to close. A staged Store update says "reopen the app", not "failed".

Runs on a schedule

A per-user Task Scheduler task scans even when the window is closed. In Automatic Safe mode it installs only supported, non-elevated updates.

Optional

App and command line

A Fluent desktop app with light and dark themes and a tray icon, plus updateforge-cli with scan, outdated, update --all, export, bundle and --json.

WPF and CLI

Export to CSV

Save the list you are looking at, with its search and filter applied, as a spreadsheet file. Formula-like names are neutralised so the file is safe to open in Excel.

GUI and CLI

Package bundles

Save your WinGet apps to a bundle file, then import it on a new PC to install whatever is missing. Bundles are treated as untrusted: every entry is validated first.

GUI and CLI

Skip or ignore

Skip one version and still be offered the next, or exclude an app entirely. WinGet pins and Scoop holds are respected.

Diagnostics you can read

Export a redacted ZIP of logs and provider state for a bug report, and review it before you attach it anywhere.

Redacted

See what is installed and what changed

Search every application on the PC, and keep a history of each update with its result.

The Installed applications page filtered to Visual, listing Microsoft Visual C++ runtimes and Visual Studio components with their versions, sources and Up to date status
Installed applications, searched and filtered, each with its source and status.
The Update history page listing two Microsoft Visual C++ Redistributable updates and a Visual Studio Build Tools update, all Completed through winget with exit code 0
Update history with previous and new versions, duration, result and exit code.

One honest label per app

Every application gets exactly one status, so you always know what Update Forge can do and what it cannot.

  • Update ready A newer version exists and Update Forge can install it for you.
  • Approval required Needs administrator rights or your confirmation, so it is never done silently.
  • Manual update A newer version exists, but it has to be installed by hand.
  • No update method Found on your PC, but no package manager can update it.
  • Unknown The installed version cannot be compared safely, so it is not called "newer".

Careful by default

Updating software is a trust decision. Update Forge keeps its own behaviour small and checkable.

No telemetry

No accounts, no ads and no phoning home. Your inventory and history stay in a local database on your PC.

Official tools only

It calls package-manager command lines at fixed paths with strictly validated arguments. No shell strings, no --force and no hash bypass. Pins and holds are respected.

You stay in control

Manual mode is the default. It never restarts your PC automatically, and the scheduled task never runs as SYSTEM and never elevates.

What it can update

Source Status
WinGet packages Discovery, update detection, pins and silent installs. Needs WinGet (App Installer).
Chocolatey Supported when installed. Upgrades need administrator rights, so run Update Forge as administrator.
Scoop Supported when installed. Global installs need administrator rights.
npm (global packages) Supported when Node.js is installed. Update and install by exact version; linked packages are left alone.
Microsoft Store apps Listed, with a handoff to the Store. Windows has no supported way to update other apps for you.
Other installed software Shown from the uninstall registry for inventory only. Update Forge will not guess an installer.

Built for Windows 11 x64. Windows 10 2004 and later is expected to work but is untested. ARM64 is not supported yet.

Build and run it

Update Forge is a 0.1.0 release candidate and there is no packaged download yet. Until the first release, build it from source in a few commands. A per-user MSI and a portable ZIP, each with SHA-256 checksums, are planned for GitHub Releases.

  1. Install the prerequisites

    You need Git, the .NET 10 SDK and WinGet (App Installer, included with Windows 11).

    winget install Git.Git Microsoft.DotNet.SDK.10
  2. Get the code and build it

    git clone https://github.com/mikeholp87/update-forge.git
    cd update-forge
    dotnet build UpdateForge.CI.slnf -c Release
  3. Run the app

    dotnet run --project src/UpdateForge.Desktop -c Release

    To update Chocolatey or system-wide packages, start it from an administrator terminal.

  4. Or use the command line

    dotnet run --project src/UpdateForge.Cli -c Release -- outdated
    dotnet run --project src/UpdateForge.Cli -c Release -- update --all

    Add --json for scripts. Read the known limitations before relying on it unattended.

Questions

Does Update Forge collect or send any data?

No. There is no telemetry and no account. The only network traffic is your package managers (WinGet and friends) fetching the updates you ask for.

Why did an update fail with "the application is running"?

An installer cannot replace files that a running program has open. Close the app named in the message and retry. Some Store apps install fine but only apply the update the next time you reopen them, which Update Forge shows as "restart required" instead of failed.

Do I need to run it as administrator?

Not for most WinGet updates. Chocolatey upgrades and some system-wide installers do need it, and Update Forge leaves those as "approval required" unless you started it elevated. The scheduled background run never elevates.

Will it restart my PC?

Never automatically. If an update needs a restart, Update Forge tells you and leaves the timing to you.

Why is an app labelled "Manual update" or "No update method"?

Windows cannot update arbitrary third-party software. If no supported package manager knows the app, or it needs interaction, Update Forge lists it without pretending it can install anything.

Where are my logs, history and settings?

In %LOCALAPPDATA%\UpdateForge: the log files, and a local SQLite database with your inventory and update history. Use the diagnostics export for a redacted ZIP that is safe to attach to a bug report.

Where do I report a bug or a security issue?

Open an issue on GitHub. Read the security policy first for anything sensitive.