2018 年から無料、2021 年からオープンソース

なぜ Macro Deck?

Macro Deck は Stream Deck の代替にとどまりません。長い歴史と活発なコミュニティを持ち、誰でも拡張できるエコシステムを備えた、柔軟なオープンソースの自動化プラットフォームです。

お手持ちのスマートフォン、タブレット、ブラウザを、コンピューターを操作するカスタマイズ可能なコントロールパネルに変え、ボタンごとに何が起きるかを自分で決められます。

タブレット上のデッキ。ミュージックプレーヤー、時計、天気予報、音量スライダー、CPU グラフ、色とりどりのアクションボタン横向きにしたスマートフォンに表示された同じデッキ

2018 年に誕生

最初期から続く無料の Stream Deck 代替のひとつ

Elgato の Stream Deck によって、専用のマクロキーは配信者のデスクでおなじみの存在になりました。2018 年 11 月、Macro Deck は別のアイデアを携えて OBS Forum に登場しました。手持ちの Android デバイスで動く、無料で広告のないマクロパッドです。

そこからリリースを重ね、使う人の声に形作られながら、ショートカットのフォルダだけだったものがクロスプラットフォームの自動化プラットフォームへと成長しました。

OBS Forum の最初の投稿を読む
  1. 2018 年 11 月

    最初のリリース

    Android デバイス上のキーボードショートカット、マルチメディアショートカット、アプリランチャー、フォルダ。Wi-Fi で PC に接続します。

    Macro Deck Server 1.1.6 Beta のウィンドウ。マクロボタンのグリッド、左にアクション一覧、右に接続状態とフォルダーが並ぶ
  2. Macro Deck 2

    プラグインに対応

    プラグインに対応した Windows アプリ。OBS Studio や Discord などの連携が加わりました。 2021 年 11 月に、ソースコードが Apache 2.0 ライセンスで公開されました。

    Macro Deck 2 のウィンドウ。サイドバー、フォルダー、時計やヘッドセットのバッテリー、ミュートされたマイクを表示するボタンのグリッド
  3. Macro Deck 3

    プラットフォームへ

    Windows、macOS、Linux 向けのホスト、Web クライアント、ネイティブの Companion アプリ、プラグイン SDK、審査制の Store。

    Macro Deck 3 のデッキエディター。音楽プレーヤー、時計、天気、音量スライダー、CPU グラフ、カラフルなアクションボタンが並ぶ

自動化

ショートカットだけではない、本物のロジック

ボタンにできるのはホットキーの送信だけではありません。アクションは条件、ループ、待機を含むフローとして実行され、ライブの値に反応し、誰もボタンを押さなくても自動化が実行します。

Go live

  1. Pressボタンの短押し

  2. Ifstream_live が true

    • 停止のホットキーを押す
    • stream_live を false にする
    • ボタンを赤にする
  3. Else ifCPU 負荷が 85 を超え、かつ Spotify が再生中

    • 配信を開始せず、代わりに通知を送る
  4. Otherwise支障がない場合

    • Spotify の音量を下げる
    • 3 回繰り返す: 枠線を 点滅 に設定し、1 秒待つ
    • 開始のホットキーを押す
    • stream_live を true にする
    • ボタンを緑にする
1 回の押下で 3 通りの結果になります。ボタンの実際のフローを、エディターでの表示のまま示しています。
Macro Deck エディターの Go live フロー。2 つの条件を組み合わせた Else if を持つ If / Else ブロックと、繰り返しループ、待機、ホットキー、変数、色の変更を含む Otherwise 分岐
条件とループ
複数の条件を組み合わせられる If、Else if、Else に加え、Repeat と Wait。
変数
コンピューターや連携から取得するライブの値。ボタンへの表示や条件に使えます。
イベント
スケジュール、デバイスの接続、変数の変化、OBS の配信開始などをきっかけに自動化を実行します。
ボタンの状態
1 つのボタンに、それぞれ見た目の異なる複数の状態を持たせたり、Discord のミュート状態などの変数に追従させたりできます。
他のコンピューター
Macro Deck Delegate を使うと、ボタンから別の PC でスクリプトを実行し、その PC が共有する変数を取り込めます。
ライブウィジェット
スライダー、ゲージ、グラフ、ミュージックプレーヤー、チャットウィジェットが状況を表示し、タッチにも反応します。

