TypeScript icon, indicating that this package has built-in type declarations

6.4.0 • Public • Published

io.Connect Desktop JavaScript Library

The @interopio/desktop library enables web apps to participate in io.Connect Desktop and use io.Connect functionalities via a set of APIs.


The io.Connect Desktop library includes the following APIs:

  • App Management API - manage and monitor interop-enabled apps and their instances;
  • App Preferences API - store custom user-specific data and retrieve it when necessary;
  • Intents API - raise requests for other apps to handle predefined actions (Intents), register apps as Intent handlers, provide users programmatically with options for handling raised Intents via the Intents Resolver UI app;
  • Data sharing:
    • Shared Contexts API - create, update and track named data objects shared by all interop-enabled apps;
    • Channels API - globally accessed named shared contexts that allow users to dynamically group apps from an UI, instructing them to work over the same shared data object;
    • Interop API - offer and consume functionality from other interop-enabled apps by registering Interop methods and streams;
    • Pub/Sub API - basic API that allows apps to publish and subscribe for messages on a specific topic;
  • Windows:
    • Window Management API - create and manipulate various types of io.Connect windows;
    • Layouts API - save and restore the arrangement of any set of apps running in io.Connect Desktop;
    • Themes API - control the available io.Connect themes programmatically;
  • Notifications API - raise notifications, handle notification and action clicks via Interop methods, control the Notification Panel and subscribe for notification events;
  • Metrics API - assess the life cycle of a certain process (app performance, business process, employee productivity, and more) by acquiring, recording and monitoring specific data over time;
  • Hotkeys API - register key combinations and receive notifications when a key combination is pressed by the user, regardless of whether the app is on focus or not;
  • Displays API - capture programmatically screenshots of the available monitors, of windows and window groups;
  • Cookies API - enables web apps to manage cookies;

For more information, see the io.Connect Desktop documentation.


The @interopio/desktop library attaches a factory function called IODesktop() to the global window object. Call the factory function to initialize the library and access the io.Connect functionalities from the returned API object:

import IODesktop from "@interopio/desktop";

const io = await IODesktop();

Optionally, provide a configuration object for the library initialization. The following example demonstrates enabling the Channels API, which is disabled by default, and additionally initializing the io.Connect Workspaces API:

import IODesktop from "@interopio/desktop";
import IOWorkspaces from "@interopio/workspaces-api";

const config = {
    channels: true,
    libraries: [IOWorkspaces]

const io = await IODesktop(config);

// Accessing the io.Connect APIs.
const allChannelNames = await io.channels.all();

await io.workspaces.restoreWorkspace("My Workspace");

Package Sidebar


npm i @interopio/desktop



Weekly Downloads






Unpacked Size

15 MB

Total Files


Last publish


  • stbozov
  • thorsent
  • tsachev
  • smateev
  • ppetkow
  • flashd2n
  • gdavidkov
  • kiril.popov