Python は 参考の SDK です(正式な SDK は C#。公式の拡張機能も C# の SDK を使っています)。問い合わせ・不具合の対応は C# を優先します。迷ったら
templates/dotnet-basicから始めてください。
SyncSing Studio は拡張機能を EXE として起動します(manifest の entry.kind は exe だけ)。アプリには Python が 入っていないので、Python で書いた拡張機能は PyInstaller などで 1 つの EXE にまとめてから使います(build.ps1)。
plugin.py は標準ライブラリだけで書いた、いちばん小さな拡張機能です。音量メーターを読んでパネルに出し、 「あいさつを出す」(パネルのボタン・Stream Deck の「拡張機能のコマンド」・ミニUI・ショートカット)でアプリに通知を出します。
| ファイル | 内容 |
|---|---|
plugin.py | 拡張機能の中身(ここを書き換えます) |
syncsing_plugin_sdk.py | 接続の部品(標準入力の接続情報 → 名前付きパイプ → hello → 1 行 1 JSON。1 メッセージ 1 MiB の上限・イベントは 1 本の作業スレッドで順番に)。SDK の python/ と同じもの |
syncsing_api.py | API 1.1 の全メソッドの型付きの呼び出し(api.mic_set(strength=3)。戻り値の形は MicSetResult などの TypedDict で、エディターの補完・型チェックに使えます)とイベントの名前(Events.METERS)。自動生成 |
LICENSE | この雛形は 0BSD(自由にコピー・改変してよく、表示も要りません)。SDK の 2 ファイルは MIT |
はじめに書き換えるところ
manifest.jsonのuuid(22222222-2222-4222-8222-222222222222は見本。サーバーが発行した UUID に)、name・description・author.name。author.identity_idはbuild.ps1 -IdentityId <あなたの Identity ID>で書き換わります(ID は 設定 → 拡張機能 の説明文に出ます)。- EXE の名前を変えるときは
build.ps1の--nameとmanifest.jsonのentry.pathをそろえます。
試す
py -3.14 -m pip install pyinstaller==6.22.3→.\build.ps1 -IdentityId <あなたの Identity ID>でdist\ができます。 動作を確かめた版は Python 3.14 と PyInstaller 6.22.3 です(SyncSing Studio 本体と同じ Python の版)。ほかの版でも動くことが多いですが、配る EXE は版を固定して作ってください。build.ps1はpy -3.14で PyInstaller を動かします(別の版は-PythonVersion 3.13、python.exe を直接使うときは-Python <パス>)。- SyncSing Studio → 設定 → 拡張機能 → 開発者モード ON(開発者規約への同意が要ります)→ 「開発フォルダを登録」で
dist\。 - ログ(
printの出力も入ります)は 設定 → 拡張機能 → 「ログを開く」。
アプリにつなぐ前に python ..\..\tools\syncsing_plugin.py test dist で、起動・hello・コマンドへの返事・呼んだメソッドの引数・終了まで確かめられます。
気をつけること
- 書いてよいのは、接続情報の
data_dir・log_dirの中だけです。 - PyInstaller の EXE はウイルス対策ソフトに誤検知されることがあります。配る前に確かめてください。
- 配るときは
sdk/tools/syncsing_plugin.pyのvalidate→pack→submit(sdk/README_JA.md)。審査に出すときはplugin.pyなどのソースも提出します。