配信以外にも幅広く使えます

生産性
次の会議や未読メールをひと目で確認したり、決まった時刻に仕事用プロファイルへ切り替えたりできます。
システム管理
CPU と RAM をゲージで監視し、コマンドを実行してその出力を変数に保存したり、AdGuard Home を一時停止したりできます。
ホームオートメーション
照明の切り替えやシーンの実行、Home Assistant のライブな状態の表示ができ、ボタンには実際の状態が反映されます。
カスタムワークフロー
HTTP 連携で任意の Web API を呼び出したり、Windows で AutoHotkey スクリプトを実行したりできます。

プラグイン Store

出どころをたどれるコミュニティプラグイン

Macro Deck 内の Store では、コミュニティが保守するプラグインを提供しています。特長はプラグインが Store に並ぶまでの経緯です。すべてのプラグインは公開ソースコードからビルドされ、人が審査し、署名されてから、インストールできるようになります。

  1. 公開リポジトリ

    ソースコードはオープンソースライセンスのもとで GitHub に公開されます。依存関係は公開されている NuGet パッケージから取得し、コンパイル済みのサードパーティ製ライブラリを同梱することは認められません。

  2. Trusted publishing

    タグ付きリリースで Macro Deck 自身のリリースワークフローが実行されます。GitHub がリポジトリ、コミット、ワークフローを確認するため、別の場所でビルドしたバイナリはアップロードできず、クリエイターが公開用トークンや署名鍵を持つこともありません。

  3. AI と人による審査

    初回の申請とすべての更新は、自動チェックと AI による分析を経て、最終判断を下す人間のモデレーターに渡されます。審査では、Store ガイドライン、悪意のある可能性のある動作、セキュリティ上の問題、依存関係を確認します。

  4. 暗号署名

    承認後、Creator Portal がパッケージに署名します。その証明書は、オフラインで保管されている Macro Deck のルート鍵につながっています。

  5. 公式 Store

    パッケージは署名付きレジストリを通じて公開されます。Macro Deck はインストール前と、プラグインを起動するたびに、その署名を検証します。

Macro Deck での表示

有効な署名は、そのパッケージがこのプロセスを経たことを示します。自作のプラグインなど、署名のないプラグインもインストールできますが、違いははっきりと表示されます。

  • 署名済み通常どおりインストールされます。その後ファイルが変更されると、プラグインは読み込まれなくなります。
  • 署名なしMacro Deck が最初に警告を表示します。確認した場合にのみインストールされ、プラグインには未検証の印が付いたままになります。
  • 署名が無効拒否されます。検証に通らない署名は、確認して先へ進むことはできません。

公開後

Macro Deck は公開済みプラグインのリポジトリを引き続き確認します。リポジトリが非公開になったり消えたりしたプラグインは、14 日の猶予期間を過ぎると一覧から外され、証明書が失効すると新規インストールと更新ができなくなります。

保証できないこと

審査と署名はリスクを減らし、パッケージの出どころを示すものです。プラグインに脆弱性や悪意のあるコードがないことまでは保証できません。プラグインはサンドボックス化されておらず、お使いのユーザーアカウントの権限で動作します。プラグインのインストールは、ほかのプログラムをインストールするのと同じように考えてください。

所有

あなたのコンピューターで動き、サブスクリプションは不要

ローカルファースト、アカウント不要

Macro Deck はお使いのコンピューターで動き、デバイスはそこへ直接接続します。中核となる機能は Macro Deck のクラウドサービスに依存せず、利用に Macro Deck アカウントは必要ありません。

  • 自分のマシンで、自分でホスト
  • セットアップは自分の管理下に置けます
  • Macro Deck アカウントは不要
  • 中核機能にクラウドサービスは不要
  • ホストは Apache 2.0 ライセンスのオープンソース

