<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Windows Mode</title>
    <description>The latest articles on DEV Community by Windows Mode (@windowsmode).</description>
    <link>https://dev.to/windowsmode</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4151032%2Ff6751a7f-44da-4791-9706-2e89e37b1332.png</url>
      <title>DEV Community: Windows Mode</title>
      <link>https://dev.to/windowsmode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/windowsmode"/>
    <language>en</language>
    <item>
      <title>Before You Pipe Microsoft's One-Line Dev Box Setup into iex, Read What It Changes</title>
      <dc:creator>Windows Mode</dc:creator>
      <pubDate>Wed, 28 Oct 2026 08:06:20 +0000</pubDate>
      <link>https://dev.to/windowsmode/before-you-pipe-microsofts-one-line-dev-box-setup-into-iex-read-what-it-changes-27km</link>
      <guid>https://dev.to/windowsmode/before-you-pipe-microsofts-one-line-dev-box-setup-into-iex-read-what-it-changes-27km</guid>
      <description>&lt;p&gt;At Build 2026 Microsoft announced two things that matter if you set up Windows machines for coding: &lt;strong&gt;Windows Developer Configurations&lt;/strong&gt;, a one-command setup for a fresh dev box, and &lt;strong&gt;Coreutils for Windows&lt;/strong&gt;, native builds of &lt;code&gt;ls&lt;/code&gt;, &lt;code&gt;cp&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt; and friends. Both were announced as generally available.&lt;/p&gt;

&lt;p&gt;The setup is one line of PowerShell piped into &lt;code&gt;iex&lt;/code&gt;. That is convenient, and it is also exactly the kind of command you should read before running on a machine you care about. So we read the repo docs and the scripts. Here is what actually happens, what changes on your machine, and the parts that could surprise you.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;irm https://aka.ms/devconfig/standard/setup.ps1 | iex&lt;/code&gt; installs about 18 packages with winget, changes Explorer, Start, search and theme settings, installs WSL with Ubuntu, and may restart your PC once.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standard&lt;/strong&gt; runs the bootstrap with &lt;code&gt;-Action Partial&lt;/code&gt;. &lt;strong&gt;Full&lt;/strong&gt; runs &lt;code&gt;-Action Full&lt;/code&gt; and adds Developer Mode, Sudo, widgets off, two Edge policies and Remote Desktop.&lt;/li&gt;
&lt;li&gt;The scripts verify Microsoft Authenticode signatures on everything they download, but &lt;code&gt;irm | iex&lt;/code&gt; itself does not verify the small wrapper script. You can check it yourself first.&lt;/li&gt;
&lt;li&gt;The uninstall script &lt;strong&gt;permanently deletes the Ubuntu distro&lt;/strong&gt; without asking, and it removes the tools it manages even if you had them installed before.&lt;/li&gt;
&lt;li&gt;Coreutils for Windows installs with &lt;code&gt;winget install Microsoft.Coreutils&lt;/code&gt;. In PowerShell several commands clash with built-in aliases, which matters for scripts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The one-liners
&lt;/h2&gt;

&lt;p&gt;From the &lt;a href="https://github.com/microsoft/WindowsDeveloperConfig" rel="noopener noreferrer"&gt;WindowsDeveloperConfig repo&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Standard experience&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://aka.ms/devconfig/standard/setup.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Full experience&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://aka.ms/devconfig/full/setup.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Uninstall (covers both)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://aka.ms/devconfig/standard/uninstall.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The aka.ms links redirect to &lt;code&gt;setup-standard.ps1&lt;/code&gt;, &lt;code&gt;setup-full.ps1&lt;/code&gt; and &lt;code&gt;uninstall.ps1&lt;/code&gt; in the repo. Each wrapper is about 20 lines. It downloads &lt;code&gt;bootstrap.ps1&lt;/code&gt; from a &lt;strong&gt;pinned commit&lt;/strong&gt;, checks that the signer is Microsoft Corporation, and only then runs it with &lt;code&gt;-Action Partial&lt;/code&gt;, &lt;code&gt;-Action Full&lt;/code&gt; or &lt;code&gt;-Action Uninstall&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The repo is honest about the gap: "&lt;code&gt;irm | iex&lt;/code&gt; does not verify the wrapper's own signature; it trusts the HTTPS endpoint." If you want to check the entry script too, download it and look before you run anything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;TEMP&lt;/span&gt;&lt;span class="s2"&gt;\setup-standard.ps1"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Invoke-WebRequest&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://aka.ms/devconfig/standard/setup.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-OutFile&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Get-AuthenticodeSignature&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Format-List&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Status&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;SignerCertificate&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;notepad&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It is short enough to read in a minute, and it is a good habit for any &lt;code&gt;irm | iex&lt;/code&gt; install, not just this one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What gets installed
&lt;/h2&gt;

