capacitor-realtimekit

May 11, 2026 ยท View on GitHub

Capgo - Instant updates for Capacitor

โžก๏ธ Get Instant updates for your App with Capgo

Missing a feature? We'll build the plugin for you ๐Ÿ’ช

Cloudflare Calls integration for Capacitor apps with built-in UI for meetings.

Documentation

The most complete doc is available here: https://capgo.app/docs/plugins/realtimekit/

Compatibility

Plugin versionCapacitor compatibilityMaintained
v8.*.*v8.*.*โœ…
v7.*.*v7.*.*On demand
v6.*.*v6.*.*โŒ
v5.*.*v5.*.*โŒ

Note: The major version of this plugin follows the major version of Capacitor. Use the version that matches your Capacitor installation (e.g., plugin v8 for Capacitor 8). Only the latest major version is actively maintained.

Install

npm install @capgo/capacitor-realtimekit
npx cap sync

Dependencies

This plugin uses the Cloudflare RealtimeKit SDK:

  • iOS: realtimekit-ios-ui plus its matching RealtimeKit core dependency (automatically installed via Swift Package Manager)
  • Android: com.cloudflare.realtimekit:ui-android version 0.2.2 (can be customized via gradle variable realtimekitUiVersion)

Customizing Android RealtimeKit Version

In your app's build.gradle:

buildscript {
    ext {
        realtimekitUiVersion = '0.2.2'  // or your desired version
    }
}

Platform Support

  • iOS: โœ… Supported (iOS 14.0+)
  • Android: โœ… Supported (API 24+)
  • Web: โŒ Not supported (native only)

iOS Configuration

Add the following to your app's Info.plist file:

<key>NSCameraUsageDescription</key>
<string>We need camera access for video calls</string>
<key>NSMicrophoneUsageDescription</key>
<string>We need microphone access for audio calls</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>We need photo library access to share images</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>We need Bluetooth access for audio routing</string>

<key>UIBackgroundModes</key>
<array>
  <string>audio</string>
  <string>voip</string>
  <string>fetch</string>
  <string>remote-notification</string>
</array>

Android Configuration

Add the following permissions to your app's AndroidManifest.xml file:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

API

Capacitor RealtimeKit Plugin for Cloudflare Calls integration.

initialize()

initialize() => Promise<void>

Initializes the RealtimeKit plugin before using other methods.

Since: 7.0.0


startMeeting(...)

startMeeting(options: StartMeetingOptions) => Promise<void>

Start a meeting using the built-in UI. Only available on Android and iOS.

ParamTypeDescription
optionsStartMeetingOptions- Configuration options for the meeting

Since: 7.0.0


getPluginVersion()

getPluginVersion() => Promise<{ version: string; }>

Get the native Capacitor plugin version.

Returns: Promise<{ version: string; }>

Since: 7.0.0


Interfaces

StartMeetingOptions

Configuration options for starting a meeting.

PropTypeDescriptionDefaultSince
authTokenstringAuthentication token for the participant. This token is required to join the Cloudflare Calls meeting.7.0.0
enableAudiobooleanWhether to join with audio enabled. Default is true.true7.0.0
enableVideobooleanWhether to join with video enabled. Default is true.true7.0.0