PsUi

1.1.0

WPF toolkit for PowerShell. DSL-based controls, async execution, theming. No XAML.

Minimum PowerShell version

5.1

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name PsUi

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name PsUi

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) 2026 Jacob LaBonte. All rights reserved.

Package Details

Author(s)

  • Jacob LaBonte

Tags

GUI Windows WPF Dialog DataGrid DSL Theme Async

Cmdlets

New-UiWindow

Functions

Add-UiDataGridItem Add-UiListItem Clear-UiDataGridItems Clear-UiList Clear-UiStatus Get-PsUiIcon Get-PsUiIconFont Get-PsUiIconList Get-UiListItems Get-UiThemeTemplate Get-UiValue Hide-UiStatusBar Invoke-UiAsync New-UiAction New-UiActionCard New-UiButton New-UiButtonCard New-UiCard New-UiChart New-UiChildWindow New-UiCredential New-UiDataGrid New-UiDatePicker New-UiDropdown New-UiDropdownButton New-UiExpander New-UiGlyph New-UiGrid New-UiImage New-UiInput New-UiLabel New-UiLink New-UiList New-UiPanel New-UiProgress New-UiRadioGroup New-UiSeparator New-UiSlider New-UiSpacer New-UiStatusBar New-UiTab New-UiTextArea New-UiTimePicker New-UiToggle New-UiTool New-UiTree New-UiWebView Out-CSVDataGrid Out-Datagrid Out-TextEditor Register-UiHotkey Register-UiTheme Remove-UiListItem Reset-UiSession Set-PsUiIconFont Set-UiDataGridItems Set-UiProgress Set-UiStatusBar Set-UiValue Show-UiChoiceDialog Show-UiConfirmDialog Show-UiCredentialDialog Show-UiDialog Show-UiFilePicker Show-UiFolderPicker Show-UiGlyphBrowser Show-UiInputDialog Show-UiMessageDialog Show-UiOuPicker Show-UiPromptDialog Show-UiSaveDialog Show-UiStatusBar Show-WindowsObjectPicker Stop-UiAsync Test-PsUiIcon Update-UiChart Write-Status Write-UiHostDirect

PSEditions

Desktop Core

Dependencies

This module has no dependencies.

Release Notes

Version 1.1.0:
- DataGrid overhaul: New-UiDataGrid as an embeddable grid, cell-embedded Button/Toggle/Link
 controls, opt-in editing, RowDetailsTemplate, RowBackground, FrozenColumns, EmptyMessage,
 RowContextMenu, SanitizeFormulas. Add-/Set-/Clear-UiDataGridItems helpers for mutating
 the backing collection from button actions.
- -ItemsSource binds your variable: pass a bare ArrayList / List / ObservableCollection and
 PsUi wraps it in a thread-safe observable wrapper, then rebinds the caller's variable so
 $list.Add() lands in the grid without [ref] ceremony. -NoBind opts out.
- Status bar suite: New-UiStatusBar + companion functions. -Intercept routes Write-Warning
 and Write-Error to badge counters; -AutoProgress embeds a progress bar driven by
 Write-Progress; -CaptureHost routes Write-Host to status text. Severity tinting with
 indicator glyphs; popup detail views on the badge counts.
- Icon font picker: Set-PsUiIconFont / Test-PsUiIcon. Pick Segoe MDL2 Assets or Segoe Fluent
 Icons per session or per window. Auto-detect, fallback chain, 125 new Fluent-modern names
 in CharList.json.
- New-UiTree: -ParentCheckBoxes and -ChildCheckBoxes for AD-style pickers, cascade defaults
 on, -NoCascade opts out, -WhenEnabled / -Checked for per-item rules.
- -Fill on data controls and New-UiGrid (replacing -FillParent; legacy alias kept).
- New-UiTool: UserPicker, GroupPicker, MemberPicker, OUPicker helpers; -HelperOptions connects
 helper buttons to other controls; helper-button errors surface in themed dialogs.
- Out-TextEditor / Out-CSVDataGrid theme inheritance fix (standalone calls no longer flip
 the parent window's theme).
- AsyncObservableCollection: cross-thread reentrancy fix, second-window dispatcher fix,
 seed-from-IEnumerable constructors, AttachMirror for two-way collection sync.
- net452 target alongside net472 and net6.0-windows for WinPE / older Windows.
- New-UiWindow -Theme Auto is now the default (follows the system light/dark preference).

Version 1.0.4:
- PsUi.psm1: Import-Module -Force no longer wipes static state out from under live windows
- New-UiTree: dotted property paths (e.g. 'Manager.Name') now walk into child objects instead
 of being read as one literal property name (also IdProperty, PathProperty, DisplayProperty)
- New-UiTree: path-mode parent nodes carry a stand-in tag so click handlers always have
 something to read; gets promoted to the real item if a matching piped item arrives later
- New-UiTree: replaced broken Get-Process help example with one that works on PS 5.1 and 7+
- Dropped dead VirtualizingPanel setters from the tree style

Version 1.0.3:
- Fix -EnabledWhen dispatcher error on TextBox/PasswordBox controls (GitHub #3)
- Fix tab content clipping when content overflows the window height
- Auto-size windows now scroll properly when MaxHeight is reached

Version 1.0.2:
- Add -EnabledWhen to 6 controls (Button, Input, TextArea, Dropdown, Tab, Action)
- New-UiTextArea: -ReadOnly switch
- Batch variable injection for faster window startup

Version 1.0.1:
- New-UiButton: -ScrollToTop switch for controlling post-completion scroll position
- New-UiTool: Detect missing help files in PS 7+, offer online docs fallback
- Show-UiFilterBuilder: Fix combobox vertical centering
- CI: Add Pester test workflow

FileList

Version History

Version Downloads Last updated
1.1.0 (current version) 11 8/10/2026
1.0.4 129 5/1/2026
1.0.3 86 4/19/2026
1.0.2 11 4/19/2026
1.0.1 13 4/18/2026
1.0.0 56 4/17/2026
Show more