アカウントは任意で、Companion のライセンスをアカウントに紐づけて保持したり、Store のアイテムを評価したりといったサービスが加わります。

Spotify や Twitch などオンラインサービスとの連携にはインターネット接続が必要です。Store の利用と Companion の購入手続きも同様です。

料金

Macro Deck ホスト無料Windows、macOS、Linux 向けの無料・オープンソース。
Web クライアント無料ネットワーク上の最新のブラウザからデッキを使えます。インストールは不要で、機能も一通りそろっています。
Companion アプリ1 回限りの購入Android と iOS 向けのネイティブアプリ(クローズドソース)。各デバイスで 7 日間の無料トライアルがあります。

1 つのライセンスで両方のプラットフォームを利用できます。アプリ内で 1 回購入すれば有効期限はなく、コンピューターに接続するほかの Android / iOS デバイスにも Macro Deck がライセンスを引き継ぎます。

アプリはデッキをネイティブに描画し、ネットワーク上のコンピューターを自動で見つけ、ジェスチャー、触覚フィードバック、デバッグ不要の USB 接続、デバイス自体を操作するアクションを追加します。デッキの見た目は Web クライアントでも同じです。

デバイス

お手持ちのデバイスをそのまま使えます

使っていないスマートフォンや古いタブレット、ブラウザのウィンドウがコントロールパネルになるので、専用ハードウェアを買う必要はありません。複数台を同時に接続でき、それぞれに別のプロファイルとレイアウトを使えます。

デッキエディターを開いた Macro Deck デスクトップアプリスマートフォンの Companion アプリの接続画面。USB 接続と、保存済みの 2 台のコンピューター
Macro Deck ホストWindows、macOS、Linux
  • Web クライアント最新のブラウザならどれでも
  • AndroidCompanion アプリ
  • iOSCompanion アプリ
ネットワーク経由
デバイスはコンピューターに直接接続します。Companion アプリはコンピューターを自動で見つけ、Web クライアントはアドレスまたは QR コードから開きます。
USB 経由
Android では、Companion アプリまたは Web クライアントから ADB を通じて接続します。Android と iOS の Companion アプリでは USB デバッグなしの接続も可能ですが、これはまだ実験的な機能です。
並べて使う
スマートフォンはチャット用、タブレットはシーン用に、といった使い分けができます。異なるデバイスで、異なるプロファイルを同時に開けます。

開発者向け

インフラではなく、連携の開発に集中できます

プラグイン SDK では、内蔵の連携が使っているものと同じコントラクトを利用できます。書くのは C# だけで、デバイス、設定、描画、配布は Macro Deck が受け持ちます。

プラグイン SDK
アクション、変数、イベント、ウィジェット、セットアップ画面、デバイスプロバイダー向けの、ドキュメント付き .NET パッケージ。
CLI
macrodeck-plugin は、Macro Deck をインストールしなくてもプラグインの作成、実行、テスト、検証、パッケージ化ができます。
Creator Portal
リポジトリを接続し、ビルド、テスター、リリースを管理して、Store に公開します。
公開 API
Public API からプロジェクトのステータスや分析データを取得し、ダッシュボード、バッジ、CI に活用できます。

仕組みを知りたくなったときは、ホストがオープンソースなので中身を確認できます。