&lt;p&gt;The Standard setup installs these with winget:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Packages&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Shell and terminal&lt;/td&gt;
&lt;td&gt;Windows Terminal, Intelligent Terminal, PowerShell 7, Oh My Posh&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source control&lt;/td&gt;
&lt;td&gt;Git, GitHub CLI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Editors and AI&lt;/td&gt;
&lt;td&gt;VS Code, GitHub Copilot CLI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Runtimes&lt;/td&gt;
&lt;td&gt;.NET SDK 10, Python 3.14 + uv, Node.js LTS + nvm for Windows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloud&lt;/td&gt;
&lt;td&gt;Azure CLI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Utilities&lt;/td&gt;
&lt;td&gt;Coreutils for Windows, Windows App CLI, PowerToys, Visual C++ Redistributable&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;It then sets PowerShell 7 as the default Terminal profile, installs Cascadia Code NF and Cascadia Mono NF for all users, adds a GitHub Copilot profile to the Terminal dropdown, and installs WSL plus Ubuntu with &lt;code&gt;wsl --install -d Ubuntu --no-launch&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Practical numbers from the docs: roughly &lt;strong&gt;30 minutes&lt;/strong&gt; on a clean machine, about &lt;strong&gt;15 GB&lt;/strong&gt; of free disk space, &lt;strong&gt;up to two UAC prompts&lt;/strong&gt;, and Windows 11 only. Windows 10 is not supported.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it changes on your machine
&lt;/h2&gt;

&lt;p&gt;This is the part worth reading twice. Some highlights from the documented registry changes and the "Known limitations" table:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explorer:&lt;/strong&gt; file extensions and hidden files shown, full path in the title bar, Explorer opens to This PC, no recent or frequent items in Quick Access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start and search:&lt;/strong&gt; no web results in search, no Start recommendations, no search highlights.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notifications:&lt;/strong&gt; Do Not Disturb is turned on &lt;strong&gt;globally&lt;/strong&gt;, not just for quiet hours, until you turn it back off.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Theme:&lt;/strong&gt; dark mode for apps and the system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Long paths:&lt;/strong&gt; &lt;code&gt;LongPathsEnabled&lt;/code&gt; set to &lt;code&gt;1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node:&lt;/strong&gt; both Node.js LTS and nvm for Windows get installed. The docs suggest uninstalling Node.js first if you want nvm to own the PATH entry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your PowerShell profile:&lt;/strong&gt; an Oh My Posh block is added to &lt;code&gt;$PROFILE&lt;/code&gt;. If the profile already has other initialization, setup leaves it alone and flags it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Terminal settings:&lt;/strong&gt; &lt;code&gt;settings.json&lt;/code&gt; is round-tripped through JSON, so &lt;strong&gt;comments are lost&lt;/strong&gt;. A &lt;code&gt;settings.json.bak&lt;/code&gt; is written first.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;Full&lt;/strong&gt; setup adds more:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developer Mode and Sudo (inline mode).&lt;/li&gt;
&lt;li&gt;Widgets turned off through policy.&lt;/li&gt;
&lt;li&gt;Two Edge settings written as policy, so Edge will say it is "managed by your organization".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote Desktop allowed&lt;/strong&gt; (&lt;code&gt;fDenyTSConnections&lt;/code&gt; set to &lt;code&gt;0&lt;/code&gt;). The docs note the firewall rule is not opened, but it is still a change to the machine's security posture.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What it does &lt;strong&gt;not&lt;/strong&gt; do, per the docs: no telemetry, no sign-ins, no credential changes, no Windows Defender changes. Git and the GitHub CLI are installed but not configured, so you still need &lt;code&gt;git config user.name&lt;/code&gt; and &lt;code&gt;gh auth login&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;There is also no dry run (&lt;code&gt;-WhatIf&lt;/code&gt;) and no switch to skip individual packages. If you want a different package list, the documented path is to clone the repo, edit the files under &lt;code&gt;src\windows-dev-config&lt;/code&gt;, and run the unsigned source with &lt;code&gt;-AllowUnsigned&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The restart and the uninstall
&lt;/h2&gt;

