Personal PowerShell and Bash configuration for a consistent prompt, aliases, and optional tool integrations across Windows, Linux, and WSL.
- Install.md — setup, upgrade, options, and environment values.
- DESIGN.md — runtime and setup principles.
Clone into ~/Documents and run the setup script:
git clone https://github.com/cardin/CustomShell "$env:USERPROFILE\Documents\CustomShell"
& "$env:USERPROFILE\Documents\CustomShell\pwsh\Install.ps1"Setup wires the all-hosts profile, persists environment values, and installs or
registers the shared tool configuration. It is safe to re-run and supports
-Check, -DryRun, and -Uninstall. The prompt and the expected-command list
are configured in pwsh/Settings.psd1. See Install.md.
Manual alternative — append this to ~/Documents/PowerShell/profile.ps1 (the
all-hosts profile, not a host-specific one). It loads the shell configuration
but not the persistent environment values:
. "$env:USERPROFILE\Documents\CustomShell\pwsh\main.ps1"Clone into ~/.config/CustomShell and run the setup script:
git clone https://github.com/cardin/CustomShell ~/.config/CustomShell
bash ~/.config/CustomShell/linux/install.shOr download the tree directly:
curl -L https://github.com/cardin/CustomShell/archive/refs/heads/master.tar.gz | tar xz --strip 1Setup wires ~/.bashrc, persists environment values, and installs or links the
shared tool configuration. It is safe to re-run and supports --check,
--dry-run, and --uninstall. See Install.md.
Manual alternative — append this to ~/.bashrc. It loads the shell
configuration but not the persistent environment values:
. ~/.config/CustomShell/linux/main.shOn WSL work devices, startup also defaults BROWSER to a wrapper that opens
links (for example npm login) in the installed Windows browser; an existing
BROWSER value is kept.
Show-Helpdisplays the compact CustomShell command reference in both shells.Protect-TarandUnprotect-Tarcreate and extract encrypted archives. See Protect-Tar.md.mirror-win-sshmirrors the Windows SSH directory into WSL. See Mirror-Win-Ssh.md.- PowerShell also provides
Get-SSHConfigfor reading SSH host aliases. - Commands listed in
WslCommands(pwsh/Settings.psd1) are exposed as PowerShell commands that run inside the default WSL distribution when no native command exists. Currentlyopencode.
The PowerShell regression tests require Pester 5.0 or newer, tar.exe, and
Python 3.8 or newer (python3 or python) in PATH:
Invoke-Pester ./pwsh/Tests