自 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 連接到電腦。

    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 的主機程式、網頁用戶端、原生 Companion App、外掛程式 SDK,以及經過審查的商店。

    Macro Deck 3 的 Deck 編輯器:音樂播放器、時鐘、天氣、音量滑桿、CPU 圖表和彩色動作按鈕

自動化

真正的邏輯,而不只是快速鍵

按鈕能做的不只是傳送一個快速鍵。動作以流程的形式執行,支援條件、迴圈與等待,能回應即時數值,自動化還可以在無人按下按鈕時執行它們。

Go live

  1. 按下短按該按鈕

  2. Ifstream_live 為 true

    • 按下停止快速鍵
    • 將 stream_live 設為 false
    • 把按鈕變成紅色
  3. Else ifCPU 負載高於 85 且 Spotify 正在播放

    • 傳送通知,而不是開始直播
  4. Otherwise沒有任何阻礙

    • 調低 Spotify 音量
    • 重複 3 次:將邊框設為閃爍,等待 1 秒
    • 按下開始快速鍵
    • 將 stream_live 設為 true
    • 把按鈕變成綠色
按一下,三種結果。這是該按鈕背後的真實流程,與編輯器中的顯示一致。
Macro Deck 編輯器中的 Go live 流程:一個 If / Else 區塊,其中的 Else if 結合了兩個條件,Otherwise 分支包含一個重複迴圈、一次等待、快速鍵、變數和顏色變化
條件與迴圈
支援 If、Else if 和 Else 及組合條件,還有重複與等待。
變數
來自你的電腦與整合的即時數值,可顯示在按鈕上,也可用於條件判斷。
事件
依排程執行自動化,或在裝置連線、變數變更、OBS 開始直播時執行。
按鈕狀態
為按鈕設定多種狀態,每種狀態有各自的外觀,或讓按鈕跟隨某個變數,例如你在 Discord 中的靜音狀態。
其他電腦
透過 Macro Deck Delegate,按鈕可以在另一台電腦上執行指令碼,並匯入它共用的變數。
即時元件
滑桿、儀表、圖表、音樂播放器和聊天元件會顯示正在發生的事情,並回應觸控。

用途遠不止直播

提升效率
一眼查看下一場會議與未讀郵件,並在設定的時間切換到工作設定檔。
系統管理
用儀表監控 CPU 與記憶體,執行指令並把輸出保存到變數中,或暫停 AdGuard Home。
智慧家庭
開關燈光、執行情境,並在按鈕上顯示 Home Assistant 的即時狀態,按鈕會反映真實狀態。
自訂工作流程
透過 HTTP 整合呼叫任何 Web API,或在 Windows 上執行 AutoHotkey 指令碼。

外掛程式商店

來源可追溯的社群外掛程式

Macro Deck 內建的商店提供由社群維護的外掛程式。它的不同之處在於外掛程式上架的方式:每個外掛程式都由公開原始碼建置,經過人工審查並簽署,之後你才能安裝。

  1. 公開儲存庫

    原始碼以開源授權公開發布在 GitHub 上。相依項目來自公開的 NuGet 套件,不允許內含預先編譯的第三方程式庫。

  2. 受信任的發布

    帶標籤的發布會執行 Macro Deck 自己的發布工作流程。GitHub 會確認儲存庫、提交和工作流程,因此無法上傳在其他地方建置的二進位檔,創作者也不持有發布權杖或簽署金鑰。

  3. AI 與人工審查

    每次首次提交和每次更新都會經過自動檢查與 AI 輔助分析,再交由人工審查員作出決定。審查內容包括商店準則、潛在的惡意行為、安全問題和相依項目。

  4. 密碼學簽署

    審查通過後,Creator Portal 會為套件簽署。其憑證鏈結到離線保管的 Macro Deck 根金鑰。

  5. 官方商店

    套件透過已簽署的登錄庫發布。Macro Deck 在安裝前會驗證其簽章,之後每次啟動該外掛程式時也會再次驗證。

你在 Macro Deck 中看到的內容

有效的簽章表示套件經過了這一流程。你仍然可以安裝未簽署的外掛程式,例如自己開發的外掛程式,但兩者的差異始終清楚可見。

  • 已簽署正常安裝。如果之後其檔案被修改,該外掛程式將不再載入。
  • 未簽署Macro Deck 會先發出警告。只有在你確認後才會安裝,且該外掛程式會一直標示為未驗證。
  • 簽章無效拒絕安裝。無法通過驗證的簽章不能被手動確認放行。

發布之後

Macro Deck 會持續檢查已發布外掛程式的儲存庫。如果外掛程式的儲存庫變為私有或消失,將在 14 天期限後下架;憑證遭撤銷後,將無法新安裝或更新。