&lt;p&gt;WSL needs virtualization, so setup may restart the machine. It warns you and &lt;strong&gt;restarts after 10 seconds&lt;/strong&gt;, so save your work before you start. A scheduled task called &lt;code&gt;WindowsDevConfigResume&lt;/code&gt; picks the run up after you sign back in. If nothing happens:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Get-ScheduledTask&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-TaskName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;WindowsDevConfigResume&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Re-running the original one-liner is safe. Steps that are already done report &lt;code&gt;already OK&lt;/code&gt; and are skipped. Logs go to &lt;code&gt;devconfig-log.txt&lt;/code&gt; under &lt;code&gt;%ProgramData%\CalmOS&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The uninstall deserves a warning of its own. According to the docs it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Permanently deletes Ubuntu and its files&lt;/strong&gt;, without confirmation.&lt;/li&gt;
&lt;li&gt;Removes the tools it manages, including copies you had installed before running setup.&lt;/li&gt;
&lt;li&gt;Resets settings to defaults rather than restoring what you had before (themes go back to light, for example).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have real work inside that Ubuntu distro, export it first:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;wsl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--export&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Ubuntu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;D:\backup\ubuntu.tar&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Coreutils for Windows
&lt;/h2&gt;

&lt;p&gt;Coreutils for Windows is a Microsoft-maintained build of the Rust &lt;a href="https://github.com/uutils/coreutils" rel="noopener noreferrer"&gt;uutils&lt;/a&gt; projects (coreutils, findutils and grep), shipped as one multi-call binary. It is MIT licensed and has x64 and ARM64 builds. The current release at the time of writing is &lt;code&gt;v2026.9.3&lt;/code&gt;. The Standard setup installs it, or you can install it alone:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;winget&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Microsoft.Coreutils&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then the usual pipelines work in CMD and PowerShell:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;grep&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-rn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"TODO"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;wc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-l&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*.log"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-mtime&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;7&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A few things we would want to know before relying on it in scripts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PowerShell 7.4 or later is required&lt;/strong&gt;, and 7.6 or later is recommended for &lt;code&gt;~&lt;/code&gt; support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alias clashes.&lt;/strong&gt; In PowerShell, &lt;code&gt;cat&lt;/code&gt;, &lt;code&gt;cp&lt;/code&gt;, &lt;code&gt;ls&lt;/code&gt;, &lt;code&gt;mv&lt;/code&gt;, &lt;code&gt;pwd&lt;/code&gt;, &lt;code&gt;rm&lt;/code&gt;, &lt;code&gt;sleep&lt;/code&gt;, &lt;code&gt;sort&lt;/code&gt;, &lt;code&gt;tee&lt;/code&gt; and others share names with built-in aliases. The installer hooks into PSReadLine to rewrite what you type interactively, but it does not remove the aliases. Check what a name resolves to with &lt;code&gt;Get-Command ls -All&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Some commands are not shipped&lt;/strong&gt; because they clash with Windows built-ins or need POSIX features: &lt;code&gt;dir&lt;/code&gt;, &lt;code&gt;more&lt;/code&gt;, &lt;code&gt;whoami&lt;/code&gt;, &lt;code&gt;kill&lt;/code&gt; and &lt;code&gt;timeout&lt;/code&gt; among them. &lt;code&gt;chmod&lt;/code&gt;, &lt;code&gt;chown&lt;/code&gt; and &lt;code&gt;uname&lt;/code&gt; are dropped too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No &lt;code&gt;/dev/null&lt;/code&gt;.&lt;/strong&gt; Use &lt;code&gt;NUL&lt;/code&gt;, as in &lt;code&gt;find . -name "*.log" &amp;gt; NUL&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CRLF line endings&lt;/strong&gt; can still trip byte-oriented tools like &lt;code&gt;uniq&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;You can turn off individual utilities with &lt;code&gt;coreutils-manager disable &amp;lt;utility name&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One detail that may confuse you: the Build blog calls Coreutils generally available, but the repo README still says "This project is in preview." Treat it like any young tool and test your scripts before switching a team over.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our take
&lt;/h2&gt;

&lt;p&gt;For a brand new machine or a throwaway VM, the Standard setup is a sensible default, and the signing and pinned-commit design is better than most &lt;code&gt;irm | iex&lt;/code&gt; installers. On a machine you already use every day, we would read the settings list first, skip Full unless you actually want Remote Desktop and Edge policies, and back up WSL before you ever touch the uninstall script.&lt;/p&gt;

