Native Windows command-line tools with a Unix-shaped workflow.
WinuxCmd gives Windows terminals a compact GNU-style command layer: ls,
cat, grep, find, xargs, sed, sort, uniq, cp, mv, rm,
and more.
The 0.14 line also introduces a clearer WPM model: WinuxCmd ships the core
commands, while WPM manages portable sidecar binaries such as awk, jq, rg,
fd, fzf, bat, yq, 7z, and ffmpeg from a separate package index.
winuxcmd ls -la
winuxcmd grep --color=auto TODO README.md
winuxcmd find . -name "*.cpp" -print0
winuxcmd wpm source list -v
winuxcmd wpm search json
winuxcmd wpm info jqHigh-resolution recording: winuxcmd-unix-demo.mp4.
Windows developers constantly paste Linux-shaped commands from docs, CI logs, issue comments, and muscle memory. WinuxCmd keeps those text workflows useful without forcing you into WSL, MSYS2, Git Bash, or PowerShell-only semantics.
What matters:
- Native Windows executable, process, and path behavior.
- Familiar GNU-style flags where they are useful.
- Predictable pipelines with Windows tools such as
tasklist,netstat,sc, andipconfig. - Small artifacts that can be bundled by shells, installers, CI images, and portable tool folders.
For PowerShell, Command Prompt, Windows Terminal, build scripts, and CI:
winget install caomengxuan666.WinuxCmdThen run commands through winuxcmd:
winuxcmd --version
winuxcmd ls -la
winuxcmd grep -n TODO srcThe installer also includes winux.ps1 and winux.cmd. In an interactive
PowerShell session, winux activate can expose common commands such as ls,
cat, rm, grep, and man without replacing your whole shell.
WPM is WinuxCmd's small package and link manager. It is intentionally not a replacement for winget.
Use WPM for:
- Portable command-line sidecars placed beside
winuxcmd.exe. - Single
.exedownloads and simple.ziparchives with explicit file maps. - Unix-like helper tools that are useful in Windows shell workflows.
- Rebuilding hardlinks so commands can be called directly by name.
Use winget for:
- GUI apps, runtimes, SDKs, services, drivers, and system-wide installers.
- Tools that need vendor setup, PATH policy, file associations, or background components.
The official WPM source lives outside this repository:
- Source repo: unixwin/wpm-source
- Raw index:
https://raw.githubusercontent.com/unixwin/wpm-source/main/index.json - CDN index:
https://cdn.jsdelivr.net/gh/unixwin/wpm-source@main/index.json
Typical flow:
winuxcmd wpm source list -v
winuxcmd wpm index update
winuxcmd wpm search editor
winuxcmd wpm info jq
winuxcmd wpm links rebuild --root "C:\path\to\winuxcmd"Packages remain index-only until the source provides architecture-specific
URLs, SHA-256 hashes, and file mappings. That keeps WPM simple and auditable:
metadata can be listed early, but only verified binary artifacts are installed.
winuxsh is the recommended entry point if you want a bash-like Windows terminal:
winuxsh = rubash shell engine + reedline frontend + winuxcmd command layer
The winuxsh release bundle carries its own architecture-matched winuxcmd/
directory. Keep that copy separate from a winget-installed WinuxCmd so x64 and
arm64 shell bundles stay reproducible.
WinuxCmd currently implements 153 commands, including practical coverage across:
- Files:
ls,cp,mv,rm,mkdir,ln,stat,readlink,realpath - Text:
cat,grep,sed,sort,uniq,cut,head,tail,wc - Search and composition:
find,xargs - Windows-friendly utilities:
ps,lsof,which,tree,hexdump,strings - WPM:
wpm source,wpm index,wpm list,wpm search,wpm info,wpm install,wpm links
Detailed compatibility references:
cmake --preset vs2022
cmake --build build-vs --target winuxcmd --parallelUseful checks:
build-vs\tests\winuxcmd-tests.exe --gtest_filter=wpm.*
ctest --test-dir build-vs -R "^(grep|find|rm)\." --output-on-failure