這些措施無法保證什麼

審查與簽署可以降低風險,並確認套件的來源,但無法保證外掛程式沒有漏洞或惡意程式碼。外掛程式沒有沙箱隔離:它們以你的使用者帳號權限執行,因此安裝外掛程式應像安裝其他程式一樣謹慎。

自主掌控

在你的電腦上執行,無需訂閱

本機優先,無需帳號

Macro Deck 在你自己的電腦上執行,你的裝置直接連線到它。核心功能不依賴 Macro Deck 雲端服務,使用它也不需要 Macro Deck 帳號。

  • 由你自己託管,執行在你自己的電腦上
  • 你的設定由你掌控
  • 無需 Macro Deck 帳號
  • 核心功能無需雲端服務
  • 主機程式為開源,採用 Apache 2.0 授權

帳號是選用的,可提供額外服務,例如把 Companion 授權保存在你的帳號中,或為商店中的項目評分。

Spotify 或 Twitch 等線上服務的整合仍需要網路連線,商店和啟用 Companion 購買同樣需要。

費用說明

Macro Deck 主機程式免費免費開源,適用於 Windows、macOS 和 Linux。
網頁用戶端免費無需安裝任何東西,在網路中的現代瀏覽器裡即可完整使用你的面板。
Companion App一次性購買適用於 Android 和 iOS 的原生 App,閉源,每台裝置可享 7 天免費試用。

一份授權涵蓋兩個平台。你在 App 內購買一次,永不過期,Macro Deck 會把它同步給連線到你電腦的其他 Android 和 iOS 裝置。

這些 App 以原生方式繪製面板,能在網路中找到你的電腦,並增加手勢、觸覺回饋、無需偵錯的 USB 連線,以及針對裝置本身的動作。你的面板在網頁用戶端中外觀相同。

裝置

使用你已有的裝置

一支閒置的手機、一台舊平板或一個瀏覽器視窗都可以成為你的控制面板,因此無需購買專用硬體。可以同時連接多台裝置,每台各有自己的設定檔和版面配置。

Macro Deck 桌面應用程式及其面板編輯器手機上 Companion App 的「連線」畫面,其中有一個 USB 連線和兩台已儲存的電腦
Macro Deck 主機程式Windows、macOS 和 Linux
  • 網頁用戶端任何現代瀏覽器
  • AndroidCompanion App
  • iOSCompanion App
透過網路
裝置直接連線到你的電腦。Companion App 會自動找到它;網頁用戶端則透過網址或 QR Code 開啟。
透過 USB
Android 透過 ADB 使用 Companion App 或網頁用戶端連線。Android 和 iOS 上的 Companion App 也可以在不開啟 USB 偵錯的情況下連線,該功能仍處於實驗階段。
並行使用
手機用於聊天,平板用於情境切換。不同的裝置可以同時開啟不同的設定檔。

開發者

專注打造整合,而非基礎架構

外掛程式 SDK 為你提供與內建整合相同的合約。你撰寫 C#,裝置、設定、算繪和散布則由 Macro Deck 負責。

外掛程式 SDK
有文件說明的 .NET 套件,涵蓋動作、變數、事件、元件、設定畫面和裝置提供者。
CLI
macrodeck-plugin 無需安裝 Macro Deck,即可建立、執行、測試、驗證和封裝外掛程式。
Creator Portal
連結你的儲存庫,管理建置、測試人員和版本,並發布到商店。
公開 API
透過公開 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 元件:食物、快樂和精力的狀態列,一隻正在睡覺的藍色像素風寵物,下方有六個按鈕Macro Deck 編輯器中的面板上,Macrogotchi 元件位於動作按鈕旁邊
Macrogotchi,一個完全由外掛程式繪製的元件。

Macrogotchi 展示了它能做到什麼程度。這個開源外掛程式在你的面板上養了一隻虛擬寵物,有狀態列、由彩色單元格繪製的像素風精靈,以及六個按鈕,全部集中在一個元件中。

檢視由 Macro Deck UI 元件建構,例如堆疊版面、格線、圖表、儀表和滑桿,而不是內嵌的網頁,因此能與面板的其餘部分融為一體。

社群

自 2018 年起與社群共同打造

Macro Deck 之所以存在,是因為人們一直在使用它、回報問題並打造缺少的功能。商店中的許多整合由社群維護,主機程式在 GitHub 上開發,接下來的計畫也是公開擬定的。

在你已有的裝置上試一試

Macro Deck 及其網頁用戶端可免費下載和使用。

Elgato 和 Stream Deck 是其各自所有者的商標。Macro Deck 是獨立專案,與 Elgato 無關聯,也未獲其認可。