&lt;p&gt;Have you tried Windows Developer Config or Coreutils for Windows on a real machine yet? Did it save you time, or did it change something you had to undo? And would you trust a one-line setup script on your main dev box, or only on a fresh VM?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;We first wrote about the Build 2026 developer announcements on &lt;a href="https://www.windowsmode.com/build-2026-improving-windows-as-the-trusted-platform-for-development/" rel="noopener noreferrer"&gt;Windows Mode&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>windows</category>
      <category>powershell</category>
      <category>devops</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Your Agent Should Not Run as You: What Windows Now Offers for Containing AI Agents</title>
      <dc:creator>Windows Mode</dc:creator>
      <pubDate>Wed, 21 Oct 2026 08:05:59 +0000</pubDate>
      <link>https://dev.to/windowsmode/your-agent-should-not-run-as-you-what-windows-now-offers-for-containing-ai-agents-1g0j</link>
      <guid>https://dev.to/windowsmode/your-agent-should-not-run-as-you-what-windows-now-offers-for-containing-ai-agents-1g0j</guid>
      <description>&lt;p&gt;If you run a coding agent on Windows today, its shell commands usually run with your full user rights: your SSH keys, your browser profile, your whole home folder. Microsoft is now putting OS-level boundaries around agents, and a lot of it lands on the developer side first.&lt;/p&gt;

&lt;p&gt;We spent some time reading the official docs, the SDK repo and the Microsoft blog posts behind this. Below is our take on what it means if you build or run agents on Windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft Execution Containers (MXC)&lt;/strong&gt; is an open-source SDK (Rust, .NET, Node) that runs agent workloads inside a policy you define: files, network, UI and the process itself. Microsoft announced it as generally available on 7 October 2026.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backends differ.&lt;/strong&gt; Process containers are lightweight. Session containers run the agent under a separate Windows account and session. There are also WSL containers and an experimental MicroVM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Some agents already use it.&lt;/strong&gt; GitHub Copilot sandboxes shell commands and local MCP servers with MXC, and you can configure it with &lt;code&gt;/sandbox&lt;/code&gt; in the Copilot CLI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The agent workspace&lt;/strong&gt; (Settings &amp;gt; System &amp;gt; AI Components &amp;gt; Experimental agentic features) is a separate preview feature that gives agents like Copilot Actions their own account and desktop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP on Windows&lt;/strong&gt; has an on-device registry (&lt;code&gt;odr.exe&lt;/code&gt;) that runs packaged MCP servers in a contained agent session by default. This is still preview.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Still coming:&lt;/strong&gt; Intune policy for MXC process containers, Entra-based agent identity and Agent 365 controls for local agents.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The problem in one example
&lt;/h2&gt;

&lt;p&gt;Microsoft's own example is a good one. A coding agent is asked to update a website. It needs read and write access to the repo and your build tools. It may need to &lt;em&gt;read&lt;/em&gt; the production server config to understand the deployment. It should never &lt;em&gt;change&lt;/em&gt; that config.&lt;/p&gt;

&lt;p&gt;Without a boundary, the agent may decide that editing the config is the fastest way to finish the task. From the model's point of view that is reasonable. From yours it is an outage.&lt;/p&gt;

&lt;p&gt;The core idea in the &lt;a href="https://blogs.windows.com/windowsdeveloper/2026/10/07/microsoft-execution-containers-policy-driven-containment-for-ai-agents/" rel="noopener noreferrer"&gt;MXC announcement&lt;/a&gt; is that "an agent cannot be its own security authority." The policy lives outside the agent, so neither the model nor the code it writes can grant itself more access.&lt;/p&gt;

&lt;h2&gt;
  
  
  What MXC actually is
&lt;/h2&gt;

&lt;p&gt;MXC is a library you build into your app or agent harness. You describe the container and its rules, and MXC picks a backend and launches the workload inside it. It covers Windows, Linux and macOS. The &lt;a href="https://github.com/microsoft/mxc" rel="noopener noreferrer"&gt;microsoft/mxc repo&lt;/a&gt; is MIT licensed and publishes SDKs for Rust (&lt;code&gt;mxc-sdk&lt;/code&gt; on crates.io), .NET (&lt;code&gt;Microsoft.Mxc.Sdk&lt;/code&gt; on NuGet) and Node (&lt;code&gt;@microsoft/mxc-sdk&lt;/code&gt; on npm).&lt;/p&gt;

