Open-source project
zoicware/RemoveWindowsAI avatar
zoicware/RemoveWindowsAI

RemoveWindowsAI: a PowerShell script that strips Windows 11 AI components, and what it costs you

Force Remove Copilot, Recall and More in Windows 11

13,031 stars460 forksPowerShellMIT

At a glance

What is it?
RemoveWindowsAI is an MIT-licensed PowerShell 5.1 script that disables registry keys, removes Appx and CBS packages, and blocks AI features from returning after updates. It is a blunt instrument aimed at Windows 11 25H2 and later, and it demands you understand what it touches before you run it.
Who is it for?
Adopt RemoveWindowsAI if you administer Windows 11 25H2 machines where Copilot, Recall and the AI package set are explicitly out of scope, and you are willing to run Windows PowerShell 5.1 as Administrator with -backupMode first. Do not adopt it on Insider builds, on machines running PowerShell 7, or where you cannot accept that reverting requires -backupMode to have been enabled beforehand.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly PowerShell, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What RemoveWindowsAI actually removes, and who it is written for

Microsoft keeps adding AI surface area to Windows 11, and the README states that the 25H2 build and future builds will include increasingly more AI features and components. RemoveWindowsAI exists to remove that surface area rather than hide it. The README frames the goal as improving user experience, privacy and security, and the feature list is broad: disabling Copilot, Recall, Input Insights and typing data harvesting, Copilot in Edge, the AI Experiments Program in Paint, the AI Fabric Service, AI Actions, Voice Access, AI Voice Effects, AI in Settings Search, Gaming Copilot, Copilot in all Office apps, AI features in the Photos app, and Click to Do in the Snipping Tool. That is a long list, and it is a list of registry-backed switches rather than a curated privacy preset.

The audience is narrower than the topic suggests. This is not a tool for someone who wants to turn off one annoyance. It is for administrators and technically confident users who have decided that the AI component set on a given Windows 11 machine should not exist, and who are prepared to run an elevated script that modifies the component store. The README also points to a separate OtherAIFeatures.md guide for settings that cannot be disabled by script, which is an admission that the script is not a complete answer on its own. If you want a supported, reversible, per-feature toggle, this is the wrong shape of tool.

The mechanism: registry keys, Appx removal, CBS packages and a reinstall block

The script works on four layers, and the layering matters because each layer has a different persistence story.

The first layer is registry keys and policies. The README lists DisableRegKeys and DisableCopilotPolicies as separate options. DisableCopilotPolicies is described as disabling policies related to Copilot and Recall in IntegratedServicesRegionPolicySet.json, which is a configuration file rather than the registry. Those two mechanisms behave differently after a feature update, and the README does not claim otherwise.

The second layer is package removal. RemoveAppxPackages removes AI Appx packages, and the README notes this includes packages marked Nonremovable and WindowsWorkload. RemoveRecallFeature targets the Recall optional feature specifically. RemoveCBSPackages goes further and removes hidden and locked AI packages in the CBS (Component-Based Servicing) store. Touching CBS is the part that separates this script from a settings toggle, because the component store is what Windows Update uses to service the OS.

The third layer is prevention. PreventAIPackageReinstall is described as installing a custom Windows Update package to prevent reinstall of AI packages in the CBS store. That is the design answer to the obvious objection that Microsoft will simply put the packages back. It is also the most invasive item on the list, since it modifies update behaviour rather than a user-facing setting.

The fourth layer is cleanup and persistence. RemoveAIFiles performs a full system cleanup of remaining AI installers, registry keys and package files. RemoveWindowsAITasks forcibly removes Windows AI scheduled tasks. UpdateCleanupCheck creates a scheduled task that checks whether Windows has been updated and, if it has, removes newly installed AI features. HideAIComponents hides the AI Components settings page. DisableRewrite turns off the Rewrite feature in Notepad, and Disable Defender AI disables the Defender AI Platform host process and settings. The overall data flow is one-directional: enumerate, disable, remove, then re-check on a schedule.

Running it: the exact commands, options and the PowerShell 5.1 constraint

The README gives a single launch pattern. You run it from a PowerShell console as Administrator. The UI launch command is:

& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/zoicware/RemoveWindowsAI/main/RemoveWindowsAi.ps1")))

A shortened link is offered at https://kutt.to/RWAI, which the README says was shortened using an open source link shortener. Non-interactive runs take -nonInteractive plus either -AllOptions, or -Options with a comma-separated list, or -ExcludeOptions with a list to skip. The documented option names are DisableRegKeys, PreventAIPackageReinstall, DisableCopilotPolicies, RemoveAppxPackages, RemoveRecallFeature, RemoveCBSPackages, RemoveAIFiles, HideAIComponents, DisableRewrite, RemoveWindowsAITasks and UpdateCleanupCheck.

