Agibuild.Modulus.Templates 1.0.25347.1619

dotnet new install Agibuild.Modulus.Templates::1.0.25347.1619
                    
This package contains a .NET Template Package you can call from the shell/command line.

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/cli/modulus.exe

Install Module

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

# Install from directory (for development)
modulus install ./artifacts/bin/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

  • net10.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.25347.1619 172 12/14/2025