&lt;p&gt;The policy has five areas:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Policy area&lt;/th&gt;
&lt;th&gt;What it controls&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Containment&lt;/td&gt;
&lt;td&gt;Which backend runs the workload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Process&lt;/td&gt;
&lt;td&gt;Command, arguments, working directory, environment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File system&lt;/td&gt;
&lt;td&gt;Read-write paths, read-only paths, denied paths&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network&lt;/td&gt;
&lt;td&gt;Inbound and outbound access, including loopback to local services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User interface&lt;/td&gt;
&lt;td&gt;Access to the desktop, clipboard and display&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is the Node sample from the repo README. It runs a command with outbound network denied by default:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;spawn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;ContainerRequest&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@microsoft/mxc-sdk/v1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ContainerRequest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;command&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;node -e "console.log(&lt;/span&gt;&lt;span class="se"&gt;\'&lt;/span&gt;&lt;span class="s1"&gt;hello from container&lt;/span&gt;&lt;span class="se"&gt;\'&lt;/span&gt;&lt;span class="s1"&gt;)"&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;network&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;egress&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;default&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;deny&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;timeoutMs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="nx"&gt;_000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;child&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;spawn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Picking a backend
&lt;/h2&gt;

&lt;p&gt;On Windows, the main options are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Process container.&lt;/strong&gt; This is the default and the fast one. On Windows it uses AppContainer. It suits coding agents and model-generated scripts where the inner loop needs to stay quick.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session container&lt;/strong&gt; (&lt;code&gt;isolation_session&lt;/code&gt; in the SDK). This runs the agent under a separate Windows account and session, with its own desktop, clipboard, UI and input. It is Windows only. It fits long-running agents and UI automation, and it is the backend that gives you a distinct identity to audit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WSL container&lt;/strong&gt; (&lt;code&gt;wslc&lt;/code&gt;). This is for Linux-first toolchains that need Linux packages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MicroVM.&lt;/strong&gt; This uses hardware-backed isolation for higher-risk work like running untrusted code. It is marked experimental, as are the Windows Sandbox and Hyperlight backends in the repo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is a minimum Windows build. Per the repo's &lt;a href="https://github.com/microsoft/mxc/blob/main/docs/backends/process-container/os-version-support.md" rel="noopener noreferrer"&gt;OS version table&lt;/a&gt;, process containers need Windows 11 24H2/25H2 build 26100.9278/26200.9278 (August 2026 update) or later. Session containers need 26100.9550/26200.9550 (September 2026 update). On 26H2, both need 26300.9550. If your CI runners or test VMs lag on updates, check this first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing a policy without guessing
&lt;/h2&gt;

&lt;p&gt;This is the part we found most useful. Nobody knows every path an agent will touch before running it, so MXC has three modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enforcement:&lt;/strong&gt; blocks anything not granted. This is for production.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learning:&lt;/strong&gt; still blocks, but records each denial in a JSON activity report.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Permissive:&lt;/strong&gt; allows everything and records what &lt;em&gt;would&lt;/em&gt; have been blocked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The activity report only works with process containers on Windows. Microsoft's guidance matches what we would do anyway: run in Learning mode, read the denials, and grant only what the workload really needs.&lt;/p&gt;

&lt;p&gt;Two things to watch. First, the README warns that the &lt;code&gt;--audit&lt;/code&gt; flag on the &lt;code&gt;wxc-exec.exe&lt;/code&gt; test executor "turns off all sandbox security" for that run, so never use it on untrusted code. Second, the README says it plainly: "Your application will hit access issues when running in a sandbox, until you've had time to tune your containment rules." Expect a few rounds of tuning.&lt;/p&gt;

&lt;p&gt;Microsoft also asks agent developers to plan for organisation policy that is &lt;em&gt;stricter&lt;/em&gt; than yours. If a resource is blocked, the agent should explain that and ask for the right access, not fail silently. That is a UX requirement worth building in now.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you already use GitHub Copilot
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://commandline.microsoft.com/local-models-sandboxed-tools-github-windows/" rel="noopener noreferrer"&gt;GitHub and Windows post&lt;/a&gt; explains how Copilot uses MXC. On Windows it uses the BaseContainer tier of the ProcessContainer backend. With sandboxing on, shell commands, local MCP servers and language servers run inside the process boundary by default.&lt;/p&gt;

&lt;p&gt;Two caveats matter for threat modelling:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copilot's &lt;strong&gt;built-in file tools&lt;/strong&gt; run inside Copilot itself. They are checked against the policy by the agent harness, not by OS process isolation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote MCP servers&lt;/strong&gt; sit outside the local sandbox.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To check or change your settings, run &lt;code&gt;/sandbox&lt;/code&gt; in the Copilot CLI. In the Copilot app, open settings with the gear icon, pick your project and turn on &lt;strong&gt;Sandbox new sessions&lt;/strong&gt;. By default the working directory is read-write and most of the rest of the system is read-only or blocked.&lt;/p&gt;

