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:\... and C:/...), direct execution of git.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/repo arrives at python.exe as D:\repo, while shapes the executor does not classify as paths (/nonexistent and /fn main) arrive byte for byte. The native command processor keeps its /C-style switch-position operands verbatim. The full contract — the exact rules, the cmd.exe carve-out, and the __RUBASH_ARGV_DIALECT=legacy pass-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 -c is 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

GuideWhat it covers
Getting StartedZero to a git prompt in ten minutes
Advanced UsageExecution modes, startup files, themes, plugins, completion, debugging
Install & Self-UpdateInstaller, portable zip, Windows Terminal profile, updates
Bash Compatibility MatrixWhat Bash surface is verified, layer by layer
Built-ins & Fast PathsAll 64 built-ins, fast-path fallbacks, WinuxCmd overlap
Architecturerubash + WinuxCmd + reedline, path model, host contract
Windows Path Contractlogical root, dispatcher selection, and layer ownership
RoadmapWhat 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.