Pretty PowerShell is a standalone PowerShell customization script that delivers a polished shell experience: Starship prompt, PSReadLine enhancements, zoxide navigation, Terminal-Icons, fastfetch, and a rich set of Unix-style utilities and git shortcuts.
It now supports both Windows PowerShell 5.1 and PowerShell 7+.
This repository is a fork of
ChrisTitusTech/powershell-profile, refactored around a standalone-script architecture.
Original layout mixed repo-managed profile logic with user-owned PowerShell profile files. This fork moves repo code into a standalone script and keeps the user's main $PROFILE as a thin loader.
Profile.ps1→ canonical repo-managed scriptSetup.ps1→ interactive installer and migration entrypointMicrosoft.PowerShell_profile.ps1→ compatibility loader$PROFILE→ user-owned startup file that dot-sources Pretty PowerShell
- Windows PowerShell 5.1
- PowerShell 7+
- Windows-first project
Install target is shell-specific because $PROFILE differs by host:
- Windows PowerShell →
~/Documents/WindowsPowerShell - PowerShell 7+ →
~/Documents/PowerShell
Run installer from shell you want to configure.
irm https://github.com/Villoh/powershell-profile/raw/main/Setup.ps1 | iexInstaller is interactive. It guides you through:
- Install location
- Legacy profile migration (auto-detected)
- Install and configure Starship (opt-in, recommended)
- Install and configure Fastfetch (opt-in, recommended)
- Terminal-Icons (installed automatically)
- Extras: zoxide, JetBrainsMono Nerd Font (multi-select)
& ([scriptblock]::Create((irm https://github.com/Villoh/powershell-profile/raw/main/Setup.ps1))) -DryRun& ([scriptblock]::Create((irm https://github.com/Villoh/powershell-profile/raw/main/Setup.ps1))) -ForceSkips interactive prompts and applies all defaults. Useful for scripted re-installs.
All overwritten files are backed up under current shell profile root:
- Windows PowerShell →
~/Documents/WindowsPowerShell/Backups/<yyyyMMdd-HHmmss>/ - PowerShell 7+ →
~/Documents/PowerShell/Backups/<yyyyMMdd-HHmmss>/
Each run creates its own dated subfolder. Includes:
PrettyPowerShell.ps1starship.tomlfastfetch/folderMicrosoft.PowerShell_profile.ps1(migration only)profile.ps1(migration only)
Update-Profile updates installed standalone script for current shell. Backs up existing script and Starship config before overwrite.
Uses Starship. Default config based on Catppuccin Powerline preset.
Customize at ~/.config/starship.toml.
On interactive shell:
- Starship prompt initializes
- Fastfetch runs with config at
~/.config/fastfetch/config.jsonc Show-Helphint prints
Windows PowerShell automatically uses ASCII-safe installer and help UI plus compatible PSReadLine settings.
To disable Starship or Fastfetch after install, edit PrettyPowerShell.ps1 (use ep or Edit-Profile) and set:
$script:EnableStarship = $false
$script:EnableFastfetch = $falseThis is useful if you want to use a different prompt (e.g. Oh My Posh) or a different fetch tool.
JetBrainsMono Nerd Fontzoxide
Install manually if skipped during setup:
winget install ajeetdsouza.zoxide DEVCOM.JetBrainsMonoNerdFontIf this fork helps you:
- Star repo
- Share it
- Sponsor development: https://github.com/sponsors/Villoh