&lt;p&gt;Microsoft lists OpenClaw, OpenAI Codex, Replit, LM Studio and Unsloth AI as also supporting MXC. Claude Code, Manus, Perplexity, Raycast and others "will be releasing support", with no dates given.&lt;/p&gt;

&lt;h2&gt;
  
  
  The agent workspace is a different thing
&lt;/h2&gt;

&lt;p&gt;It is easy to mix these up. The &lt;strong&gt;agent workspace&lt;/strong&gt; comes from the Experimental agentic features setting, which is used by Copilot Actions. According to &lt;a href="https://support.microsoft.com/en-us/windows/ai/ai-features/experimental-agentic-features" rel="noopener noreferrer"&gt;Microsoft Support&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is off by default. Only an admin can turn it on, and then it is on for every user on the device.&lt;/li&gt;
&lt;li&gt;It creates separate &lt;strong&gt;agent accounts&lt;/strong&gt; and an &lt;strong&gt;agent workspace&lt;/strong&gt; with its own desktop, apart from the user's session.&lt;/li&gt;
&lt;li&gt;Agents can request access to six known folders: Documents, Downloads, Desktop, Music, Pictures and Videos. Agent accounts can also access any folder that all authenticated users can access, such as public user profiles.&lt;/li&gt;
&lt;li&gt;On preview builds 26100.7344 and later, you can set file access per agent under &lt;strong&gt;Settings &amp;gt; System &amp;gt; AI Components &amp;gt; Agents&lt;/strong&gt;, with the options Allow always, Ask every time or Never allow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One small trap: the &lt;a href="https://learn.microsoft.com/en-us/windows/security/book/operating-system-agentic-security" rel="noopener noreferrer"&gt;Windows security book&lt;/a&gt; shows the toggle under an extra &lt;strong&gt;Agent tools&lt;/strong&gt; level. Microsoft's own pages show both paths, so search Settings for "agentic" if you cannot find it on your build.&lt;/p&gt;

&lt;h2&gt;
  
  
  MCP servers and the on-device registry
&lt;/h2&gt;

&lt;p&gt;If you ship an MCP server, this part is for you. &lt;a href="https://learn.microsoft.com/en-us/windows/ai/mcp/overview" rel="noopener noreferrer"&gt;MCP on Windows&lt;/a&gt; adds the Windows On-Device Agent Registry (ODR). Agents use it to discover MCP servers, and you can inspect it from a terminal on build 26220.7262 or later:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;odr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;mcp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;odr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;mcp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;path-to-mcpb-manifest-json&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;odr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;mcp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;remove&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;server-id&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;a href="https://learn.microsoft.com/en-us/windows/ai/mcp/servers/mcp-containment" rel="noopener noreferrer"&gt;containment docs&lt;/a&gt; have details that are easy to miss:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Packaged servers registered through ODR run in a separate agent session under a separate agent account. They have no access to your files, settings, credentials or windows unless you grant it.&lt;/li&gt;
&lt;li&gt;To run contained, a server must be a binary &lt;code&gt;.exe&lt;/code&gt; with package identity (MSIX) and a valid manifest. &lt;strong&gt;MCP bundles (&lt;code&gt;.mcpb&lt;/code&gt;) currently cannot run contained.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;A contained server &lt;strong&gt;can still reach the internet&lt;/strong&gt;. Containment here limits local access, not network access.&lt;/li&gt;
&lt;li&gt;File permissions are granted &lt;strong&gt;per host app, not per server&lt;/strong&gt;. If one server used by a host gets access to your files, every server used by that host gets it too.&lt;/li&gt;
&lt;li&gt;The "Reduce protections for agent connectors" setting (Settings &amp;gt; System &amp;gt; Advanced &amp;gt; AI components) exists for testing. It does what the name says.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Like the agent workspace, all of this is labelled pre-release.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is still missing
&lt;/h2&gt;

&lt;p&gt;To be fair about the gaps: per Microsoft, Intune policy for MXC process containers is "soon". Entra support for telling agent activity apart from user activity is "coming soon", and so are Agent 365 controls for on-device agents. If you run agents across a fleet today, you can contain them, but central governance is not fully there yet. For now, plan a pilot rather than a full rollout.&lt;/p&gt;

