Skip to main content

PluginSDK

The PluginSDK provides the core functionality for building plugins that communicate with the Logi Plugin Service. It handles WebSocket communication, action registration, message dispatching, and connection management.

Example

import { PluginSDK } from "@logitech/plugin-sdk";
import { MyCustomAction } from "./actions/my-custom-action";

const sdk = new PluginSDK();

// Register your custom actions
const myAction = new MyCustomAction();
sdk.registerAction(myAction);

// Connect to the Logi Plugin Service
await sdk.connect();

See

Constructors

Constructor

new PluginSDK(options: PluginSDKOptions): PluginSDK;

Creates a new PluginSDK instance with the specified configuration options.

Initializes the WebSocket client for communication with the Logi Plugin Service, sets up the message dispatcher for handling incoming messages, configures the logger with the specified log level, and establishes connection event handlers.

Parameters

options

PluginSDKOptions = ...

Configuration options for the SDK. If not provided, defaults to WARN log level.

Returns

PluginSDK

Example

import { PluginSDK, LoggerLevel } from "@logitech/plugin-sdk";

// Create SDK with default options (WARN log level)
const sdk = new PluginSDK();

// Create SDK with custom log level
const debugSdk = new PluginSDK({ logLevel: LoggerLevel.DEBUG });

// Create SDK with minimal logging
const quietSdk = new PluginSDK({ logLevel: LoggerLevel.ERROR });

See

Methods

connect()

connect(): Promise<void>;

Establishes connection to the Logi Plugin Service.

This method connects the plugin to the Logi Plugin Service via WebSocket, enables communication, and sets up graceful shutdown handling. Must be called after registering all actions.

Returns

Promise<void>

Promise that resolves when the connection is established

Throws

Will log errors if connection fails

Example

const sdk = new PluginSDK();

// Register actions first
sdk.registerAction(new MyAction());

// Then connect
try {
await sdk.connect();
console.log("Plugin connected successfully");
} catch (error) {
console.error("Failed to connect:", error);
}

registerAction()

registerAction(action: Action): void;

Registers an action with the plugin.

Actions must be registered before connecting to the Logi Plugin Service to be available for assignment to controls.

Parameters

action

Action

The action instance to register

Returns

void

Example

import { CommandAction } from "@logitech/plugin-sdk";

class MyAction extends CommandAction {
readonly name = "my-action";
displayName = "My Action";
description = "Does something useful";

onKeyDown() {
console.log("Action executed!");
}
}

const myAction = new MyAction();
sdk.registerAction(myAction);

See