Reference

Keep one workflow surface in view

This page is a cheat sheet, not cmdlet help. Pick PowerShell once, then read examples and notes that stay on that surface.

Use the toggle to switch between the native pwsh cmdlet experience and the standalone nova launcher workflow.

Choose your surface

PowerShell mode: stay on the public cmdlets when you want a native pwsh workflow, PowerShell objects, and built-in -WhatIf / -Confirm behavior.

One allowed exception: installing the nova launcher is still a PowerShell step because there is no CLI alternative for installing the CLI itself. Use Install-NovaCli once, then stay on nova.

Need Stay on this surface
Reusable scripts or structured output Initialize-NovaModule, Invoke-NovaBuild, Test-NovaBuild, Publish-NovaModule
Native PowerShell automation Use the public cmdlets directly and keep the workflow inside pwsh

Set up a project

Install the nova launcher

Use this one-time PowerShell setup when you want nova available directly from your shell.

  • Use when: you want the platform-native launcher on macOS, Linux, or any shell session that should call nova directly
  • Why it stays here: there is no CLI alternative for installing the CLI itself
PS> Install-NovaCli
PS> Install-NovaCli -DestinationDirectory ~/bin -Force

See setup details

Start a new project

Cmdlet: Initialize-NovaModule

Create the minimal scaffold or the example scaffold for a new module project.

  • Use when: you are creating a fresh NovaModuleTools project
  • Includes: a pre-question Nova release warning, best-effort .gitignore creation or update when Git is enabled, and Nova's default Pester.CodeCoverage block in project.json; the minimal scaffold keeps coverage opt-in, while the packaged example scaffold starts with coverage enabled against src/**/*.ps1
  • Optional: add the Agentic Copilot starter package for Nova-maintained build, test, analyzer, help, and guidance files; if you enable it, Nova also asks for a short project name for placeholders such as Invoke-<ShortName>*
  • Common parameters: -Path and -Example

Create a scaffold

Showing: PowerShell

PS> Initialize-NovaModule -Path ~/Work
PS> Initialize-NovaModule -Example -Path ~/Work

See the scaffold guide

Apply or refresh the copilot workflow

Cmdlet: Invoke-NovaAgenticCopilotScaffold

Add Nova's maintained Agentic Copilot workflow to an existing project, or refresh an older Nova-managed scaffold to the current version.

  • Use when: the project already exists and you want Nova to add or refresh the managed Agentic guidance files without recreating the scaffold
  • Requires: a valid project.json and an explicit short name on every run for placeholders such as Invoke-<ShortName>*
  • Common parameters: -ShortName, -Path, -WhatIf, and -OverrideWarning
  • Default safety: Nova prompts before overwriting the managed scaffold paths and only creates README.md, CHANGELOG.md, and RELEASE_NOTE.md when they are missing

Apply the managed scaffold

Showing: PowerShell

PS> Invoke-NovaAgenticCopilotScaffold -ShortName NMT
PS> Invoke-NovaAgenticCopilotScaffold -Path ~/Work/MyModule -ShortName NMT -OverrideWarning

See the copilot apply guide

Inspect the current project

Cmdlet: Get-NovaProjectInfo

Read resolved project metadata, defaults, and paths such as dist/ and tests/.

  • Use when: you need to confirm what Nova resolved from project.json
  • Extra views: -Version, -Installed, and -InstalledNovaVersion

Inspect project metadata

Showing: PowerShell

PS> Get-NovaProjectInfo
PS> Get-NovaProjectInfo -Version
PS> Get-NovaProjectInfo -Installed
PS> Get-NovaProjectInfo -InstalledNovaVersion

See project.json behavior

Build and validate

Build the current project

Cmdlet: Invoke-NovaBuild

Generate the built module in dist/<ProjectName> before you test, package, or publish.

  • Use when: you want the real output Nova will package or publish
  • Common parameters: -WhatIf, -Confirm, and -ContinuousIntegration

Build now

Showing: PowerShell

PS> Invoke-NovaBuild
PS> Invoke-NovaBuild -WhatIf
PS> Invoke-NovaBuild -ContinuousIntegration

See the build workflow

Run the test workflow

Cmdlets: Invoke-NovaTest for unit tests, Test-NovaBuild for build validation

Run Nova's managed test workflows for the current project. Invoke-NovaTest writes unit-test results to artifacts/UnitTestResults.xml, and Test-NovaBuild writes build-validation results to artifacts/TestResults.xml.

If coverage is enabled in project.json, Invoke-NovaTest also writes artifacts/coverage.xml and fails when measured coverage stays below the configured CoveragePercentTarget.

  • Use when: you want unit tests from PowerShell or the default Nova test flow from the CLI
  • Cmdlet extras: Invoke-NovaTest supports -TagFilter, -ExcludeTagFilter, -OutputVerbosity, and -OutputRenderMode, and the guarded -PesterConfigurationOverride hook for Run.Container. Test-NovaBuild supports the same output options plus -OverrideWarning.

Test the project

Showing: PowerShell

