Skip to content
Kanders-IIPublic

About

Professional PowerShell UI framework - Create wizards, dashboards, and workflows using familiar cmdlets. No WPF/XAML required.

Topics

Resources

Stars

62 stars

Watchers

3 watching

Forks

Repository files navigation

PoshUI Logo

Version License .NET Framework PowerShell


Welcome to PoshUI

PoshUI is a PowerShell UI framework that brings professional interfaces to your automation scripts. Create step-by-step wizards, live monitoring dashboards, and automated workflows—all with PowerShell cmdlets you already know.

This is my contribution to the PowerShell community, combining the flexibility of PowerShell with the polish of WPF to create something that IT professionals can actually use in their daily work. Built with object-oriented programming principles, it focuses on maintainable, modular code while keeping the end-user experience simple and intuitive.

What PoshUI Does:
Turn your PowerShell automation into professional Windows 11-style wizards, dashboards, workflows, and free-form apps—using familiar PowerShell cmdlets. No WPF, XAML, or C# knowledge required.

Who It's For:
IT professionals, system administrators, and DevOps engineers who want to make their automation accessible to help desk teams, colleagues, and end users who prefer a GUI over a command line.

See what you can build

Launchpad, the learning example: a splash screen, pages built from plain scripts, a workflow paused for approval and resumed from the history page, and a live switch to the light theme

Launchpad, the learning example in 1.5.1: a complete PoshUI app in half a minute.

Everything in that clip is PowerShell. You don't build a page for each script: Launchpad reads the script's comment help and param() block and builds its page and form for you, and the output streams in as it runs. The workflow stops at an approval, waits (it would survive closing the app), and picks up again from the history page. The theme switches live. The scripts inside are stand-ins; the structure is what you take away. → Structuring an App: Building Launchpad

🆕 What's new in 1.5

  • Learn how a whole app is built. (1.5.1) Launchpad is laid out as a real project, to study and copy: a front end that only draws, a back end with no UI in it, pages built from ordinary scripts, workflows that can wait for an approval, run history, a check script and tests. → Guide
  • Ship your script as an app. (1.5.0) New-PoshUIApp makes MyApp.exe with your icon, an admin prompt if it needs one, and Desktop/Start-menu shortcuts. Users double-click it: no .ps1, no console window, no re-signing. → How to
  • Live light and dark. (1.5.0) The title-bar toggle and Set-UICanvasTheme Toggle switch the whole app in place, and since 1.5.1 every window's title bar follows the theme too.
  • Pictures in your how-tos. (1.5.1) Add-UICanvasMarkdown shows the PNGs a markdown file points to, full width with a caption, so a how-to can carry the diagram that explains it.
  • Pick several rows. (1.5.1) Add-UICanvasDataGrid -Properties @{ SelectionMode = 'Multiple' }, and Get-UICanvasValue returns every row picked.
  • Fixes for data grids, light/dark switching, launchers started from PowerShell 7, the folder dialog and the number field. Release notes: 1.5.1 · 1.5.0 · download

Four PowerShell Modules

PoshUI provides four independent modules, each designed for a specific use case:

PoshUI.Canvas (new in v1.4.0)

Free-form apps — lay out anything, anywhere, with no fixed shell. Where the other three modules give you an opinionated frame, Canvas gives you a blank page and nearly 90 cmdlets.

PoshUI Canvas release showcase: animated splash, overview, live charts, motion demos and the themed calendar

The release showcase: one PowerShell script, included in the release package as Examples\Showcase-Release.ps1. From the extracted folder:

powershell -NoProfile -STA -File .\Examples\Showcase-Release.ps1

A single .ps1 is the application — no XAML, no MVVM, no project scaffolding, no build step:

Import-Module PoshUI.Canvas
New-PoshUICanvas -Title 'Hello' -Theme Dark
Set-UITheme -Preset Slate -Accent Sky | Out-Null
Add-UICanvasPage -Title 'Home' -Layout VStack
Add-UICanvasTextBox -Name who -Value 'World'
Add-UICanvasButton 'Greet' -Style Accent -Action {
    Show-UICanvasToast -Message ("Hello, " + (Get-UICanvasValue -Name who))
}
Show-PoshUICanvas

Canvas can express all three of the patterns below in one page — plus tabs, menus, splitters, live reactive state, charts, animation, secondary windows, and a raw-XAML escape hatch for anything the cmdlets don't cover.

Its engine-native workflow runner (-Engine) runs steps on their own runspace, so progress and elapsed time stay live during a long step, with per-step retry, timeouts, skip conditions and reboot-resume.

Ship it as an app (v1.5.0): New-PoshUIApp turns the script into MyApp.exe — a signed copy of PoshUI.exe plus a small MyApp.app.json naming the script, icon, admin requirement and shortcuts. Users double-click it or a Start-menu shortcut; no powershell.exe, no console window, no re-signing per app. → Staging & Delivery

Because it's flat, declarative, single-file and build-free, Canvas is also an unusually good target to develop for with an AI assistant — see the Agent Authoring Guide, a context pack written to be handed to a model. → About Canvas

PoshUI.Wizard

Step-by-step guided interfaces for configuration, deployment, and setup tasks.
Perfect for collecting user input with validation, then executing your automation logic.

Full-color PNG emoji icons in sidebar navigation, banners, and cards (v1.3.0):

Wizard Emoji Icons

PoshUI.Dashboard

Real-time monitoring interfaces with metrics, charts, and interactive tools.
Build card-based dashboards that display KPIs, visualize data, and turn scripts into clickable tools.

Dashboard Example

ScriptCards turn PowerShell scripts into clickable tools for end users — with PNG icons:

