CLI overview
The mixlar-sdk command line tool is how you scaffold, test, sign, and ship
plugins for Mixlar Control and the M1X. It’s the same code the desktop app
uses internally, so what you validate and emulate here behaves exactly like
it will on a real device.
Install
Section titled “Install”pip install mixlar-sdkThat installs the mixlar-sdk console script. You can also run it in place
without installing, which is handy before pip install -e . or in CI:
python -m mixlar_cliBoth invocations are identical in behavior.
The branded menu
Section titled “The branded menu”Run mixlar-sdk with no arguments (or -h/--help at the top level) and
you get a branded launch screen listing every command, rather than a bare
argparse usage dump. In a color-capable TTY it animates a short intro first.
mixlar-sdkSet NO_COLOR (any value) to disable ANSI colors — the menu and every
command’s output fall back to plain text. This is respected everywhere the
CLI prints [ok] / [warn] / [error] style status lines, so it’s safe to
export in CI logs.
NO_COLOR=1 mixlar-sdk validateFor a specific command’s flags, pass -h after the command name:
mixlar-sdk create -hmixlar-sdk emulate -hCheck the version
Section titled “Check the version”mixlar-sdk --versionCommands
Section titled “Commands”| command | what it does |
|---|---|
create |
scaffold a new plugin package from a template (macro, slider, widget, full) |
validate |
lint plugin.json and every bundled widgets/<id>/widget.json |
link |
copy (or symlink) a package into the app’s plugins directory |
dev |
validate + link once, then watch the folder and re-sync on save |
emulate |
run a package against a headless mock device — render a PNG or drive it interactively |
pack |
zip a validated package into a .mixplugin, optionally signing it first |
sign |
sign a package in place with a publisher key |
verify |
check a package’s signature against the pinned publisher keyset |
keygen |
generate an ed25519 publisher keypair |
publish |
upload a .mixplugin to the marketplace (currently a stub until the endpoint ships) |
A typical loop
Section titled “A typical loop”-
Scaffold a package:
Terminal window mixlar-sdk create "My Plugin" --template fullcd my_plugin -
Lint it:
Terminal window mixlar-sdk validate -
Preview the widget without hardware:
Terminal window mixlar-sdk emulate --render preview.png -
Generate a signing key (once) and build a signed package:
Terminal window mixlar-sdk keygen --key-id my-keymixlar-sdk pack --sign my-key -
Copy it into the app’s plugins directory:
Terminal window mixlar-sdk link
For active development, mixlar-sdk dev replaces the validate/link steps
with a single command that watches your package folder and re-syncs on
every save — see the individual command pages for details:
create— the scaffolding wizard and template flagsvalidateandemulate— linting and the headless mock devicepack,sign,verify,keygen,publish— trust and distribution
If you’re new to the SDK entirely, start at Getting started.