Crust is a simple, elegant solution for adding a retro stylized, traversable, menu-driven interface to your PowerShell scripts, toolsets, and applications.
- Simple, scalable framework
- Can be easily integrated into any project or toolset
- Language localizing feature that discovers the user's UI culture of PowerShell and then loads the matching json file with language localized content
This framework utilizes the following languages and applications:
This shows the main menu with a sample menu structure.
Use the following section to learn how to start using the Crust framework to build your project's next CLI menu.
| Prerequisite | Version |
|---|---|
| PowerShell | >= 7.0 |
See the usage section below.
This scenario involves downloading the following files from the repo and putting them into your own project.
- Download the following files
- .\modules\crust.psm1 - .\configs\crust.json - .\lang\en-US\en-US.json - .\configs\menu.json - Add them to any part of your project
- Import the crust.psm1 module within your own project
- Call the Invoke-CrustMenu function passing the relative/absolute paths to the remaining files
This scenario allows you to associate your menu in another repo or pull it from a web address and share.
This is helpful when you may want to launch the menu for your toolset or project from an environment and you don't want to download all the content or use tools to localize on-demand.
- Add the following snippet to your project to download the module and import
Invoke-WebRequest -Uri $Params_Crust.ModuleUrl -OutFile "$($env:TEMP)\crust.psm1" Import-Module -Name "$($env:TEMP)\crust.psm1 -Force"
- Call the Invoke-CrustMenu function passing the web/repo paths to the remaining files
For more examples, please refer to the Documentation
- Convert old code to official project
- Add remote execution logic
For a full list of proposed features and issues, please refer to the Issues
This provides a brief review of the last two releases and an overview of their changes.
| Release | Codename | Date | Contributor(s) | Brief Description | Status |
|---|---|---|---|---|---|
| 1.2.0 | Cairngorm | 2026-03-07 | Dustin Estes | #4 Enhancement: Compact Module Files, #2 Feature: Authentication | Latest |
| 1.1.0 | Bloodstone | 2026-03-04 | Dustin Estes | cleaned up code, updated description, updated documentation, added screenshot for readme, fixed output formatting issues, fixed issues found by agent review | End-of-Life |
| 1.0.0 | Anorthose | 2026-03-02 | Dustin Estes | Initial creation of the official Crust project. Migrated the project out of an old GitHub repo and updated all content to improve logic, formatting, etc. Created branding. | End-of-Life |
For a detailed list of all changes, please refer to the Releases
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/FeatureName) - Commit your Changes (
git commit -m 'Add some FeatureName') - Push to the Branch (
git push origin feature/FeatureName) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Any special acknowledgements or recognitions that contributed to the success of this project.
- None
