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용 호스트, 웹 클라이언트, 네이티브 Companion 앱, 플러그인 SDK, 검토를 거치는 Store.

    음악 플레이어, 시계, 날씨, 볼륨 슬라이더, CPU 그래프, 다채로운 액션 버튼이 있는 Macro Deck 3 덱 편집기

자동화

단축키가 아닌 진짜 로직

버튼은 단축키를 보내는 것 이상을 할 수 있습니다. 액션은 조건, 반복, 대기를 갖춘 흐름으로 실행되고, 실시간 값에 반응하며, 자동화를 쓰면 아무도 누르지 않아도 실행됩니다.

Go live

  1. Press버튼 짧게 누르기

  2. Ifstream_live가 true일 때

    • 중지 단축키 누르기
    • stream_live를 false로 설정
    • 버튼을 빨간색으로 바꾸기
  3. Else ifCPU 부하가 85를 넘고 Spotify가 재생 중일 때

    • 방송을 시작하는 대신 알림 보내기
  4. Otherwise방해가 되는 것이 없을 때

    • Spotify 볼륨 낮추기
    • 3번 반복: 테두리를 깜박임(으)로 설정하고 1초 대기
    • 시작 단축키 누르기
    • stream_live를 true로 설정
    • 버튼을 초록색으로 바꾸기
한 번 누르면 세 가지 결과가 나옵니다. 이 버튼의 실제 흐름이며, 에디터에서 보이는 그대로입니다.
Macro Deck 에디터의 Go live 흐름: 두 조건을 조합한 Else if가 있는 If / Else 블록과, 반복 루프, 대기, 단축키, 변수, 색상 변경이 있는 Otherwise 분기
조건과 반복
조건을 조합할 수 있는 If, Else if, Else와 Repeat, Wait.
변수
컴퓨터와 연동에서 가져오는 실시간 값으로, 버튼에 표시하거나 조건에 사용할 수 있습니다.
이벤트
정해진 시간, 기기 연결, 변수 변경, OBS 방송 시작 같은 때에 자동화를 실행합니다.
버튼 상태
버튼 하나에 각각 다른 모양의 여러 상태를 지정하거나, Discord의 음소거 상태 같은 변수를 따라가게 할 수 있습니다.
다른 컴퓨터
Macro Deck Delegate를 쓰면 버튼으로 다른 PC에서 스크립트를 실행하고, 그 PC가 공유하는 변수를 가져올 수 있습니다.
실시간 위젯
슬라이더, 게이지, 그래프, 음악 플레이어, 채팅 위젯이 현재 상황을 보여 주고 터치에 반응합니다.

방송 외에도 폭넓게 쓸 수 있습니다

생산성
다음 회의와 읽지 않은 메일을 한눈에 확인하고, 정해진 시간에 업무용 프로필로 전환할 수 있습니다.
시스템 관리
CPU와 RAM을 게이지로 지켜보고, 명령을 실행해 출력을 변수에 보관하거나 AdGuard Home을 일시 중지할 수 있습니다.
홈 오토메이션
조명을 켜고 끄고, 장면을 실행하고, Home Assistant의 실시간 상태를 버튼에 표시할 수 있으며, 버튼에는 실제 상태가 반영됩니다.
맞춤 워크플로
HTTP 연동으로 어떤 웹 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용 무료 오픈 소스.
웹 클라이언트무료설치 없이 네트워크의 최신 브라우저에서 덱을 온전히 사용할 수 있습니다.
Companion 앱1회 구매Android와 iOS용 네이티브 앱(비공개 소스)이며, 기기마다 7일 무료 체험이 있습니다.

라이선스 하나로 두 플랫폼을 모두 쓸 수 있습니다. 앱에서 한 번 구매하면 만료되지 않으며, 컴퓨터에 연결하는 다른 Android와 iOS 기기에도 Macro Deck이 라이선스를 전달합니다.

앱은 덱을 네이티브로 그리고, 네트워크에서 컴퓨터를 찾아 주며, 제스처, 햅틱 피드백, 디버깅 없는 USB, 기기 자체를 위한 액션을 더합니다. 덱의 모습은 웹 클라이언트에서도 같습니다.

기기

이미 가진 기기를 그대로 쓰세요

남는 스마트폰, 오래된 태블릿, 브라우저 창이 컨트롤 화면이 될 수 있어서 전용 하드웨어를 살 필요가 없습니다. 여러 대를 동시에 연결하고, 각각 다른 프로필과 레이아웃을 쓸 수 있습니다.

덱 에디터가 열린 Macro Deck 데스크톱 앱스마트폰의 Companion 앱 연결 화면: USB 연결 하나와 저장된 컴퓨터 두 대
Macro Deck 호스트Windows, macOS, Linux
  • 웹 클라이언트최신 브라우저라면 무엇이든
  • AndroidCompanion 앱
  • iOSCompanion 앱
네트워크로 연결
기기가 컴퓨터에 직접 연결됩니다. Companion 앱은 컴퓨터를 자동으로 찾아 주고, 웹 클라이언트는 주소나 QR 코드로 엽니다.
USB로 연결
Android는 Companion 앱이나 웹 클라이언트에서 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 위젯: 식사, 행복, 에너지 상태 막대, 잠든 파란색 픽셀 아트 펫, 그 아래 버튼 여섯 개Macro Deck 에디터의 덱에서 액션 버튼 옆에 놓인 Macrogotchi 위젯
Macrogotchi, 플러그인이 전부 직접 그린 위젯.

Macrogotchi가 어디까지 가능한지 보여 줍니다. 이 오픈 소스 플러그인은 상태 막대, 색칠한 칸으로 그린 픽셀 아트 스프라이트, 버튼 여섯 개를 위젯 하나에 담아 덱 위에서 가상 펫을 키웁니다.

뷰는 임베드된 웹 페이지가 아니라 스택, 그리드, 차트, 게이지, 슬라이더 같은 Macro Deck UI 컴포넌트로 만들어지므로 덱의 나머지 부분과 잘 어울립니다.

커뮤니티

2018년부터 커뮤니티와 함께 개발

Macro Deck이 계속되는 것은 사람들이 계속 사용하고, 잘못된 점을 알려 주고, 부족한 것을 만들어 주기 때문입니다. Store의 많은 연동은 커뮤니티가 관리하고, 호스트는 GitHub에서 개발되며, 앞으로의 계획도 공개적으로 세워집니다.

이미 가진 기기에서 써 보세요

Macro Deck과 웹 클라이언트는 무료로 다운로드해 사용할 수 있습니다.

Elgato와 Stream Deck은 각 소유자의 상표입니다. Macro Deck은 독립적인 프로젝트이며 Elgato와 제휴 관계가 아니고 Elgato의 보증을 받지 않았습니다.