Agibuild.Modulus.Cli 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global Agibuild.Modulus.Cli --version 1.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Agibuild.Modulus.Cli --version 1.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Agibuild.Modulus.Cli&version=1.0.0
                    
nuke :add-package Agibuild.Modulus.Cli --version 1.0.0
                    

Modulus

Modulus is a modern, cross-platform, plugin-based application framework designed to help developers quickly build extensible, maintainable, and AI-ready tools.

✨ Features

Multi-Host Architecture

  • UI-Agnostic Core: Business logic independent of any UI framework
  • Pluggable Hosts: Supports Avalonia (desktop) and Blazor Hybrid (MAUI)
  • Shared Core Logic: Same Domain/Application code runs across all hosts

Extension System

  • VS Extension Compatible: Uses extension.vsixmanifest (XML) format
  • Hot-Reloadable: AssemblyLoadContext-based isolation for dynamic load/unload
  • Explicit Installation: Extensions installed via CLI or UI, not auto-discovered
  • Type-Safe Entry Points: ModulusPackage base class similar to VS VsPackage

Developer Experience

  • Extension SDK with declarative attributes
  • AI Agent plugin support (LLM integration)
  • Signature verification and version control
  • Cross-platform: Windows / macOS / Linux

🏗️ Architecture

src/
├── Modulus.Core/              # Runtime, module loader, DI
├── Modulus.Sdk/               # SDK: ModulusPackage, attributes
├── Modulus.UI.Abstractions/   # UI contracts (IMenuRegistry, INavigationService)
├── Hosts/
│   ├── Modulus.Host.Avalonia/ # Avalonia desktop (ID: Modulus.Host.Avalonia)
│   └── Modulus.Host.Blazor/   # Blazor Hybrid (ID: Modulus.Host.Blazor)
└── Modules/
    ├── EchoPlugin/            # Example: Echo plugin
    ├── SimpleNotes/           # Example: Notes module
    └── ComponentsDemo/        # Example: UI components demo

📦 Extension Structure

MyExtension/
├── extension.vsixmanifest     # XML manifest (VS Extension format)
├── MyExtension.Core.dll       # Core logic (host-agnostic)
├── MyExtension.UI.Avalonia.dll
└── MyExtension.UI.Blazor.dll

🚀 Getting Started

Run Avalonia Host

dotnet run --project src/Hosts/Modulus.Host.Avalonia

Run Blazor Host

dotnet run --project src/Hosts/Modulus.Host.Blazor

Run Tests

dotnet test

🔌 Creating an Extension

1. Create Projects

MyExtension/
├── MyExtension.Core/
├── MyExtension.UI.Avalonia/
└── MyExtension.UI.Blazor/

2. Define Entry Point

// MyExtension.Core/MyExtensionPackage.cs
public class MyExtensionPackage : ModulusPackage
{
    public override void ConfigureServices(IModuleLifecycleContext context)
    {
        context.Services.AddSingleton<IMyService, MyService>();
    }
}

3. Create Manifest


<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" 
    xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011">
  <Metadata>
    <Identity Id="your-guid" Version="1.0.0" Publisher="You" />
    <DisplayName>My Extension</DisplayName>
    <Description>My awesome extension</Description>
  </Metadata>
  <Installation>
    <InstallationTarget Id="Modulus.Host.Avalonia" Version="[1.0,)" />
    <InstallationTarget Id="Modulus.Host.Blazor" Version="[1.0,)" />
  </Installation>
  <Assets>
    <Asset Type="Modulus.Package" Path="MyExtension.Core.dll" />
    <Asset Type="Modulus.Package" Path="MyExtension.UI.Avalonia.dll" 
           TargetHost="Modulus.Host.Avalonia" />
    <Asset Type="Modulus.Menu" Id="my-menu" DisplayName="My Tool" 
           Icon="Home" Route="MyExtension.ViewModels.MainViewModel" 
           TargetHost="Modulus.Host.Avalonia" />
  </Assets>
</PackageManifest>

4. Install Extension

modulus install ./MyExtension

🛠️ CLI Tool

Modulus provides a command-line tool for module management.

Install CLI

# Install from NuGet (available after publishing)
dotnet tool install -g Agibuild.Modulus.Cli

# Or install from local build
dotnet tool install -g --add-source ./artifacts/packages Agibuild.Modulus.Cli

# During development, use directly
./artifacts/modulus.exe

Install Module

# Install from .modpkg file
modulus install ./MyModule-1.0.0.modpkg

# Install from directory (for development)
modulus install ./artifacts/Modules/MyModule/

# Force overwrite existing installation
modulus install ./MyModule-1.0.0.modpkg --force

Uninstall Module

# Uninstall by module name
modulus uninstall MyModule

# Uninstall by module ID
modulus uninstall a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d

# Skip confirmation
modulus uninstall MyModule --force

List Installed Modules

# Basic list
modulus list

# Show detailed information
modulus list --verbose

Package Module

# Package all modules to artifacts/packages/
nuke pack-module

# Package a single module
nuke pack-module --name EchoPlugin

📚 Documentation

Project Status

  • Phase: Active Development
  • Test Coverage: 30+ tests passing
  • Platforms: Windows, macOS, Linux

Contributing

Pull requests and issues are welcome! See CONTRIBUTING.md for guidelines.

License

MIT License

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.0.25353.435 278 12/19/2025
1.0.25351.1546 281 12/17/2025
1.0.25351.1455 277 12/17/2025
1.0.25348.1452 163 12/14/2025
1.0.25348.545 161 12/14/2025
1.0.25348.341 162 12/14/2025
1.0.25348.151 164 12/14/2025
1.0.25347.1609 175 12/13/2025
1.0.25347.1546 186 12/13/2025
1.0.0 446 12/10/2025