pi-bash-to-ps

pi extension that transpiles LLM-generated bash commands to PowerShell on Windows

Packages

Package details

extension

Install pi-bash-to-ps from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-bash-to-ps
Package
pi-bash-to-ps
Version
0.1.0
Published
May 18, 2026
Downloads
not available
Author
paulcynic
License
MIT
Types
extension
Size
180.2 KB
Dependencies
1 dependency · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-bash-to-ps

A pi extension that lets AI coding agents write bash commands on Windows — they get transpiled to PowerShell and run natively. No Git Bash or WSL required.

LLM generates:  ls -la src/ | grep TODO | wc -l
                    ↓ transpiled
Executes:        Get-ChildItem ... | Select-String ... | Measure-Object -Line

The extension overrides pi's built-in bash tool transparently — the LLM never knows anything is different. Same tool name, same schema, same output format.

Install

# Clone anywhere
git clone https://github.com/Paul-Yuchao-Dong/pi-bash-to-ps
cd pi-bash-to-ps
npm install

# Test with
pi -e ./index.ts

Or install globally as a pi package:

pi install github.com/Paul-Yuchao-Dong/pi-bash-to-ps

How it works

On bash tool calls, the extension:

  1. Transpiles the bash command to PowerShell via joyi-ai/bash-to-powershell
  2. Spawns pwsh.exe (PS 7) or powershell.exe (PS 5.1) with the transpiled command
  3. Falls back to the original bash command via the system shell if transpilation fails
  4. No-ops on macOS and Linux — the built-in bash tool is untouched

Native tools (rg, fd, curl.exe, jq) are auto-detected and preferred over PowerShell cmdlet fallbacks.

Platform support

OS Behavior
Windows Bash → transpile → PowerShell
macOS / Linux No-op (built-in bash tool unchanged)

Architecture decisions

See docs/adr/0001-override-bash-tool.md for why we chose to override the tool rather than intercept events.

Attribution

bash-to-powershell — the transpiler that powers this extension.

License

MIT