Skip to content

VividRock/Crust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alt text

Crust - A PowerShell CLI Menu Framework

Contributors Forks Stargazers Issues License

Table of Contents


About

Crust is a simple, elegant solution for adding a retro stylized, traversable, menu-driven interface to your PowerShell scripts, toolsets, and applications.

Features

  • 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

Tech Stack

This framework utilizes the following languages and applications:

PowerShell

Screenshots


This shows the main menu with a sample menu structure.

(back to top)

Getting Started

Use the following section to learn how to start using the Crust framework to build your project's next CLI menu.

Prerequisites

Prerequisite Version
PowerShell >= 7.0

Installation

See the usage section below.

(back to top)

Usage

Local Execution

This scenario involves downloading the following files from the repo and putting them into your own project.

  1. Download the following files
    - .\modules\crust.psm1
    - .\configs\crust.json
    - .\lang\en-US\en-US.json
    - .\configs\menu.json
    
  2. Add them to any part of your project
  3. Import the crust.psm1 module within your own project
  4. Call the Invoke-CrustMenu function passing the relative/absolute paths to the remaining files

Remote Execution

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.

  1. 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"
  2. Call the Invoke-CrustMenu function passing the web/repo paths to the remaining files

For more examples, please refer to the Documentation

(back to top)

Roadmap

  • Convert old code to official project
  • Add remote execution logic

For a full list of proposed features and issues, please refer to the Issues

(back to top)

Release History

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

(back to top)

Contribution

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".

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/FeatureName)
  3. Commit your Changes (git commit -m 'Add some FeatureName')
  4. Push to the Branch (git push origin feature/FeatureName)
  5. Open a Pull Request

Top contributors:

contrib.rocks image

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Acknowledgments

Any special acknowledgements or recognitions that contributed to the success of this project.

  • None

(back to top)

About

Crust is a simple, elegant solution for adding a retro stylized, traversable, menu-driven interface to your PowerShell scripts, toolsets, and applications.

Resources

License

Stars

Watchers

Forks

Contributors