Bash on Windows without the VM: fauxnix translates instead of emulating
A deterministic bash→PowerShell translation layer so AI agents can keep writing the bash they were trained on while running natively on Windows.
What it does
fauxnix parses bash commands into an AST, translates them into PowerShell scripts, executes them natively, and returns output that looks like GNU/Linux: ls -l columns, bash-style error messages, coreutils exit codes. It ships as an MCP server plus a CLI, with one-command setup for Claude Code, Codex, OpenCode, Kimi Code, and Qwen Code. No VM, no WSL, no bash toolchain — just Node and the PowerShell that’s already on the box.
The interesting bit
The core insight is that LLM agents are dramatically better at bash than PowerShell — bash dominates training data, so models on Windows produce “looks right, doesn’t run” commands. Instead of emulating a Linux environment, fauxnix translates a curated subset (109 commands) and fails loudly on what it can’t handle, so the agent never gets silently-wrong results. Their own benchmarks show the gap: one model was 3.1× slower with 24 error events writing raw PowerShell versus zero errors through fauxnix.
Key highlights
- 109 translated commands, output-matched against real GNU coreutils via a 253-case differential corpus (Git Bash is literally the test oracle)
- Zero LLM calls at runtime — deterministic translation, 400+ automated tests
- MCP session persists
cwd, env vars,export/unset, positional parameters across tool calls — behaves like a logged-in shell, not statelessexec bash_batchcompiles multi-step plans up front and runs them atomically in one MCP round trip- Unknown commands (
git,node,npm…) pass through natively; UTF-8/GBK encoding traps and CRLF handled at the process boundary - Experimental
facademode implements the bash process contract, aiming to replace an MCP sidecar with a fauxnix-backedbash.exe
Caveats
- Windows-only by design; requires PowerShell 5.1+ and Node ≥ 18 (PowerShell 7 is opt-in)
- The npm package is
fauxnix-cli, notfauxnix— the latter belongs to an unrelated 2015 websocket library sed/awkscripts are parsed, so unsupported constructs throw named errors rather than silently misbehaving — better than wrong output, but still a wall- The README itself says it plainly: if Git Bash already works for you, keep it
Verdict
Worth a look if you run AI agents on Windows — especially agent fleets, CI runners, or locked-down machines where shipping a bash toolchain is painful. If you’re happily on Git Bash or WSL, there’s little reason to switch.
Frequently asked
- What is 20000419/fauxnix?
- A deterministic bash→PowerShell translation layer so AI agents can keep writing the bash they were trained on while running natively on Windows.
- Is fauxnix open source?
- Yes — 20000419/fauxnix is open source, released under the MIT license.
- What language is fauxnix written in?
- 20000419/fauxnix is primarily written in TypeScript.
- How popular is fauxnix?
- 20000419/fauxnix has 900 stars on GitHub.
- Where can I find fauxnix?
- 20000419/fauxnix is on GitHub at https://github.com/20000419/fauxnix.