Host implementation status
The confirmed list of exposed capabilities — do not guess hooks that do not exist, and do not rely on slots nobody consumes. This list is based on
HostProtocolinsrc/transbox/plugins/base.pyand the individual bridge Mixins.
Host SPI
- [x] Captions:
feed_direct_caption/feed_caption/ the lightweight caption path /drop_noise/ on-demandtts - [x] Translation facade:
translate/translate_batch(includingglossary_context) - [x] Hotkeys:
mod.json.hotkeysdeclaration + main-thread registration + asynchronous action dispatch - [x] Config:
get_plugin_config/set_plugin_config_value/save_plugin_config(including thepluginConfigChangedbroadcast) - [x] Private data: data directory + KV read/write/delete
- [x] Session:
get_recent_conversation/get_history_as_text - [x] State:
get_pipeline_state/get_active_provider/list_installed_plugins/plugin_dir/has_plugin/runtime_dir/has_runtime/get_app_version/get_locale/log - [x] Models:
list_model_artifacts/inspect_model_artifact/download_model_artifact - [x] Events:
handle_host_event+subscribe_event/unsubscribe_event/unsubscribe_all_events - [x] Speech:
speak/stop_speak/is_speaking - [x] Feedback:
show_toast/show_error/set_window_excluded_from_capture/ Copilot window control - [x] Overlay windows:
create_plugin_windowand friends (multiple instances / positioning / click-through / capture protection) - [x] Files:
pick_file/pick_files/pick_folder/pick_save_file - [x] Progress:
begin_progress/update_progress/end_progress/cancel_progress/is_progress_cancelled/get_progress+ thepluginProgresssignal - [x]
HostProtocoltype annotations (the complete set)
Types & lifecycle
- [x] First-class support for
type: tooland its workshop category (pipeline tools) - [x]
settings_viewdoes not take part in UI slot mutual exclusion - [x]
target_app_versionhard check (since 0.2: an external/hub plugin that omits it is refused at scan, at instance creation and at hub install) - [x] The
min_app_versionruntime gate (1.0.0= no restriction) - [x] Dual-track routing + instance reuse +
supports_concurrent_streams
Engine capabilities
- [x] MT target-language capability:
mod.json.target_langs→ caption "translate to" dropdown (Chinese/English by default + user-activated languages; filtered per model) - [x] Read-only capability probe
PluginRegistry.plugin_capabilities()(does not create an instance / does not start a service) +mod.json.capabilities - [x] Lazy-load gate: read-only paths (settings-page status / voices / model card) do not create instances; an external plugin's asynchronous
initializecan be awaited until it settles - [x] TTS voice SPI:
list_voices/register_voice/remove_voice+ the settings-page "Register cloned voice" (including in-app reference-audio recording of 1~30s, saved to<data dir>/voice_samples/) - [x] Host-wide speed stretching (when a plugin does not declare
supports_speed) - [x] The
check_ready()readiness gate + therequires_runtime/requires_pluginsdependency gates
Distribution
- [x] Local
extensions/+%APPDATA%/transbox/extensions/scanning - [x] Steam Workshop (AppID 5521270 / Playtest 5227990)
- [x] Web Plugin Hub (self-published builds only): browse / subscribe / download and install / update check / revocation / author upload
- [x] Host runtimes:
requires_runtime+host.runtime_dir()/host.has_runtime()(llama_runtime/whisper_runtime/audiocpp_runtime/tts_server_runtimeare all bundled with the installer, extracted underdata/local-runtime/runtimes/<name>/;nv_pack_cu13is the NVIDIA-only acceleration pack and uses a separate download channel) - [x] The same
target_app_versiongate for the Web Hub / Steam Workshop / hand-placed plugins (old 0.1 packages cannot install themselves)
Things that explicitly do not exist (don't look for them)
| Does not exist | Notes |
|---|---|
A Loader for the overlay_root / style_bar slots | Declaring them has no effect; do not rely on them |
A file picker control for config_schema | The type is reserved but rendered as a text box; ship your own settings_view or use host.pick_file() |
| A low-level API for plugins to register hotkeys themselves | You must go through the host API (calling ctypes.RegisterHotKey yourself fails silently) |
Runtime pip install | Strictly forbidden; use libs/ / vendor/ or an external process |
| Sandbox / permission isolation | No sandbox; plugins have the same privileges as the main application |
Related
- SPI index & cheat sheet
- UI slots — consumed / unconsumed slots
- Compatibility & version gates
- Runtime environment & red lines
