NovaModuleTools for end users

Build consistent, correctly structured PowerShell modules without reinventing the workflow

NovaModuleTools gives you a practical starting point for PowerShell module development: scaffold a project, follow a clear folder structure, build a distributable module, and run tests with a repeatable workflow.

1 Scaffold

Start with nova init or New-NovaModule.

2 Build

Turn your source files into a real module with nova build.

3 Test

Run nova test and validate the built result, not just loose scripts.

Who NovaModuleTools is for

NovaModuleTools is for developers who want to create PowerShell modules with a clear, repeatable structure — especially if they do not already feel confident about PowerShell module layout, build flow, or best practices.

It is designed to give you a simpler path from idea to working module, without needing deep PowerShell module knowledge on day one.

Why developers use NovaModuleTools

Most PowerShell module problems do not start with the business logic. They start with inconsistent structure, unclear conventions, ad-hoc packaging, and test flows that are hard to repeat.

Reduce guesswork

Use a known layout for public functions, private helpers, classes, resources, tests, and output.

Build with confidence

Generate a real module in dist/ so you can validate the same shape you plan to publish.

Stay consistent over time

Keep module development predictable across one project or many projects in the same organization.

Learn by doing

Start from a scaffold or inspect the included example project when you want a working reference.

What you get out of the box

  • A scaffolded project with a practical PowerShell module layout
  • A build flow that combines your source into a module under dist/
  • Test support built around validating the built module result
  • Support for resources, classes, manifest settings, and help generation
  • A CLI workflow through nova or the PowerShell cmdlets directly

Start here in 3 steps

You do not need to know everything about PowerShell modules before you start.

01

Install NovaModuleTools

Install-Module -Name NovaModuleTools
Import-Module NovaModuleTools

If you want a shell command on macOS/Linux, install the launcher with Install-NovaCli.

02

Create a module scaffold

nova init

Answer the prompts and let NovaModuleTools create the project structure for you.

03

Build and test your module

nova build
nova test

This gives you a repeatable workflow from source files to a built module in dist/.

What the project structure helps you do

NovaModuleTools keeps the structure explicit so it is easier to understand what belongs where.

  • src/public — functions exported from the module
  • src/private — internal helpers used by your public commands
  • src/classes — classes and enums
  • src/resources — bundled files such as JSON config
  • tests — Pester tests
  • dist — the built module output
project.json
src/
  public/
  private/
  classes/
  resources/
tests/
dist/

Use the example when you want to see a complete working setup

If you learn best by inspecting something real, the repository includes an example module project that can be built, tested, imported, and run.

Recommended next step for new users

Open the example project, run the commands, and compare the source files with the built output.

View example guide

Frequently asked questions

Do I need to know advanced PowerShell module concepts before using NovaModuleTools?

No. The tool is useful specifically because it gives you structure and a workflow you can follow while learning.

Can I use the CLI instead of PowerShell cmdlet names?

Yes. Inside PowerShell you can use the nova alias, and on macOS/Linux you can install a standalone launcher with Install-NovaCli.

What does nova build actually give me?

It creates a built module under dist/<ProjectName> so you can import, test, and publish the result as a proper module.

Should I start from the scaffold or the example?

Use the scaffold if you want to begin your own module immediately. Use the example if you want a working reference project you can inspect and run first.