Command Palette Extension

Modern Meeter ships a PowerToys Command Palette extension so you can control VoiceMeeter without switching to the app window. The extension is included in the same MSIX package as the app — installing Modern Meeter makes it available in Command Palette automatically.

What it does

  • List channels — Shows all VoiceMeeter input strips and output buses with their current gain and mute state
  • Toggle mute — Selecting a channel mutes or unmutes it directly from the palette
  • Connection aware — If VoiceMeeter isn’t running or installed, the extension surfaces a connect action or guidance instead of failing silently
  • Live updates — The channel list refreshes as VoiceMeeter parameters change

Using it

  1. Install Modern Meeter (from the Store or via sideload)
  2. Open PowerToys Command Palette
  3. Type “Modern Meeter” and select it to open the mixer list
  4. Pick a strip or bus to toggle its mute state

How it works

Command Palette discovers extensions through the package manifest rather than a separate install step. Modern Meeter’s Package.appxmanifest declares:

  • A windows.appExtension with Name="com.microsoft.commandpalette" — the identifier Command Palette scans for
  • A COM server (windows.comServer) pointing at ModernMeeter.exe -RegisterProcessAsComServer

When Command Palette activates the extension, it launches ModernMeeter.exe with the -RegisterProcessAsComServer argument. The custom Program.cs entry point detects this argument and starts an out-of-process COM server (via CmdPalServer.Run()) instead of the WinUI app.

The extension code lives in the ModernMeeter.CmdPal project:

  • ModernMeeterExtension implements IExtension and exposes the command provider
  • ModernMeeterCommandsProvider supplies the top-level commands and owns the mixer page
  • MixerPage (a ListPage) lists strips and buses
  • ToggleMuteCommand performs the mute toggle

ModernMeeter.CmdPal references ModernMeeter.Core for the VoiceMeeter API, keeping the Command Palette SDK and COM server dependencies out of the main app project.