Skip to content

Prerequisites & Installation

Modulus is a .NET global tool that scaffolds production-ready modular monolith solutions. This page covers everything you need to install and start using the CLI.

Prerequisites

.NET 10 SDK

Modulus targets .NET 10.0. You need the SDK installed to both run the CLI and build generated solutions.

Download .NET 10 SDK

Verify your installation:

bash
dotnet --version
# 10.0.100 or later

Docker (optional)

The generated solution includes integration tests powered by Testcontainers. If you plan to run integration tests locally, you need Docker Desktop or a compatible container runtime.

Not required for getting started

Docker is only needed for integration tests. You can scaffold solutions, build, and run unit tests without it.

Installation

Install the Modulus CLI as a .NET global tool:

bash
dotnet tool install --global ModulusKit.Cli

Verify Installation

After installation, confirm the CLI is available:

bash
modulus version

This outputs the installed version of Modulus. If you receive a "command not found" error, ensure that the .NET global tools directory is on your PATH.

.NET global tools path

The default global tools directory is:

  • Windows: %USERPROFILE%\.dotnet\tools
  • macOS / Linux: $HOME/.dotnet/tools

Add the appropriate path to your shell profile if it is not already present.

Update

To update to the latest version:

bash
dotnet tool update --global ModulusKit.Cli

Uninstall

To remove Modulus:

bash
dotnet tool uninstall --global ModulusKit.Cli

NuGet Packages

Modulus ships as a CLI tool plus a set of companion library packages. The CLI automatically references the correct packages when scaffolding a solution, so you do not need to install them manually.

PackageDescription
ModulusKit.CliCLI tool for scaffolding modular monolith solutions
ModulusKit.MediatorCQRS mediator with pipeline behaviors and Result pattern
ModulusKit.Mediator.AbstractionsMediator interfaces, Result types, and pipeline contracts
ModulusKit.MessagingMassTransit messaging with multi-transport and outbox support
ModulusKit.Messaging.AbstractionsMessaging interfaces and integration event contracts

Abstractions packages

The Abstractions packages contain only interfaces and contracts with zero third-party dependencies. Reference them in your Domain and Application layers to keep those layers clean. The implementation packages (ModulusKit.Mediator and ModulusKit.Messaging) are referenced only in Infrastructure and host projects.

What's Next

Now that Modulus is installed, walk through the end-to-end tutorial to create your first modular monolith solution.

Your First Solution

Released under the MIT License.