← all repositories
20000419/fauxnix

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.

★900 stars TypeScript Coding Assistants
fauxnix
Not currently ranked — collecting fresh signals.
star history

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 stateless exec
  • bash_batch compiles 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 facade mode implements the bash process contract, aiming to replace an MCP sidecar with a fauxnix-backed bash.exe

Caveats

  • Windows-only by design; requires PowerShell 5.1+ and Node ≥ 18 (PowerShell 7 is opt-in)
  • The npm package is fauxnix-cli, not fauxnix — the latter belongs to an unrelated 2015 websocket library
  • sed/awk scripts 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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.