# @interopio/desktop

> JavaScript library for io.Connect Desktop clients.

Latest version **6.23.2** (published 2026-10-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install @interopio/desktop
pnpm add @interopio/desktop
yarn add @interopio/desktop
bun add @interopio/desktop
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score; high quality score.

Warnings: low downloads; large bundle.

## Facts

| | |
|---|---|
| Version | 6.23.2 |
| Published | 2026-10-19 |
| First published | 2023-10-03 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 9 |
| Unpacked size | 32.8 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | interop.io |
| Maintainers | smateev, tsachev, thorsent, hristo-kolev-interopio, ppetkow, gdavidkov, flashd2n, staafl, andy.gardner, kiril.popov, mitk0936, istoykov, danail.dobrev, trendo7 |
| Keywords | glue, glue42, desktop, interop, context |

## Links

- npm: https://www.npmjs.com/package/@interopio/desktop
- Homepage: https://interop.io/
- npm.io page: https://npm.io/package/@interopio/desktop

## Dependencies (9)

- [@interopio/core](https://npm.io/package/@interopio/core.md) ^6.13.0
- [@interopio/otel](https://npm.io/package/@interopio/otel.md) ^0.1.18
- [@interopio/utils](https://npm.io/package/@interopio/utils.md) ^2.5.0
- [callback-registry](https://npm.io/package/callback-registry.md) ^2.7.1
- [@interopio/schemas](https://npm.io/package/@interopio/schemas.md) ^10.5.2
- [@interopio/insights-base](https://npm.io/package/@interopio/insights-base.md) ^0.1.2
- [@interopio/workspaces-api](https://npm.io/package/@interopio/workspaces-api.md) >=4.0.0
- [@interopio/insights-traces](https://npm.io/package/@interopio/insights-traces.md) ^0.1.8
- [@interopio/insights-metrics](https://npm.io/package/@interopio/insights-metrics.md) ^0.1.11

## Recent versions

- 6.23.2 (latest) — 2026-10-19
- 6.10.2 (beta) — 2025-02-17
- 6.9.0-rc.1 (next) — 2024-09-27
- 6.6.1 (cb-3.3-lts) — 2024-09-04
- 6.23.1 — 2026-10-13
- 6.23.0 — 2026-10-05
- 6.22.0 — 2026-08-28
- 6.21.0 — 2026-06-30
- 6.20.4 — 2026-06-08
- 6.20.3 — 2026-06-05
- 6.20.2 — 2026-05-21
- 6.20.1 — 2026-04-30
- 6.20.0 — 2026-04-29
- 6.19.0 — 2026-04-29
- 6.18.0 — 2026-03-10
- … 36 more at https://npm.io/package/@interopio/desktop/versions

## README

# io.Connect Desktop JavaScript Library

The [`@interopio/desktop`](https://www.npmjs.com/package/@interopio/desktop) library enables web apps to participate in **io.Connect Desktop** and use io.Connect functionalities via a set of APIs.

## Features

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](https://docs.interop.io/desktop/).

## Usage

The [`@interopio/desktop`](https://www.npmjs.com/package/@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:

```javascript
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:

```javascript
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");
```

---
_Source: https://npm.io/package/@interopio/desktop · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