&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;How are you sandboxing agents on Windows today: a VM, WSL, Windows Sandbox, a separate user account, or nothing at all? And would you add MXC to your own agent harness, or wait until Intune and Entra support land? Tell us what your setup looks like in the comments.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;We first wrote about this on &lt;a href="https://www.windowsmode.com/windows-security-for-ai-agents/" rel="noopener noreferrer"&gt;Windows Mode&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>windows</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Alt+Space Is Our Start Menu Now: A Keyboard-First Windows Dev Setup with Flow Launcher</title>
      <dc:creator>Windows Mode</dc:creator>
      <pubDate>Sun, 18 Oct 2026 13:11:55 +0000</pubDate>
      <link>https://dev.to/windowsmode/altspace-is-our-start-menu-now-a-keyboard-first-windows-dev-setup-with-flow-launcher-5h9p</link>
      <guid>https://dev.to/windowsmode/altspace-is-our-start-menu-now-a-keyboard-first-windows-dev-setup-with-flow-launcher-5h9p</guid>
      <description>&lt;p&gt;Most of our day happens in a terminal, an editor and a browser. The slowest part was everything in between: digging through the Start menu, clicking into File Explorer to find a config file, opening a browser tab just to search GitHub.&lt;/p&gt;

&lt;p&gt;We fixed most of that with one tool: &lt;a href="https://github.com/Flow-Launcher/Flow.Launcher" rel="noopener noreferrer"&gt;Flow Launcher&lt;/a&gt;. It is a free, MIT licensed launcher for Windows 10 and 11. You press a hotkey, type, and press Enter. This is how we set it up for development work, and the habits that stuck.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install it in one line
&lt;/h2&gt;

&lt;p&gt;If you already use a package manager, pick one:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;winget&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Flow-Launcher.Flow-Launcher&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;scoop&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Flow-Launcher&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;choco&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Flow-Launcher&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The project README also lists &lt;code&gt;winget install "Flow Launcher"&lt;/code&gt;. We prefer the full package ID because it is exact and works well in setup scripts.&lt;/p&gt;

&lt;p&gt;There is a normal installer and a portable zip on the &lt;a href="https://github.com/Flow-Launcher/Flow.Launcher/releases" rel="noopener noreferrer"&gt;GitHub releases page&lt;/a&gt; too. Only download from there or flowlauncher.com. Windows may show a SmartScreen warning on first install, and the README mentions this. If you got the file from the official repo, it is fine to continue.&lt;/p&gt;

&lt;p&gt;Once installed, press &lt;strong&gt;Alt+Space&lt;/strong&gt;. That is the default hotkey, and you can change it in Settings (&lt;strong&gt;Ctrl+I&lt;/strong&gt; from the search window). We also turned on "start with Windows" straight away.&lt;/p&gt;

&lt;h2&gt;
  
  
  The built-in keywords worth learning
&lt;/h2&gt;

&lt;p&gt;Flow is plugin based. Most core plugins answer with no prefix at all, so you can just type an app name. A few use an action keyword, and those are the ones that make it feel like a dev tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  Run shell commands with &lt;code&gt;&amp;gt;&lt;/code&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; git status
&amp;gt; code .
&amp;gt; wsl --list --verbose
&amp;gt; ipconfig /flushdns
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Press &lt;strong&gt;Enter&lt;/strong&gt; to run. Press &lt;strong&gt;Ctrl+Shift+Enter&lt;/strong&gt; to run it as administrator, which saves opening an elevated terminal for one command. You can choose which shell it uses (cmd or PowerShell) in the Shell plugin settings.&lt;/p&gt;

&lt;h3&gt;
  
  
  Search the web by keyword
&lt;/h3&gt;

&lt;p&gt;The Web Searches plugin ships with keywords for common sites. These are the ones we use every day:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;github flow launcher plugin
stackoverflow powershell splatting
gist dotfiles
wiki utf-8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Plain text with no keyword falls back to Google by default, which you can change. You can also add your own searches. We added one for MDN and one for our internal docs by giving each a URL with &lt;code&gt;{q}&lt;/code&gt; in it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Find files and file contents
&lt;/h3&gt;

&lt;p&gt;The Explorer plugin handles files and folders. Typing a path like &lt;code&gt;C:\dev\&lt;/code&gt; lets you browse into folders from the search box. &lt;code&gt;doc:&lt;/code&gt; searches inside file contents instead of file names:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;doc: connectionString
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Small things that add up
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;b react docs        # browser bookmarks
s environment       # Windows settings, e.g. "Edit environment variables"
kill node           # end a stuck process
128*1024            # calculator, Enter copies the result
?                   # list every plugin's action keyword
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;kill node&lt;/code&gt; alone has saved us a lot of trips to Task Manager when a dev server will not let go of a port.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make file search fast with Everything
&lt;/h2&gt;

