Bundled libraries
Mixlar Control ships a fixed Python 3.13 runtime on Windows. Your plugin runs
inside that runtime, not inside a virtual environment you control — so the set
of importable packages is fixed too. This page lists everything you can
import, and nothing else.
Standard library
Section titled “Standard library”The full Python standard library is always available. Commonly used modules
in plugins include threading, time, datetime, json, os, sys,
subprocess, socket, urllib, http, ctypes, winreg, math,
random, re, pathlib, tempfile, shutil, base64, hashlib, hmac,
uuid, collections, functools, itertools, webbrowser, queue,
struct, wave, csv, sqlite3, and logging.
Bundled third-party packages
Section titled “Bundled third-party packages”These packages are pre-installed in the app’s runtime. The table shows the
import name (what you actually type), the PyPI package it comes from, and
what it’s for.
| import | package | use |
|---|---|---|
requests |
requests | HTTP GET/POST to any web API |
websocket |
websocket-client | WebSocket clients (OBS, Logitech G HUB, etc.) |
pynput |
pynput | send keystrokes / mouse input; global hotkeys |
PyQt5 |
PyQt5 | Qt widgets for settings and macro-editor UIs (QLineEdit, QCheckBox, QComboBox, QLabel, …) |
qtawesome |
qtawesome | Font Awesome icons in Qt (fa5s.* names, also used for plugin_icon) |
comtypes |
comtypes | Windows COM access (audio sessions, SMTC internals) |
pycaw |
pycaw | Windows Core Audio — per-app volume, mute, device enumeration |
mido |
mido | build and send MIDI messages (note on/off, control change) |
rtmidi |
python-rtmidi | mido’s backend — actually opens the MIDI ports |
serial |
pyserial | talk to other hardware over a serial port |
psutil |
psutil | CPU / RAM / disk / network / process stats |
GPUtil |
GPUtil | NVIDIA GPU load, temperature, memory |
cpuinfo |
py-cpuinfo | CPU model name / frequency details |
keyring |
keyring | store secrets in Windows Credential Manager |
PIL |
Pillow | load / resize / convert images (feeds push_widget_image) |
numpy |
numpy | arrays and math (audio, image, or data processing) |
winrt |
winrt-runtime + Windows.Media.Control + Windows.Storage.Streams | Windows SMTC — now-playing title/artist/art from any media app |
yfinance |
yfinance | stock / index quotes |
curl_cffi |
curl_cffi | browser-impersonating HTTP (yfinance’s backend; useful against anti-bot sites) |
syncedlyrics |
syncedlyrics | fetch synced song lyrics |
qrcode |
qrcode | generate QR codes (device pairing, links) |
packaging |
packaging | parse and compare version strings |
What about the SDK CLI?
Section titled “What about the SDK CLI?”Don’t confuse this runtime with the Mixlar CLI. The CLI is a separate local toolchain you install on your own machine to scaffold, validate, pack, sign, and publish plugins — it can depend on whatever packages it likes, because it never ships to the end user. The table above is strictly about what code running inside a plugin, inside Mixlar Control can import.
Where this matters
Section titled “Where this matters”- Macro actions (
execute_macro_step) and slider modes (handle_slider_value) run on a background thread — a good place to reach forrequests,pynput,mido,serial, orpycaw. See the Macro actions and Sliders pages. - Device widgets are fed live data with
push_widget_data/push_widget_image, commonly sourced frompsutil,GPUtil,cpuinfo,winrt, oryfinancepolled on a background thread. See Widgets: data & events. - Settings panels (
build_settings_ui) are built withPyQt5widgets andqtawesomeicons. See Settings.
If a library you need isn’t on this list, there’s no workaround for shipping
it inside the app runtime — build against the stdlib and the packages above,
or reach the functionality over HTTP/WebSocket/serial with requests,
websocket, or serial instead.