Bash, native on Windows. No WSL. No VM. No
/mnt/c. No cmdlet dialect. Just the shell your fingers already know — and the one your AI agent actually speaks.
One native Windows binary. Bash syntax. Windows paths. Real Windows programs. Unix commands included. No emulation layer between your command and your tools — and nothing for your AI agent to trip over.
That's it. That's the whole pitch.
You don't need WSL. You need Winuxsh.
Every Windows shell asks you to give something up. CMD is frozen in 1987.
PowerShell isn't Bash — your for loops and quoting instincts die on
arrival. WSL is a whole Linux distro you adopt just to print a directory.
Git Bash emulates Unix and guesses at your paths, and Windows-native tools
refuse to speak its dialect.
Winuxsh gives it all back:
- Bash, for real —
if,for,case,$(...), pipes, heredocs, functions, arrays. The engine is rubash, which passes GNU Bash's own test suite: 86/86. - Windows paths, native —
C:\...andC:/...work as-is,/c/...input is understood, and output is always native. Native tools get native paths, zero guessing. - Unix commands included —
ls,cat,grep,find,test,printf, ... via WinuxCmd. Nothing to install. - Real Windows programs, direct —
git.exe,node.exe,python.exe,cargo.exe. Your PATH is your PATH. - A prompt you'll enjoy — 27 themes (agnoster, spaceship, tokyonight, p10 family...), a git prompt that grows teeth, syntax highlighting, autosuggestions, vi/emacs modes.
- Plugins with a permission model — 40+ packs (
git,docker,kubectl,npm,zoxide,fzf,thefuck, ...); reviewed source packs and process adapters declare the host access they need.
Every AI coding agent speaks Bash. On Windows, most are stuck with PowerShell — the shell that famously eats arguments:
# PowerShell 5.1 # Winuxsh
> node -e "console.log(JSON.stringify( ❯ node -e "console.log(JSON.stringify(
process.argv.slice(1)))" "a b" "" "c\"d" process.argv.slice(1)))" "a b" "" "c\"d"
"e\f" "---" "e\f" "---"
ParserError: TerminatorExpectedAtEndOfString ["a b","","c\"d","e\\f","---"]
Five arguments in. PowerShell throws a parse error; Winuxsh delivers all five byte-for-byte. Even Codex is locked to PowerShell on Windows — users are literally voting to escape. Why Winuxsh has the full receipts.
This is what that feels like from the other side of the keyboard:
winuxsh -c is a contract, not an afterthought: no banners, stable
stdout/stderr, exact exit-code propagation. What the agent writes is what
the process receives.
winuxsh -c 'test -f Cargo.toml && echo build' && echo "exit=$?"
winuxsh deploy.shGrab winuxsh-v*-win-*-setup.exe from Releases and run it — no admin rights; it wires up your PATH and a Windows Terminal profile. Or take the portable zip (first launch self-activates the Unix commands). From source:
git clone https://github.com/unixwin/winuxsh.git && cd winuxsh
cargo build --release && target\release\winuxsh.exeKeep it current: winuxsh --self-update.
~/.winuxshrc is the interactive entry point. Put your theme, prompt,
plugins, exports, aliases, and functions there:
WINUXSH_THEME=spaceship
WINUXSH_PLUGINS=(prompt-core git)
[ -f "$WINUXSH/oh-my-winuxsh.winux" ] && . "$WINUXSH/oh-my-winuxsh.winux"Winuxsh's terminal isn't just for commands — it prints pictures. The terminal-flags project turns any image or GIF into a standalone ANSI printer script:
winuxsh flags/taffy.sh # photos, right in the terminal
winuxsh flags/qiu-dance.sh # animated GIFs, frame timing preservedTruecolor half-block pixels, no Python or Pillow needed at runtime:
Full docs site: docs · Getting started · Why Winuxsh · Advanced usage · Architecture
Under the hood: rubash (Bash engine) · WinuxCmd (Unix commands) · reedline (line editor)
- Another Git Bash? No — Git Bash emulates Unix on top of Windows. Winuxsh is a native Windows process: native paths, direct Windows binary execution, Bash compatibility in the language engine, not a fake filesystem.
- Still need WSL? Sure — for real Linux kernels, Linux Docker, Linux-only toolchains. For the other 95% of your day: you don't need WSL. You need Winuxsh.
- Where's my config?
~/.winuxshrc— plain Bash. Structured plugin state lives in~/.winshrc.toml.
If Winuxsh just saved you from booting a Linux VM to run grep,
star the repo and tell a Windows
developer. ★
GPL-3.0-or-later. See LICENSE.


