Skip to main content

Installation Guide

lib-jitsi-meet can be installed via package managers or included directly as a UMD bundle. Choose the method that best fits your project setup.
lib-jitsi-meet is not published to npm. It’s distributed via GitHub releases as .tgz packages.

Package Manager Installation

Install lib-jitsi-meet from a GitHub release URL:
npm install https://github.com/jitsi/lib-jitsi-meet/releases/download/v<version>+<commit-hash>/lib-jitsi-meet.tgz
Replace <version> and <commit-hash> with the actual release version. Check the GitHub releases page for available versions.

Import in Your Application

After installation, import JitsiMeetJS in your JavaScript/TypeScript files:
import JitsiMeetJS from 'lib-jitsi-meet';

// Initialize the library
JitsiMeetJS.init();

UMD Bundle (Script Tag)

For browser-based projects without a build system, include the UMD bundle directly:
1

Download the Bundle

Download lib-jitsi-meet.min.js from a GitHub release or build it yourself:
git clone https://github.com/jitsi/lib-jitsi-meet.git
cd lib-jitsi-meet
npm install
npm run build
The UMD bundle will be available at dist/umd/lib-jitsi-meet.min.js
2

Include in HTML

Add the script tag to your HTML file:
<script src="path/to/lib-jitsi-meet.min.js"></script>
<script>
  // JitsiMeetJS is now available globally
  JitsiMeetJS.init();
</script>
3

Access Global Object

The library is exposed as a global JitsiMeetJS object:
const connection = new JitsiMeetJS.JitsiConnection(appId, token, options);
The UMD bundle path is defined in package.json under the "browser" field: "dist/umd/lib-jitsi-meet.min.js"

React Native Setup

lib-jitsi-meet supports React Native applications with the ESM build:
1

Install the Package

npm install https://github.com/jitsi/lib-jitsi-meet/releases/download/v<version>+<commit-hash>/lib-jitsi-meet.tgz
2

Import in React Native

The library automatically uses the React Native entry point defined in package.json:
import JitsiMeetJS from 'lib-jitsi-meet';

// Initialize for React Native
JitsiMeetJS.init({
  disableThirdPartyRequests: true,
  // React Native specific options
});
3

Handle Platform Differences

Be aware of platform-specific WebRTC behavior:
import { Platform } from 'react-native';

const options = {
  devices: ['audio', 'video'],
  // iOS/Android specific constraints
  facingMode: Platform.OS === 'ios' ? 'user' : undefined,
};

const tracks = await JitsiMeetJS.createLocalTracks(options);
The React Native entry point is defined in package.json: "react-native": "./dist/esm/JitsiMeetJS.js"

TypeScript Setup

lib-jitsi-meet includes TypeScript type definitions:
1

Automatic Type Definitions

Type definitions are automatically included when you install the package. They’re generated from the TypeScript source code.
2

Import with Types

import JitsiMeetJS, { IJitsiMeetJSOptions } from 'lib-jitsi-meet';
import { JitsiConnectionEvents } from 'lib-jitsi-meet/JitsiConnectionEvents';
import { JitsiConferenceEvents } from 'lib-jitsi-meet/JitsiConferenceEvents';

const options: IJitsiMeetJSOptions = {
  enableAnalyticsLogging: true,
  disableAudioLevels: false,
};

JitsiMeetJS.init(options);
3

Configure TypeScript

Ensure your tsconfig.json allows ESM imports:
{
  "compilerOptions": {
    "module": "ES2020",
    "moduleResolution": "node",
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true
  }
}

Verify Installation

Test that lib-jitsi-meet is correctly installed:
import JitsiMeetJS from 'lib-jitsi-meet';

console.log('lib-jitsi-meet version:', JitsiMeetJS.version);
console.log('WebRTC supported:', JitsiMeetJS.isWebRtcSupported());
console.log('Desktop sharing enabled:', JitsiMeetJS.isDesktopSharingEnabled());

Build Outputs

lib-jitsi-meet provides two build outputs:
  • ESM (dist/esm/JitsiMeetJS.js) - For modern bundlers and React Native
  • UMD (dist/umd/lib-jitsi-meet.min.js) - For browser <script> tags
The correct build is automatically selected based on your environment.

Next Steps

Quick Start Guide

Create your first video conference with lib-jitsi-meet

Build docs developers (and LLMs) love