PsBash
0.10.16
Real bash commands for PowerShell with typed objects. 76 commands (ls, grep, sort, awk, sed, jq, find, ps, du, tar, etc.) that accept real bash flags and return structured PowerShell objects while producing identical text output. Pipeline bridge pattern preserves typed objects through grep, sort, head, tail.
Minimum PowerShell version
7.0
Installation Options
Owners
Copyright
(c) Andy Brummer. All rights reserved.
Package Details
Author(s)
- Andy Brummer
Tags
bash linux cross-platform cli grep awk sed jq pipeline typed-objects powershell-module devops unix shell commands windows macos
Functions
Compare-Version Complete-BashBgJob ConvertFrom-BashArgs ConvertFrom-HumanNumeric ConvertFrom-MonthName ConvertFrom-SimpleYaml ConvertFrom-YamlValue ConvertTo-BrowseRow ConvertTo-JqJson ConvertTo-PermissionString ConvertTo-SimpleYaml Disable-BashHookPrompt Emit-BashLine Enable-BashHookPrompt Expand-EscapeSequences Find-JqBranchKeyword Find-JqKeyword Find-JqTopLevelChar Find-JqTopLevelStr Format-BashDate Format-BashSize Format-LsGrid Format-LsLine Format-PsAuxLine Format-PsCustomLine Get-BashBgRunspacePool Get-BashFileInfo Get-BashItem Get-BashLsProviderEntries Get-BashPlatform Get-BashText Get-BrowseDisplayProperties Get-BrowseTargetText Get-DotNetProcEntry Get-JqMatchingBracket Get-LinuxProcEntry Get-LsDisplayName Get-LsEntryFromFsi Get-LsEntryFromPsItem Initialize-BrowseAdapters Invoke-BashBackground Invoke-BashBg Invoke-BashEcho Invoke-BashFg Invoke-BashJobs Invoke-BashKill Invoke-BashRedirect Invoke-BashSed Invoke-BashWait Invoke-BrowseAction Invoke-BrowseCommand Invoke-BrowseInteractive Invoke-JqFilter Invoke-JqIf Invoke-JqRecurse Invoke-JqSelect Invoke-ProcessSub Invoke-ProcessSubPipeline Invoke-ProcessSubString New-BashObject New-BrowseAction New-BrowseAdapter New-BrowseBinding New-BrowseSafetyPreview Register-BrowseAdapter Get-BrowseAdapter Unregister-BrowseAdapter New-FlagDefs Open-BashFileReader Read-BashFileBytes Read-BashFileLines Read-BashFileRaw Read-BashFileStreaming Register-BashCompletions Register-BashLsProvider Resolve-BashGlob Resolve-BrowseAdapter Resolve-JqDotPath Resolve-JqStringInterpolation Set-BashDisplayProperty Set-BashErrorMode Show-BashHelp Split-JqComma Split-JqPipe Test-BashCondition Test-BashHelpFlag Test-BrowseCommandRequiresConfirmation Write-BashError Write-BashFileRaw Write-BashFileText Write-BashHostStderr
PSEditions
Dependencies
This module has no dependencies.
Release Notes
v0.10.16: Transpiler & host robustness — ${VAR:-WORD} recursively transpiles its WORD argument, the Claude Code rg-shim startup snapshot parses to valid PowerShell, the AOT /warnaserror build is null-guarded, the host no longer crashes on a sidecar write race, the IPC connect/command/exit path is streamlined under heavy load, plus Register-BrowseAdapter and a ps-aux error-spam fix. v0.10.15: bash-semantics parity — faithful Int64 $(( )) / (( )) evaluator, printf %c/%f and trailing-newline fixes, ${!arr[@]} indices/keys (no empty-array crash), quoted "${arr[@]}" per-element for-in, read -ra / IFS, test bare-literal quoting, GNU xargs whitespace split. v0.10.14: coreutils flag-coverage — full gzip/tar flags within .NET limits (refuses bzip2/xz/zstd/compress, even bundled), unsupported-flag classifier for find + cp/mv/rm/mkdir/rmdir, tee --append, many long-form aliases, sort -g, du --exclude=GLOB. v0.10.13: tar/gzip/sed/jq engine hardening — tar path-traversal (Zip-Slip) refused, tar --exclude is an fnmatch glob, sed occurrence/=/Q/negation/step-address support, jq // streaming and Cartesian object construction. v0.10.12: per-session host daemon fixes multi-agent contention stalls; command-position path tokens (./script, ~/x) do filename completion. v0.10.11: jq operator set (sort/unique/group_by/@csv/…) and arithmetic; printf format-recycling publish fix. v0.10.10: flag-coverage sweep across ~25 commands plus destructive-behavior fixes (kill -0 probe, cut open ranges, env NAME=VAL cmd, cp -p). v0.10.9: interactive shell — cd -, history expansion (!!/!n/!str/^old^new), ln -sf safety, awk file operands, kill named signals, recompiled-host replaces stale daemon. v0.10.8: robustness + interactive perf — async keystroke prediction, transpile cache, if/while test exit-code, while-read piping, read-only attribute clearing, grep --include/--exclude. Full version history with complete per-release detail: CHANGELOG.md in the repo and https://github.com/standardbeagle/ps-bash/releases
FileList
- PsBash.nuspec
- BashFlagSpecs.json
- Parlot.dll
- PsBash.Cmdlets.dll
- PsBash.Format.ps1xml
- PsBash.Transpiler.dll
- PsBash.psd1
- PsBash.psm1
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 0.10.17 | 5 | 6/19/2026 |
| 0.10.16 (current version) | 5 | 6/19/2026 |
| 0.10.15 | 7 | 6/17/2026 |
| 0.10.14 | 7 | 6/16/2026 |
| 0.10.13 | 6 | 6/16/2026 |
| 0.10.12 | 10 | 6/13/2026 |
| 0.10.11 | 8 | 6/11/2026 |
| 0.10.9 | 4 | 6/11/2026 |
| 0.10.8 | 48 | 6/4/2026 |
| 0.10.7 | 15 | 6/3/2026 |
| 0.10.5 | 8 | 6/1/2026 |
| 0.10.4 | 4 | 5/29/2026 |
| 0.10.3 | 3 | 5/29/2026 |
| 0.10.2 | 3 | 5/29/2026 |
| 0.10.1 | 5 | 5/29/2026 |
| 0.10.0 | 4 | 5/29/2026 |
| 0.9.13 | 7 | 5/24/2026 |
| 0.9.11 | 16 | 5/22/2026 |
| 0.9.10 | 4 | 5/21/2026 |
| 0.9.9 | 4 | 5/21/2026 |
| 0.9.8 | 5 | 5/20/2026 |
| 0.8.20 | 17 | 4/22/2026 |
| 0.8.19 | 4 | 4/22/2026 |
| 0.8.18 | 4 | 4/22/2026 |
| 0.8.17 | 3 | 4/21/2026 |
| 0.8.16 | 3 | 4/21/2026 |
| 0.8.14 | 9 | 4/20/2026 |
| 0.8.12 | 5 | 4/16/2026 |
| 0.8.11 | 3 | 4/16/2026 |
| 0.8.10 | 5 | 4/15/2026 |
| 0.8.7 | 3 | 4/14/2026 |
| 0.8.6 | 4 | 4/14/2026 |
| 0.7.6 | 6 | 4/12/2026 |
| 0.7.5 | 4 | 4/12/2026 |
| 0.7.4 | 4 | 4/12/2026 |
| 0.7.3 | 5 | 4/10/2026 |
| 0.7.2 | 3 | 4/10/2026 |
| 0.7.1 | 4 | 4/10/2026 |
| 0.7.0 | 5 | 4/9/2026 |
| 0.4.0 | 13 | 4/5/2026 |
| 0.3.0 | 4 | 4/4/2026 |
| 0.2.0 | 347 | 4/3/2026 |
| 0.1.0 | 96 | 4/3/2026 |