There is a separate path for classic apps. -InstallClassicApps takes photoviewer, mspaint, snippingtool, notepad or photoslegacy, and the README presents these as replacements for the modern apps it considers AI-infested.

Two constraints are stated plainly and should be treated as hard requirements. First, running the script with PowerShell 7 is no longer supported and, in the README's words, it WILL cause issues; you must use Windows PowerShell 5.1. Second, Backup Mode must be enabled to be able to fully revert, and enabling it creates a restore point. The revert command is the same launch pattern with -nonInteractive -revertMode -AllOptions. The README also warns that some third-party antivirus products will falsely flag the script and that it may need to be disabled or excluded, and recommends testing in a virtual machine if you are unsure.

Where it breaks: reinstall prevention, Insider builds and the revert gap

The most concrete limitation is stated by the project itself. Backup Mode has to be enabled before you can fully revert. If you run the script without -backupMode and later want the AI components back, the README does not promise a clean path. That is a real constraint, not a documentation gap you can work around after the fact, and it means the decision to run this script is effectively a decision made at install time.

The second limitation is the update treadmill. The README says the script will attempt to stay updated for the newest stable build, and adds that any feature added to an Insider build will not be added to the script until it reaches the latest stable release. So on Insider builds you are knowingly running behind. The UpdateCleanupCheck scheduled task is the mitigation, and it is also a liability: a scheduled task that removes newly installed features after an update is a component that can fire at a moment you did not choose.

The third is breadth. Disabling Copilot in all Office apps, removing Nonremovable Appx packages, removing hidden and locked CBS packages, and installing a custom Windows Update package are all actions with system-wide consequences. The README itself concedes that not all features and settings can be disabled via a script, which is why OtherAIFeatures.md exists. If you need a machine that stays in a supported Microsoft configuration, this script moves you out of it, and the README does not claim otherwise.

How it differs from a general debloat script

The obvious comparison is a general Windows debloat script, which typically removes a broad set of preinstalled Appx packages and disables telemetry and consumer features. The difference in approach is scope and persistence. A general debloat script removes packages and stops there; Windows Update is free to bring them back. RemoveWindowsAI adds PreventAIPackageReinstall, which the README describes as installing a custom Windows Update package to block reinstall in the CBS store, plus UpdateCleanupCheck, a scheduled task that re-removes AI features after an update. That is a maintenance loop rather than a one-shot cleanup.

The second difference is targeting. A general debloat script does not know what Copilot, Recall, Click to Do, the AI Fabric Service or the Defender AI Platform host process are. RemoveWindowsAI enumerates them by name as separate options, including narrower items such as DisableRewrite for Notepad and HideAIComponents for the settings page. The trade-off is that a script built around a specific, moving feature set needs ongoing maintenance in a way a generic package remover does not. The README's request for users to submit AI features or registry keys the script misses is a direct consequence of that design.

Maintenance, licence and what to verify before you run it

The project is MIT licensed, which permits use, modification and redistribution provided the licence notice is retained. That is permissive, and it is the reason a script like this can be embedded in imaging or provisioning workflows. It is not legal advice, and it does not change the fact that the script modifies Microsoft components: the MIT grant covers the script's own code, not any warranty about the state of the Windows installation you apply it to.

Maintenance cost is the real ongoing expense. The README commits to tracking the newest stable build and explicitly excludes Insider builds until features reach stable. That means every Windows feature update is a potential re-verification event, and the UpdateCleanupCheck task exists precisely because the maintainer expects features to reappear. Budget for re-reading the commit history at https://github.com/zoicware/RemoveWindowsAI/commits/main/ after each update, and for re-running the script or letting the scheduled task do it.

Before running anything, verify three things. Confirm you are on Windows PowerShell 5.1 and not PowerShell 7. Confirm you will run with -backupMode if there is any chance you need to revert, because the README ties full revert to that flag. And read Documentation.md and OtherAIFeatures.md, since the README points to both and the second one covers the AI settings the script cannot reach. If your antivirus flags the download, that is expected per the README, but you should still confirm the script you fetched matches the repository before excluding it.

Editorial conclusion

Adopt RemoveWindowsAI if you administer Windows 11 25H2 machines where Copilot, Recall and the AI package set are explicitly out of scope, and you are willing to run Windows PowerShell 5.1 as Administrator with -backupMode first. Do not adopt it on Insider builds, on machines running PowerShell 7, or where you cannot accept that reverting requires -backupMode to have been enabled beforehand. Before running anything, read Documentation.md and OtherAIFeatures.md, confirm the script's current commit matches the stable build you are on, and verify your third-party antivirus will not quarantine the downloaded script.

Official sources

  1. Issues
  2. License: MIT
  3. README
  4. zoicware/RemoveWindowsAI on GitHub
Community notes

Community notes