Quickstart
Your first Voxta module — from empty folder to loaded DLL.
This page walks you from nothing to a module Voxta loads and shows in its services list. The example module does nothing useful — once it loads, follow the Configuration UI and Service types pages to make it do real work, or jump straight to the Elite Dangerous reference module for a full implementation.
Prerequisites
- .NET 10 SDK (download)
- A working Voxta Server installation
- An IDE (Rider, Visual Studio, or VS Code with the C# Dev Kit)
1. Create the project
dotnet new classlib -n Voxta.Modules.Hello -f net10.0
cd Voxta.Modules.Hello2. Replace the .csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>Voxta.Modules.Hello</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Voxta.Sdk.Modules" Version="1.5.1" />
<PackageReference Include="Voxta.Model" Version="1.5.1" />
</ItemGroup>
</Project>The two NuGet packages give you everything you need to register a module and use the framework types. See SDK packages for the full catalog.
3. Write VoxtaModule.cs
Delete the auto-generated Class1.cs and create VoxtaModule.cs:
using Microsoft.Extensions.DependencyInjection;
using Voxta.Abstractions.Modules;
using Voxta.Abstractions.Registration;
using Voxta.Model.Shared;
namespace Voxta.Modules.Hello;
public class VoxtaModule : IVoxtaModule
{
public void Configure(IVoxtaModuleBuilder builder)
{
builder.Register(new ServiceDefinition
{
ServiceName = "Hello",
Label = "Hello, Voxta",
Experimental = true,
Pricing = ServiceDefinitionPricing.Free,
Hosting = ServiceDefinitionHosting.Builtin,
Supports = new Dictionary<ServiceTypes, ServiceDefinitionCategoryScore>
{
{ ServiceTypes.ChatAugmentations, ServiceDefinitionCategoryScore.Low }
}
});
}
}That's the minimum viable module. It registers a service named Hello that supports chat augmentations but doesn't implement any — useful only to verify Voxta picks it up.
4. Build
dotnet build -c ReleaseOutput ends up in bin/Release/net10.0/Voxta.Modules.Hello.dll.
5. Install
Copy the DLL into the Modules/ subfolder of your Voxta install (the folder containing Voxta.Server.exe). Create the folder if it doesn't exist:
<Voxta install folder>/
└── Modules/
└── Voxta.Modules.Hello.dllRestart Voxta. Open the services page — Hello, Voxta should appear in the list with the Experimental badge.
See Installing a module for dependency handling and troubleshooting.
What next
The module is loaded but does nothing. Pick a service type and implement it:
- ChatAugmentations — inject context into the conversation, listen for events, expose actions to the LLM. The Elite Dangerous module is the canonical example.
- TextGen — bring your own LLM provider.
- TextToSpeech / SpeechToText — bring your own voice tech.
See the full list at Service types, then read the voxta-module-elite-dangerous source to see each pattern applied in a real module.