PS> Invoke-NovaTest
PS> Test-NovaBuild
PS> Invoke-NovaTest -TagFilter unit,fast
PS> $credential = Get-Credential
PS> $container = New-PesterContainer -Path 'tests/public/PublishNovaModule.Tests.ps1' -Data @{ Credential = $credential }
PS> Invoke-NovaTest -PesterConfigurationOverride @{ Run = @{ Container = @($container) } }

See the test workflow

Package and ship

Create package artifacts

Cmdlet: New-NovaModulePackage

Build, test, and package the module, usually into artifacts/packages/.

  • Use when: you want a reusable package artifact from the built module
  • Common parameter: -SkipTests when tests already ran earlier in CI/CD

Package the module

Showing: PowerShell

PS> New-NovaModulePackage
PS> New-NovaModulePackage -SkipTests

See packaging details

Upload raw package artifacts

Cmdlet: Deploy-NovaPackage

Upload existing package files to a raw HTTP endpoint without rebuilding or retesting first.

  • Use when: you already have artifacts and just need the upload step
  • Key inputs: repository settings, explicit URL values, or token settings

Upload artifacts

Showing: PowerShell

PS> Deploy-NovaPackage -Repository LocalNexus
PS> Deploy-NovaPackage -Url 'https://packages.example/raw/' -Token $env:NOVA_PACKAGE_TOKEN

See raw upload details

Publish the module

Cmdlet: Publish-NovaModule

Build, test, and publish the module locally or to a registered PowerShell repository.

  • Use when: you are ready to publish instead of just package
  • Common parameters: -Local, -Repository, -ApiKey, -SkipTests, and -ContinuousIntegration

Publish now

Showing: PowerShell

PS> Publish-NovaModule -Local
PS> Publish-NovaModule -Repository PSGallery -ApiKey $env:PSGALLERY_API
PS> Publish-NovaModule -Repository PSGallery -ApiKey $env:PSGALLERY_API -SkipTests

See publish details

Run the release workflow

Cmdlet: Invoke-NovaRelease

Run the end-to-end release flow: build, test, bump version, build again, and publish.

  • Use when: you want one orchestrated release command instead of separate steps
  • Common parameters: -Local, -Repository, -ApiKey, -SkipTests, and -ContinuousIntegration

Release the module

Showing: PowerShell

PS> Invoke-NovaRelease -Local
PS> Invoke-NovaRelease -Repository PSGallery -ApiKey $env:PSGALLERY_API
PS> Invoke-NovaRelease -Repository PSGallery -ApiKey $env:PSGALLERY_API -SkipTests
PS> Invoke-NovaRelease -Repository PSGallery -ApiKey $env:PSGALLERY_API -ContinuousIntegration

See release details

Version and update

Plan or apply a version bump

Cmdlet: Update-NovaModuleVersion

Use Git history to infer the next version and update project.json.

  • Use when: you want Nova to plan or apply the semantic version change
  • Common parameters: -Preview, -WhatIf, -ContinuousIntegration, and -OverrideWarning

Preview a bump

Showing: PowerShell

PS> Update-NovaModuleVersion -Preview -WhatIf
PS> Update-NovaModuleVersion -Path ./src/resources/example -OverrideWarning -WhatIf
PS> Update-NovaModuleVersion -ContinuousIntegration

See versioning rules

Check the version you actually mean

Cmdlet: Get-NovaProjectInfo

Project version, installed project-module version, and installed NovaModuleTools version are different views.

  • Use: Get-NovaProjectInfo -Version for project.json and Get-NovaProjectInfo -Installed for the installed current project/module and Get-NovaProjectInfo -InstalledNovaVersion for the installed NovaModuleTools tool version

Read the right version view

Showing: PowerShell

PS> Get-NovaProjectInfo -Version
PS> Get-NovaProjectInfo -Installed
PS> Get-NovaProjectInfo -InstalledNovaVersion

See version view differences

Self-update NovaModuleTools

Cmdlets: Update-NovaModuleTool and Update-NovaModuleTools

Update the installed NovaModuleTools module by using the stored prerelease preference.

  • Use when: you want to update the tool itself rather than a project
  • Behavior: stable updates are always eligible; prerelease targets still need the stored preference and an explicit confirmation

Update the tool

Showing: PowerShell

PS> Update-NovaModuleTool
PS> Update-NovaModuleTools

See self-update behavior

Manage prerelease update preference

Cmdlets: Get-NovaUpdateNotificationPreference and Set-NovaUpdateNotificationPreference

Inspect or change whether prerelease self-updates are eligible.

  • Use when: you want to stay on stable releases or opt into prerelease updates on purpose
  • Settings file: %APPDATA% on Windows, otherwise $XDG_CONFIG_HOME when set, then ~/.config/NovaModuleTools/settings.json

Inspect or change prerelease eligibility

Showing: PowerShell

PS> Get-NovaUpdateNotificationPreference
PS> Set-NovaUpdateNotificationPreference -DisablePrereleaseNotifications
PS> Set-NovaUpdateNotificationPreference -EnablePrereleaseNotifications

See preference guidance