~ % macrodeck-plugin new --name "Hello Deck" --publisher Acme -yCreated plugin project at '~/HelloDeck'.Manifest: ~/HelloDeck/src/HelloDeck/manifest.jsonBuild configuration: ~/HelloDeck/src/HelloDeck/macrodeck-build.json~ % cd HelloDeck/src/HelloDeckHelloDeck % macrodeck-plugin run --project . --watchUsing host at http://127.0.0.1:52417.Developer Mode is enabled; a pairing prompt will appear in Macro Deck.Started process 70511 (mode: SelfRegistering, host: http://127.0.0.1:52417). Press Ctrl-C to stop.Watching the project: a saved change is applied with .NET Hot Reload, or rebuilds and restarts the plugin. Open developer previews in Macro Deck follow along.[plugin] dotnet watch 🔥 Hot reload enabled. For a list of supported edits, see https://aka.ms/dotnet/hot-reload.[plugin] dotnet watch 💡 Press Ctrl+R to restart.[plugin] dotnet watch 🔨 Building ~/HelloDeck/src/HelloDeck/HelloDeck.csproj ...[plugin] dotnet watch 🔨 Build succeeded: ~/HelloDeck/src/HelloDeck/HelloDeck.csproj...[plugin] info: MacroDeck.Plugin.Hosting.Transport.PluginConnectionHostedService[0][plugin]       Registered with the host as '"com.example.hello-deck"'....[plugin] info: HelloDeck.PluginIntegration[0][plugin]       Initialized.^CStopping the plugin...The plugin exited within its 10s grace period.HelloDeck % macrodeck-plugin test --project .Macro Deck plugin conformance report (suite 1.3.0)Plugin: com.example.hello-deck 1.0.0Started: 2026-10-21T18:20:41.3954460+00:00, duration: 00:00:21.6978993Passed: 25, Failed: 0, Skipped: 24Conformant: yes[PASS] MDC0101 The plugin id is a valid reverse-domain package id (Required)[PASS] MDC0102 Every declared capability's local id is a valid declared-kind identifier (Required)...HelloDeck % macrodeck-plugin buildBuilding linux-x64...Building osx-arm64...Building win-x64...Built linux-x64, osx-arm64, win-x64.Packed com.example.hello-deck 1.0.0 -> ./com.example.hello-deck-1.0.0.macroDeckPlugin (46 entries, 5491783 bytes uncompressed).HelloDeck % 

Macro Deck UI

プラグインは独自のインターフェースを持てます

プラグインにできるのは、アクションや変数の追加だけではありません。Macro Deck には C# 向けの宣言的な UI フレームワークがあり、ビューをコンポーネントのツリーとして一度記述すれば、デッキのウィジェット、設定画面、フォルダビュー、モーダルダイアログなど、必要な場所に Macro Deck が描画します。

var muted = new UiState<bool>(false);

var tile = new UiButton
{
    Key = "mute",
    Justify = UiComponentJustify.Center,
    Background = UiValue.From(() => muted.Value ? "#ff3b30" : "#2c2c2e"),
    Events = [UiEventHandler.On(UiComponentEvents.Press, () => muted.Value = !muted.Value)],
    Children = [new UiTextRun
    {
        Key = "label",
        Text = UiText.From(() => muted.Value ? "Muted" : "Mute"),
        Size = 0.14,
    }],
};

var view = new UiView(request.Surface, tile);
Macrogotchi ウィジェット。食事、機嫌、元気のステータスバー、眠っている青いピクセルアートのペット、その下の 6 つのボタンMacro Deck エディターのデッキに置かれた Macrogotchi ウィジェットと、その隣のアクションボタン
Macrogotchi は、プラグインがすべて描画しているウィジェットです。

どこまでできるかは Macrogotchi が示しています。このオープンソースのプラグインは、ステータスバー、色付きのセルで描いたピクセルアートのスプライト、6 つのボタンを 1 つのウィジェットにまとめ、デッキ上で仮想ペットを育てます。

ビューは、スタック、グリッド、チャート、ゲージ、スライダーなどの Macro Deck UI コンポーネントで構成され、埋め込みの Web ページは使いません。そのため、デッキのほかの部分とそろった見た目になります。

コミュニティ

2018 年からコミュニティとともに開発

Macro Deck が続いているのは、使い続ける人がいて、問題を報告し、足りないものを作ってくれる人がいるからです。Store の連携の多くはコミュニティが保守しており、ホストは GitHub で開発され、今後の予定も公開の場で計画されています。

お手持ちのデバイスで試してみましょう

Macro Deck と Web クライアントは、無料でダウンロードして使えます。

Elgato および Stream Deck は、それぞれの所有者の商標です。Macro Deck は独立したプロジェクトであり、Elgato とは提携しておらず、Elgato の承認も受けていません。