Space Plugin SDKSpace Plugin SDK
Home
Overview
  • 中文简体
  • English
Home
Overview
  • 中文简体
  • English
  • SDK

    • Overview
    • Getting Started
    • Terminology
    • Architecture
    • Manifest
    • Internationalization
    • Received Events
    • Events Sent
    • Registration Procedure
    • Property Inspector
    • Style Guide
    • Changelog
  • Example

    • Counter
    • Timer
    • Number Display
    • Time
  • Support

    • Help and Error Reporting

Manifest

Each plugin has a manifest that provides information to the Stream Dock application and the Stream Dock store.

Example JSON

Here is an example of a manifest.json file.

{
  "Actions": [
    {
      "UUID": "com.mirabox.streamdock.demo.action1",
      "Icon": "images/icon.png",
      "state": 0,
      "States": [
        {
          "FontSize": "11",
          "FontStyle": "Bold",
          "TitleAlignment": "bottom",
          "Image": "images/index.jpg"
        }
      ],
      "Settings": {
      },
      "UserTitleEnabled": false,
      "SupportedInMultiActions": false,
      "Controllers": [
        "Keypad",
        "Information",
        "SecondaryScreen",
        "Knob",
        "btn"
      ],
      "Name": "Name",
      "Tooltip": "Tooltip",
      "PropertyInspectorPath": "index.html"
    }
  ],
  "Version": "2.0.0",
  "Name": "Demo",
  "Icon": "images/icon.png",
  "CategoryIcon": "images/icon.png",
  "Category": "",
  "Description": "This is a sample plugin",
  "CodePath": "index.html",
  "SDKVersion": 1,
  "Author": "MiraBox",
  "URL": "http://video.hotspotek.com.cn/",
  "OS": [
    {
      "Platform": "mac",
      "MinimumVersion": "10.11"
    },
    {
      "Platform": "windows",
      "MinimumVersion": "7"
    }
  ],
  "Software": {
    "MinimumVersion": "2.10.179.426"
  },
  "Nodejs":{
    "Version": "20"
  }
}

Members

MemberTypeDescription
ActionsRequiredSpecifies the actions array. A plugin can have one or more actions. For example, the plugin may have six actions: Scene, Recording, Screenshot, Replay Record, Stream, Live Comments
AuthorRequiredThe author of the plugin
CodePathRequiredThe relative path to the HTML/binary files containing the plugin code
DescriptionRequiredA general description of the plugin's functionality
IconRequiredThe relative path to an image without an extension. This image is displayed in the Stream Dock market. PNG images should be 288 x 288 pixels. You should provide both @1x and @2x versions (288 x 288 pixels and 576 x 576 pixels). The Stream Dock application handles loading the appropriate version of the image
NameRequiredThe name of the plugin. This string is displayed to users in the Stream Dock store
VersionRequiredThe version of the plugin
SDKVersionRequiredThe current SDK version, which is 1
OSRequiredThe list of supported operating systems and versions for the plugin
SoftwareOptionalThe list of supported operating systems and versions for the plugin
CategoryOptionalThe name of the custom category to list actions under. This string is visible to users in the action list. If you do not provide a category, the action will be listed under "Custom"
CategoryIconOptionalThe relative path to a PNG image without an extension. This image is used in the action list. PNG images should be 28pt x 28pt. You should provide both @1x and @2x versions. The Stream Dock application handles loading the appropriate version of the image
CodePathMacOptionalThe CodePath for macOS
CodePathWinOptionalThe CodePath for Windows
PropertyInspectorPathOptionalThe relative path to the Property Inspector HTML file, if your plugin wants to display custom settings in the Property Inspector. If omitted, the plugin will have an empty Property Inspector
URLOptionalA website providing more information about the plugin
ApplicationsToMonitorOptionalA list of application identifiers to monitor (applications that are started or terminated). See the applicationDidLaunch and applicationDidTerminate events
NodejsOptionalIndicates that the plugin requires Node.js. If needed, please refer to the instructions at the bottom.

Actions

