How to Customize Windows Search with Win11Debloat: A Complete Guide

Win11Debloat provides a declarative, PowerShell-driven framework that lets you toggle Windows Search settings via JSON-defined features and registry imports, enabling customization through both a GUI and command-line interfaces.

The open-source Win11Debloat repository by Raphire streamlines Windows 11 customization by automating registry modifications that would otherwise require manual configuration. This guide explains how to customize Windows Search with Win11Debloat using its modular architecture of JSON feature definitions, registry payload files, and PowerShell execution engines.

Architecture Overview: JSON, Registry, and PowerShell

According to the Raphire/Win11Debloat source code, the application implements a data-driven, three-layer architecture for modifying Windows Search behavior without direct registry editing.

1. Feature Definitions in Config/Features.json

The Config/Features.json file acts as the single source of truth for all togglable search options. Each entry specifies a display name, description, target registry file, and logical group.

As defined in the source configuration, the Search group contains four primary features:

{
  "name": "Show Search Box",
  "description": "Show the search box on the taskbar",
  "registryFile": "Show_Search_Box.reg",
  "group": "Search"
}

The JSON structure defines these specific search customizations:

  • Show Search Box — maps to Show_Search_Box.reg
  • Hide Search Taskbar — maps to Hide_Search_Taskbar.reg
  • Disable Search History — maps to Disable_Search_History.reg
  • Disable Search Highlights — maps to Disable_Search_Highlights.reg

2. Registry Payloads in the Regfiles/ Directory

The actual Windows behavior modifications reside in standard .reg files within the Regfiles/ directory. As implemented in Raphire/Win11Debloat, these files target specific Windows Search registry keys:

  • Show_Search_Box.reg sets SearchboxTaskbarMode to 2 (visible search box)
  • Hide_Search_Taskbar.reg sets SearchboxTaskbarMode to 0 (hidden taskbar search)
  • Disable_Search_History.reg disables IsDeviceSearchHistoryEnabled
  • Disable_Search_Highlights.reg disables IsDynamicSearchBoxEnabled to remove dynamic branded content

3. PowerShell Execution Engine

Two critical PowerShell components handle the application of registry changes:

Scripts/Features/ImportRegistryFile.ps1 contains the core ImportRegistryFile function that validates file existence and executes reg import operations. This function supports both standard user mode and Sysprep mode for default user profile customization.

Scripts/GUI/Show-AppSelectionWindow.ps1 generates the graphical checklist interface by parsing Features.json. When users confirm selections, this script invokes ImportRegistryFile with the corresponding registry file paths from the Regfiles/ directory.

Using the GUI Interface

Launch the main entry script to access the visual feature selector:

.\Win11Debloat.ps1

In the application window, expand the Search group and select your desired options. Clicking Apply triggers the underlying PowerShell engine to import the appropriate .reg files.

Command-Line Registry Imports

For automation or remote deployment, import registry files directly using the helper function:


# Load the registry import function

. .\Scripts\Features\ImportRegistryFile.ps1

# Show the search box on the taskbar

ImportRegistryFile -message "Enabling Search Box" -path "Show_Search_Box.reg"

# Disable search history tracking

ImportRegistryFile -message "Disabling Search History" -path "Disable_Search_History.reg"

Applying Changes During Sysprep

To configure Windows Search for new user profiles in a deployment image, use Sysprep mode. In Win11Debloat.ps1, setting the Sysprep parameter ensures registry changes apply to the default user profile hive:


# Enable Sysprep mode for default user configuration

$script:Params = @{ Sysprep = $true }

# Apply search box visibility and disable highlights for new users

ImportRegistryFile -message "Configure Search for Sysprep" -path "Show_Search_Box.reg"
ImportRegistryFile -message "Remove Search Highlights" -path "Disable_Search_Highlights.reg"

Extending Search Customization

The modular architecture supports adding new search tweaks without modifying core PowerShell code.

  1. Create a new .reg file in Regfiles/ (e.g., Show_Search_Icon_Only.reg) with your desired registry modifications
  2. Append an entry to Config/Features.json:
{
  "name": "Show Search Icon Only",
  "description": "Displays only the search icon without text box",
  "registryFile": "Show_Search_Icon_Only.reg",
  "group": "Search"
}
  1. Run Win11Debloat.ps1 again—the new option appears automatically in the Search group according to the dynamic UI generation logic in Show-AppSelectionWindow.ps1.

Summary

  • Declarative configuration in Config/Features.json defines all available Windows Search customization options
  • Registry payload files in Regfiles/ contain the actual Windows registry modifications for search behavior
  • The ImportRegistryFile function in Scripts/Features/ImportRegistryFile.ps1 handles safe registry import operations for both user and Sysprep contexts
  • Customizations can be applied via GUI, command line, or deployment scripts without manual registry editing
  • The architecture supports extensibility by simply adding new .reg files and corresponding JSON entries

Frequently Asked Questions

According to the Raphire/Win11Debloat source code, the utility modifies SearchboxTaskbarMode to control taskbar visibility (setting values 0 for hidden or 2 for visible box), IsDeviceSearchHistoryEnabled to toggle local search history storage, and IsDynamicSearchBoxEnabled to disable dynamic search highlights. These specific key modifications are implemented through Regfiles/Show_Search_Box.reg, Disable_Search_History.reg, and Disable_Search_Highlights.reg respectively.

Can I customize Windows Search without using the GUI?

Yes. As implemented in Scripts/Features/ImportRegistryFile.ps1, you can dot-source the PowerShell function and call ImportRegistryFile directly with the -path parameter pointing to any .reg file in the Regfiles/ directory. This method bypasses the GUI entirely and supports full automation via command-line scripts or remote management tools.

How do I apply search customizations to a Windows image during Sysprep?

Win11Debloat supports Sysprep mode through the $script:Params hash table. When the Sysprep key is set to $true, the ImportRegistryFile function imports registry changes into the default user profile hive rather than the current user session. This ensures that all new accounts created on the deployed image inherit the configured Windows Search settings, such as disabled highlights or specific taskbar visibility modes.

Is it safe to add my own search tweaks to Win11Debloat?

Yes, the architecture is specifically designed for safe extensibility. Adding custom search options requires only creating a valid .reg file in Regfiles/ and adding a corresponding feature entry to Config/Features.json with the registryFile and group properties properly set. The UI generation logic in Scripts/GUI/Show-AppSelectionWindow.ps1 dynamically builds the interface from this JSON data, requiring no modifications to the PowerShell source code itself.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →