Skip to content

Manifest Reference

Fresh

Overview

The manifest.json is the required configuration that defines your Stream Deck plugin. It specifies the entry point, actions, metadata, and system requirements.

Required Properties

PropertyTypeDescription
AuthorstringPlugin creator's name
CodePathstringEntry point (e.g., "bin/plugin.js")
DescriptionstringPlugin functionality overview
IconstringPlugin icon path (256x256 and 512x512 px)
NamestringPlugin display name
SDKVersionnumber2 or 3 (3 recommended)
Software.MinimumVersionstringMin Stream Deck version
UUIDstringReverse-DNS unique identifier
VersionstringFormat: {major}.{minor}.{patch}.{build}
OSarraySupported operating systems
ActionsarrayCollection of plugin actions

Action Properties

PropertyTypeDescription
NamestringAction display name
UUIDstringReverse-DNS action identifier
IconstringAction icon (20x20 and 40x40 px, monochromatic PNG/SVG)
StatesarrayVisual state representations (72x72 and 144x144 px)
ControllersarrayTarget types: "Keypad", "Encoder", or both
EncoderobjectDial/touch strip settings (layout, background, triggers)
PropertyInspectorPathstringHTML file for action config UI
UserTitleEnabledbooleanAllow/prevent user title customization
VisibleInActionsListbooleanShow/hide in action browser
TooltipstringHover description

OS Configuration

json
{
  "OS": [
    { "Platform": "mac", "MinimumVersion": "10.15" },
    { "Platform": "windows", "MinimumVersion": "10" }
  ]
}

Node.js Configuration

PropertyValuesDescription
Version"20" or "24"Node.js runtime version
Debug"enabled", "break", or custom portDebugger configuration
GenerateProfilerOutputbooleanPerformance profiling

Profile Configuration

json
{
  "Profiles": [{
    "Name": "profiles/my-layout",
    "DeviceType": 0,
    "Readonly": false,
    "DontAutoSwitchWhenInstalled": false,
    "AutoInstall": true
  }]
}

Application Monitoring

json
{
  "ApplicationsToMonitor": {
    "windows": ["application.exe"],
    "mac": ["com.company.application"]
  }
}

JSON Schema

Enable IDE intellisense and validation:

json
{
  "$schema": "https://schemas.elgato.com/streamdeck/plugins/manifest.json"
}