&lt;p&gt;Out of the box, file search uses the Windows Search index. It works, but it skips folders and it is slow on big repos. Flow can use &lt;a href="https://www.voidtools.com/" rel="noopener noreferrer"&gt;Everything&lt;/a&gt; from voidtools instead, which indexes every file name on NTFS drives and returns results almost instantly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;winget&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;voidtools.Everything&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open Settings, go to the Explorer plugin and switch the search engine to Everything. If Everything is not running, Flow shows a warning result in file searches, and selecting it can install Everything for you.&lt;/p&gt;

&lt;p&gt;After switching, searching for &lt;code&gt;appsettings.Development.json&lt;/code&gt; across a dozen repos takes no time at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install plugins from the search box
&lt;/h2&gt;

&lt;p&gt;This is the part we like most. The plugin manager is a plugin itself, with the keyword &lt;code&gt;pm&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pm install github
pm install window walker
pm update
pm uninstall &amp;lt;name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is also a visual Plugin Store in Settings if you want to browse first. Plugins can be written in C#, F#, Python or JavaScript. If something you need is missing, writing your own is a real option.&lt;/p&gt;

&lt;p&gt;Some community plugins listed in the official README that fit dev work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: search repos, issues and pull requests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Window Walker&lt;/strong&gt;: switch between open windows by typing their title. This is great with many terminal and editor windows open.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clipboard+&lt;/strong&gt;: clipboard history inside Flow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Colors&lt;/strong&gt;: preview and convert color codes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We keep the list short. Every plugin adds results, and too many makes the top result less predictable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shortcuts we use without thinking
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Keys&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Alt+Space&lt;/td&gt;
&lt;td&gt;Open Flow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enter&lt;/td&gt;
&lt;td&gt;Run the top result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ctrl+Enter&lt;/td&gt;
&lt;td&gt;Open the containing folder&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ctrl+Shift+Enter&lt;/td&gt;
&lt;td&gt;Run as administrator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ctrl+Shift+C&lt;/td&gt;
&lt;td&gt;Copy the file or folder path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;F1&lt;/td&gt;
&lt;td&gt;Toggle the preview panel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ctrl+I&lt;/td&gt;
&lt;td&gt;Open settings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ctrl+F12&lt;/td&gt;
&lt;td&gt;Toggle Game Mode (pauses the hotkey)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The preview panel is underrated. Press F1 on a markdown or text file and you get a highlighted preview, so you can check it is the right &lt;code&gt;README.md&lt;/code&gt; before opening it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips we actually use
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pin your projects folder.&lt;/strong&gt; Typing &lt;code&gt;C:\dev\&lt;/code&gt; and then the repo name, then &lt;strong&gt;Ctrl+Enter&lt;/strong&gt;, opens the folder in Explorer. A &lt;code&gt;&amp;gt; code C:\dev\repo&lt;/code&gt; command opens it in VS Code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lean on fuzzy matching.&lt;/strong&gt; You rarely need to type a full app name; a few letters or an acronym is usually enough.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use Dialog Jump.&lt;/strong&gt; In an Open or Save As dialog, &lt;strong&gt;Alt+G&lt;/strong&gt; jumps to the folder that is open in your file manager. No more navigating the dialog by hand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set plugin priority.&lt;/strong&gt; If Bookmarks keeps beating Programs for a name, raise the priority of the plugin you want in Settings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Know where your settings live.&lt;/strong&gt; Type &lt;code&gt;flow user data&lt;/code&gt; to open the settings folder (&lt;code&gt;%APPDATA%\FlowLauncher&lt;/code&gt; for a normal install). Back it up with your dotfiles.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What we would change
&lt;/h2&gt;

&lt;p&gt;Flow is not perfect. The first run feels busy until you trim plugins, and the default Windows Search index makes file search seem worse than it is. Five minutes in Settings fixes both. Alt+Space can also clash with the window menu in some apps, so pick another hotkey if that bothers you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;What is the one launcher keyword or plugin you use every day? If you run Flow, PowerToys Run or something else, we would love to hear what your setup looks like in the comments.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;We first wrote about Flow Launcher on &lt;a href="https://www.windowsmode.com/flow-launcher-for-windows/" rel="noopener noreferrer"&gt;Windows Mode&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>windows</category>
      <category>productivity</category>
      <category>tooling</category>
      <category>devtools</category>
    </item>
  </channel>
</rss>
