Niubash
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.
This is the Niubash documentation. Start with the guides, or jump straight into the shell:
C:\Users\you\repo
❯ test -f Cargo.toml && echo "rust, obviously"
rust, obviously
❯ printf "%s\n" alpha beta gamma | grep beta
beta
❯ cd "C:\Program Files"
C:\Program Files
What Niubash is
- Bash syntax.
if,for,case,$(...), pipes, redirects, heredocs, functions, aliases — the whole grammar, powered by rubash, which is gated on the GNU Bash project's own 83-suite upstream test corpus (82 of 83 suites byte-identical, per the 2026-09-25 ledger re-run; the one residual, nameref, is individually audited — see the rubash compatibility ledger). - Windows-native. One binary, one process. Native Windows paths
(
C:\...andC:/...), direct execution ofgit.exe,node.exe,cargo.exe,python.exe— no VM, no emulation layer. The Windows-native path is the shell's first-class representation, POSIX- and WSL-style spellings are understood on input, and the Rubash executor translates POSIX-form arguments deterministically before a native child starts:/d/repoarrives atpython.exeasD:\repo, while shapes the executor does not classify as paths (/nonexistentand/fn main) arrive byte for byte. The native command processor keeps its/C-style switch-position operands verbatim. The full contract — the exact rules, thecmd.execarve-out, and the__RUBASH_ARGV_DIALECT=legacypass-through switch — is stated in the Windows Path Contract. - Unix commands included. WinuxCmd ships
ls,cat,grep,find,test,printf, and friends as Windows command links, with no separate installation. - AI-native.
niu -cis a contract: no banners, stable stdout/stderr, exact exit-code propagation. What an agent writes is what the process receives — the quoting roulette of PowerShell and the path mangling of MSYS/Git Bash are both gone. - A prompt you'll enjoy. 27 bundled themes (agnoster, spaceship, pure, catppuccin-mocha, tokyonight, p10 family, ...), a git prompt that grows teeth inside any repository, syntax highlighting, autosuggestions, vi and emacs modes, and Ctrl+R history search.
- Plugins with a permission model. 40+ bundled packs (
git,docker,kubectl,npm,zoxide,direnv,fzf,thefuck, ...), with reviewed source packs and process adapters declaring the host access they need.
The documentation
| Guide | What it covers |
|---|---|
| Getting Started | Zero to a git prompt in ten minutes |
| Advanced Usage | Execution modes, startup files, themes, plugins, completion, debugging |
| Install & Self-Update | Installer, portable zip, Windows Terminal profile, updates |
| Bash Compatibility Matrix | What Bash surface is verified, layer by layer |
| Built-ins & Fast Paths | All 64 built-ins, fast-path fallbacks, WinuxCmd overlap |
| Architecture | rubash + WinuxCmd + reedline, path model, host contract |
| Windows Path Contract | logical root, dispatcher selection, and layer ownership |
| Roadmap | What is done, what is next |
Get it
Download the installer from GitHub Releases, or build from source:
git clone https://github.com/unixwin/niubash.git
cd niubash
cargo build --release
target\release\niu.exe
Keep it current with niu --self-update (or self-update inside the
shell) and wpm update winuxcmd for the Unix command set. Questions and bug
reports go to
github.com/unixwin/niubash/issues.
Shell semantics live upstream in rubash — fix the engine, and every Bash user on Windows wins.