Coreutils ships as a single multi-call binary that exposes each utility under its standard name (cat.exe, grep.exe, find.exe, and so on), giving you the everyday tools developers already use on other platforms to script, automate, and process text. For the full list, see Commands.
The goal is to remove friction when moving between Linux, macOS, WSL, containers, and Windows. The same commands, flags, and pipelines work the same way, so existing scripts and habits carry over without translation. Each command supports the standard --help flag for full syntax and options.
How it works
The utilities are implemented in Rust on top of the uutils/coreutils project – the same cross-platform reimplementation of GNU coreutils that ships in modern Linux distributions. Microsoft maintains a Windows-focused build that bundles coreutils, findutils (find, xargs), and a GNU-compatible grep together as a single package. It also includes integrated ports of the original DOS sort and find, so existing CMD scripts that rely on /switch-style syntax keep working alongside the UNIX-style versions. For details, see Shell conflicts.
For anyone looking to use familiar *nix tools on Windows, we've created an installer for you. It includes:
- The Rust rewrite of GNU Coreutils, uutils/coreutils
- Their accompanying FindUtils implementation, uutils/findutils
- As well as our newly written Grep implementation, uutils/grep
- A shim to ensure your existing DOS sort & find invocations continue to work
- And finally, a PowerShell wrapper allowing you to use glob patterns the way you do on other OS
- Our installer will give you various options. If you just want to try it out, please feel free to use winget: winget install Microsoft.Coreutils

