自 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 应用、插件 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 应用一次性购买适用于 Android 和 iOS 的原生应用,闭源,每台设备可享 7 天免费试用。

一份许可涵盖两个平台。你在应用内购买一次,永不过期,Macro Deck 会把它同步给连接到你电脑的其他 Android 和 iOS 设备。

这些应用以原生方式绘制面板,能在网络中找到你的电脑,并增加手势、触觉反馈、无需调试的 USB 连接以及针对设备本身的动作。你的面板在网页客户端中外观相同。

设备

使用你已有的设备

一部闲置的手机、一台旧平板或一个浏览器窗口都可以成为你的控制面板,因此无需购买专用硬件。可以同时连接多台设备,每台各有自己的配置文件和布局。

Macro Deck 桌面应用及其面板编辑器手机上 Companion 应用的“连接”界面,其中有一个 USB 连接和两台已保存的电脑
Macro Deck 主机程序Windows、macOS 和 Linux
  • 网页客户端任何现代浏览器
  • AndroidCompanion 应用
  • iOSCompanion 应用
通过网络
设备直接连接到你的电脑。Companion 应用会自动找到它;网页客户端则通过地址或二维码打开。
通过 USB
Android 通过 ADB 使用 Companion 应用或网页客户端连接。Android 和 iOS 上的 Companion 应用也可以在不开启 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 无关联,也未获其认可。