MemberTypeDescription
UUIDRequiredThe unique identifier for the action. It must be a Uniform Type Identifier (UTI) containing only lowercase alphanumeric characters (a-z, 0-9), hyphens (-), and periods (.). The string must use reverse DNS format. For example, if your domain is mirabox.com, you created a plugin named demo and your action is named action1, you could use the string com.mirabox.streamdock.demo.action1 as the unique identifier for the action
IconRequiredThe relative path to a PNG image without an extension. This image will be displayed in the action list. PNG images should be 20pt x 20pt. You should provide both @1x and @2x versions. The Stream Dock application handles loading the appropriate version of the image. If the action is not visible in the action list (set to false), this icon is not required
NameRequiredThe name of the action. This string is visible to users in the action list
stateOptionalSets the state of the action corresponding to the index in the States array, default is 0
StatesRequiredSpecifies the array of states. Each action can have one or more states
PropertyInspectorPathOptionalIf you want to have different PropertyInspectorPaths based on the action, this can override the PropertyInspectorPath member in the plugin. The relative path to the Property Inspector HTML file (if your plugin wants to display custom settings in the Property Inspector)
SupportedInMultiActionsOptionalUsed to prevent the action from being used in multi-actions, default is true
TooltipOptionalThe string that will be displayed as a tooltip when the user hovers over the action in the action list
SettingsOptionalThis is the value where the setSettings method is used to persist settings in the plugin and can be initialized here
UserTitleEnabledOptionalBoolean to disable the user title field in the Property Inspector. Default is True
ControllersOptionalSpecifies the array of controllers. Valid values include "Keypad", "Information", "SecondaryScreen", "Knob". Keypad for normal buttons, Information for view-only without touch or button events, SecondaryScreen for secondary screen display, Knob for rotary controls. Default is ["Keypad"]
VisibleInActionsListOptionalHides the action in the actions list. This can be used for plugins only applicable to specific profiles. Default is True
OSOptionalAn array of supported operating system platforms, e.g., ["mac", "windows"]

States

MemberTypeDescription
ImageRequiredThe default image for the state. When a custom image is set for the main state, Stream Dock automatically sets the secondary state to a darker version of the same icon
MultiActionImageOptionalUse this to provide a different image for the state when displayed in Multi-Action
NameOptionalDisplayed in the dropdown menu for "Multi-Actions". For example, the "Game Capture Record" action has Start and Stop states. If no name is provided, the state will not be shown in Multi-Actions
TitleOptionalDefault title
ShowTitleOptionalHides/shows the title. Default is true
TitleColorOptionalDefault title color
TitleAlignmentOptionalDefault vertical alignment of the title. Possible values are "top", "bottom", and "center"
FontFamilyOptionalDefault font for the title
FontStyleOptionalDefault font style for the title. Possible values are "Regular", "Bold", "Italic", and "Bold Italic". Note that some fonts may not support all values
FontSizeOptionalDefault font size for the title
FontUnderlineOptionalUnderline for the title, default is false

OS

MemberTypeDescription
PlatformRequiredThe name of the platform: mac or windows
MinimumVersionRequiredThe minimum version of the operating system required for the plugin. For Windows 7, you can use 7; for macOS 10.11, you can use 10.11

Example of a plugin supporting macOS 10.11 and higher and Windows 7 and higher:

"OS": [
  {
    "Platform": "mac",
    "MinimumVersion" : "10.11"
  },
  {
    "Platform": "windows",
    "MinimumVersion" : "7"
  }
]

Software

MemberTypeDescription
MinimumVersionRequiredThe minimum version of the Stream Dock application required for the plugin. This value should be set to support Stream Dock 2.10.179.426 or higher.

Example of a plugin requiring Stream Dock 2.10.179.426 or higher:

"Software": {
  "MinimumVersion" : "2.10.179.426"
}

ApplicationsToMonitor

Plugins can request notifications when certain applications start or terminate. This object should include an array for each platform, specifying the list of application identifiers to monitor (bundle identifiers on macOS and executables on Windows).ApplicationsToMonitor

"ApplicationsToMonitor": {
  "mac": [
    "com.apple.mail",
    "com.apple.safari"
  ],
  "windows": [
    "someApp.exe",
    "anotherApp.exe"
  ]
}

Nodejs

For plugins that depend on Node.js, we have integrated Node.js within the software. Plugins configured with this parameter will be launched using the built-in Node.js, eliminating the need to package Node.js dependencies within the plugin.

TIP

Windows: The software version needs to be 3.10.188.226 or above. Starting from 3.10.188.226, the software has a built-in node module, and the built-in node version is 20.8.1. Set Version in manifest to 20. Other versions are not built-in yet.

Mac: 3.10.189.0313 is not built-in yet, and you need to wait for the next version

node
Last Updated:
Contributors: Heart
Prev
Architecture
Next
Internationalization