ScriptCard Example

PoshUI.Workflow

Multi-step automation with progress tracking and reboot/resume capabilities.
Orchestrate complex processes like server deployments, software installations, and maintenance tasks.

Workflow Example


Quick Start

Installation

Requirements:

  • Windows 10/11 or Windows Server 2016+ (x64)
  • .NET Framework 4.8 (pre-installed on Windows 10+)
  • Windows PowerShell 5.1 (included with Windows)

Download:

  1. Download the latest release from GitHub Releases
  2. Extract and unblock files: Get-ChildItem -Recurse | Unblock-File

Or build from source. This repository holds the source. The PowerShell modules run as they are; the WPF engine they drive (PoshUI.exe) is built from Launcher\, which is SDK-style with no third-party packages, so the .NET SDK alone is enough:

git clone https://github.com/Kanders-II/PoshUI.git
cd PoshUI
dotnet build Launcher\Launcher.csproj -c Release

The build writes PoshUI\bin\PoshUI.exe — where the modules already look for it, so there is nothing to copy afterwards. See Building from Source.

Simple Example

# Import the Wizard module
Import-Module .\PoshUI\PoshUI.Wizard\PoshUI.Wizard.psd1

# Create a wizard
New-PoshUIWizard -Title 'Server Setup' -Theme 'Auto'

# Add a step
Add-UIStep -Name 'Config' -Title 'Configuration' -Order 1

# Add controls
Add-UITextBox -Step 'Config' -Name 'ServerName' -Label 'Server Name' -Mandatory
Add-UIDropdown -Step 'Config' -Name 'Environment' -Label 'Environment' `
    -Choices @('Dev', 'Test', 'Prod') -Mandatory

# Execute with optional script body
Show-PoshUIWizard -ScriptBody {
    Write-Host "Configuring $ServerName in $Environment..." -ForegroundColor Cyan
    # Your automation logic here
}

Key Features

  • 12+ Input Controls - TextBox, Dropdown, Password, Date, File/Folder pickers, and more
  • Dashboard Visualization - MetricCards, Charts (Bar/Line/Area/Pie), DataGrids, ScriptCards
  • Dynamic Controls - Cascading dropdowns with scriptblock data sources
  • Workflow Automation - Multi-task execution with progress tracking and reboot/resume
  • Light/Dark Themes - Auto-detect system theme or force Light/Dark mode
  • Theme Toggle - Sun/moon button in title bar to switch themes at runtime (v1.3.0)
  • Dual-Mode Custom Themes - Define independent color palettes for light and dark modes (v1.3.0)
  • PNG Icon Support - Full-color PNG/ICO icons on steps, cards, banners, and branding (v1.3.0)
  • Live Execution Console - Real-time output display during script execution
  • CMTrace Logging - Enterprise-ready audit trails
  • Security Hardened - Injection-safe script generation, DPAPI-encrypted workflow state, ACL-restricted temp files, and optional signed-script enforcement (v1.3.1)
  • Free-Form Canvas - Build any layout from nearly 90 cmdlets in a single script, no XAML or build step (v1.4.0)
  • Engine-Native Workflow Runner - Steps run on their own runspace with live progress, retry, timeouts, skip conditions, and reboot-resume (v1.4.0)
  • Off-Gate Script Cards - Long-running tasks stream output live without freezing the rest of the app (v1.4.0)
  • Declarative Cascading Fields - Dropdown/ListBox options recompute from other fields with no event wiring (v1.4.0)
  • Tabs, Menus, Splitters & Viewbox - Native cmdlets for the layout chrome that used to require raw XAML (v1.4.0)
  • Master/Detail Grids - Add-UICanvasDataGrid -OnChange fires on row select so a grid can drive a detail pane (v1.4.0)
  • Per-Monitor V2 DPI - Stays crisp when moved between monitors with different scaling (v1.4.0)
  • Raw XAML Escape Hatch - Splice any WPF control in, name it, and hand it an -Actions scriptblock, so a control the cmdlets do not cover still behaves like one that does (v1.4.0)
  • Authoring Diagnostics - A -Properties key nothing read is logged by name instead of being silently dropped, with a hint when the key is real for a different control (v1.4.0)
  • Zero Dependencies - No third-party libraries or NuGet packages

Documentation

Full documentation: https://kanders-ii.github.io/PoshUI

The complete documentation includes:

  • Cmdlet Reference - All PowerShell cmdlets with examples
  • Module Guides - Canvas, Wizards, Dashboards, and Workflows
  • Control Library - 12+ input and visualization controls
  • Examples - Real-world use cases and patterns

Canvas: About Canvas · Capability Reference · Agent Authoring Guide (context pack for building Canvas apps with an AI assistant)


Contributing

PoshUI is my contribution to the PowerShell community. Contributions, feedback, and suggestions from others are welcome!

How to contribute:

  • Report bugs or request features via GitHub Issues
  • Submit pull requests for improvements
  • Share your use cases and examples

Icon Attributions

Icons8

The documentation screenshots use icons provided by Icons8. Icons8 icons are used under their licensing terms. If you use these icons in your own projects, please provide appropriate attribution to Icons8.

Microsoft Fluent Emoji

The documentation screenshots use 3D emoji icons from the Microsoft Fluent Emoji repository. Fluent Emoji is published by Microsoft under the MIT License. These high-quality 3D rendered PNG icons are ideal for use with PoshUI's -IconPath parameter.


License

MIT License - See LICENSE file for details.

Maintained by Kanders-II

About

Professional PowerShell UI framework - Create wizards, dashboards, and workflows using familiar cmdlets. No WPF/XAML required.

Topics

Resources

Stars

62 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages