Skip to content

Type overview & selection ​

Decide the type on this page first, then go copy the template from the matching card.


The 12 type values ​

typeResponsibilityEntry base classMultiplicityNotes
asrSpeech recognitionBaseASRProviderExclusive (active engine)Supports per-track routing or singleton sharing
mtMachine translationBaseMTEngineProviderExclusive (active engine)Same as above
ttsSpeech synthesisBaseTTSProviderExclusive (active engine)Inbound track → headphones / outbound track → virtual microphone / silent
interpretationEnd-to-end simultaneous interpretationBaseInterpretationProviderExclusive (active engine)Monolithic SI (e.g. iFlytek), bypasses the ASR→MT→TTS cascade
glossaryGlossaryData fileCan be enabled in multiplesJust write terms.json
themeTheme / UI slotsBaseThemePlugin / QMLExclusive for the full layermaterial/typography/effects can stack
i18nLanguage packJSONExclusiveWhole-UI translation
middlewarePipeline middlewareBasePipelineMiddlewareCan be enabled in multiplesOrdered by priority
assistantAI assistantBaseAssistantPluginCan be enabled in multiplesPlugin window / answering / chat copilot
toolTool / text source / select-to-translateBaseToolPlugin / BasePluginCan be enabled in multipleshotkeys + action_*, not attached to the pipeline
caption_bridgeWeb caption bridgeWorkshop plugin community_web_caption_bridgeOne transport serviceShips via the Workshop, not bundled into the official package; third parties must not write another bridge
caption_extractorCaption extraction for video sitesOpen (extractor.js)Can be enabled in multiplesAdds site support for the browser extension

Retired ghost types: audio_filter, bundle — deprecated, the host does not recognise them, forbidden in mod.json.

mt plugins use target_langs to declare "which languages it can translate into"; the host builds the caption translate-language dropdown from it. See Language codes & translatable languages.


Selection cheat sheet ​

What you want to doPick this
Game / industry name mapping (multiple directions)glossary (zero code)
Change caption colours / opacitytheme (JSON)
Replace the backplate / VU meter / decorative visual componentstheme + QML, or a standalone ui-qml
Text cleanup, profanity filteringmiddleware
Wire up private speech recognitionasr
Wire up DeepL / an LLM / local translationmt
Wire up Edge-TTS / GPT-SoVITS / local TTStts
End-to-end real-time SI (brings its own ASR+MT+TTS)interpretation
AI interview / defence copilotassistant
Select-to-translate / global hotkey toolstool
Translate the UI into more languagesi18n
Add caption extraction for another video sitecaption_extractor

Don't use middleware with action_* to fake a tool plugin — tools / text sources must use the official type: tool, otherwise the hub category is wrong and so are the hotkey semantics.


Hub category mapping ​

The host maps type onto the category shown on the hub card:

typeHub category
middlewarePipeline tools
toolPipeline tools
asr / mt / ttsThe matching capability category
interpretationReal-time SI
Unrecognised typeOther

UI categories & slot mutual exclusion (summary) ​

  • tool → "Pipeline tools"; unknown type → "Other".
  • Shared UI slots are mutually exclusive (these only): overlay_background, caption_view, audio_level, alert_capsule, overlay_decorations, settings_background, history_background, dialog_background, window_background, copilot_window.
  • settings_view must not be mutually exclusive (every plugin has its own settings form).
  • The complete slot list and the background-slot guidelines are in UI slots.

TransBox — empowering borderless cross-language communication for everyone