This plugin controls a local TeamSpeak 3 client from StreamController using the TeamSpeak ClientQuery plugin.
Toggle Microphone MuteToggle Sound MuteSwitch To ChannelMove To Previous ChannelSend Raw ClientQuery Command
Switch To Channel- Target accepts channel ID or channel name.
- If you are already in the target channel, the action exits cleanly.
- Optional channel password can be configured per action.
Move To Previous Channel- First press initializes history for this action key.
- Next press moves back to the previous channel.
- Repeated presses toggle between last two channels.
- Optional channel password can be configured per action.
Send Raw ClientQuery Command- Sends exactly the configured command string.
- Linux
- StreamController (
>= 1.5.0-beta) - TeamSpeak 3 client with ClientQuery plugin enabled
- A ClientQuery API key from TeamSpeak
Use this when you want to test the plugin without packaging it.
- Close StreamController completely.
- Find your local StreamController plugins directory.
- Typical Flatpak path on Linux:
~/.var/app/com.core447.StreamController/data/plugins/ - If your installation differs, open StreamController once and check its settings/data path, then close it again.
- Typical Flatpak path on Linux:
- Copy this project folder into the plugins directory.
- The final folder should look like:
<plugins-dir>/com_toix_teamspeak3_clientquery/manifest.json<plugins-dir>/com_toix_teamspeak3_clientquery/main.py
- The final folder should look like:
- Confirm TeamSpeak 3 ClientQuery is enabled and you have an API key.
- Start StreamController.
- Add one of these actions to a key:
Toggle Microphone MuteToggle Sound MuteSwitch To ChannelMove To Previous ChannelSend Raw ClientQuery Command
- Configure action settings:
Host:127.0.0.1Port:25639API Key: your TeamSpeak ClientQuery API key
- Press the key and verify TeamSpeak reacts.
From this repository, run:
chmod +x scripts/install_local.sh
./scripts/install_local.shThen fully restart StreamController.
Run:
find ~/.var/app/com.core447.StreamController/data/plugins/com_toix_teamspeak3_clientquery -maxdepth 2 -type f | sortYou must see at least:
manifest.jsonmain.pyts3_plugin/locales/en_US.json
- Plugin does not appear:
- Re-check folder layout (must contain
manifest.jsondirectly in the plugin root). - Restart StreamController after copying files.
- Re-check folder layout (must contain
- Key press shows connection error:
- Verify TeamSpeak is running.
- Verify ClientQuery plugin is enabled.
- Verify
Host,Port, and API key are correct.
- After code changes:
- Restart StreamController to reload plugin files.
- The plugin opens a connection to TeamSpeak only when an action is pressed.
Raw ClientQuery Commandsends exactly the command you configure.- Plugin entrypoint and registration now follow the official
StreamController/PluginTemplatepattern (main.pyowns plugin class and action registration).
Reference: https://streamcontroller.github.io/docs/latest/plugin_dev/getting_started/
- Verify metadata in
manifest.json(id,version,minimum-app-version,github,thumbnail). - Verify plugin registration metadata in
main.py(plugin_name,github_repo,plugin_version,app_version). - Verify locale exists at
ts3_plugin/locales/en_US.json. - Verify assets and attribution files exist (
assets/thumbnail.svg,attribution.json). - Run local install and smoke test:
./scripts/install_local.sh- restart StreamController
- test each action at least once