Intelligent Video Conferencing SDK for Developers

Build production-ready video apps with WebRTC, recording, transcription, and AI-powered features. Drop-in React components or use the core client library directly.

Getting Started

Build a video conferencing app in under 5 minutes

1 Authenticate

Configure npm for @hiyve packages

Get your API key from the Developer Console, then run the CLI to authenticate. This is a one-time setup.

npx @hiyve/cli login
? Enter your Hiyve API key: hk_************************ API key verified npm configured for @hiyve packages Ready to install packages
2 Install

Install the packages you need

Choose between using React components (recommended) or the core client library directly.

# For React apps - includes everything you need
npm install @hiyve/rtc-client @hiyve/react @hiyve/react-ui

# Add more component packages as needed
npm install @hiyve/react-collaboration @hiyve/react-capture @hiyve/react-intelligence

# For vanilla JS or other frameworks - core client only
npm install @hiyve/rtc-client @hiyve/core
Tip: Use @hiyve/rtc-client@alpha for the latest features, or @latest for stable releases. All React packages use @hiyve/rtc-client and @hiyve/core as peer dependencies.
3 Build

Add video conferencing to your app

import { HiyveProvider, useConnection, useRoom } from '@hiyve/react';
import { VideoGrid } from '@hiyve/react-ui';
import { ControlBar } from '@hiyve/react-ui';

function App() {
  // Fetch room token from your server
  const generateToken = async () => {
    const res = await fetch('/api/room-token', { method: 'POST' });
    const { roomToken } = await res.json();
    return roomToken;
  };

  return (
    <HiyveProvider generateRoomToken={generateToken}>
      <VideoRoom />
    </HiyveProvider>
  );
}

function VideoRoom() {
  const { joinRoom, leaveRoom, isConnecting } = useConnection();
  const { isInRoom, room } = useRoom();

  if (!isInRoom) {
    return <button onClick={() => joinRoom({ roomName: 'my-room' })}>Join</button>;
  }

  return (
    <div style={{ height: '100vh', display: 'flex', flexDirection: 'column' }}>
      <VideoGrid />
      <ControlBar onLeave={leaveRoom} />
    </div>
  );
}
import { Client, ClientEvents } from '@hiyve/rtc-client';

// Get room token from your server
const res = await fetch('/api/room-token', { method: 'POST' });
const { roomToken } = await res.json();

// Create and configure client
const client = new Client({ roomToken });

client.on(ClientEvents.CONNECTED, () => console.log('Connected!'));
client.on(ClientEvents.PARTICIPANT_JOINED, (p) => console.log(`${p.name} joined`));
client.on(ClientEvents.PARTICIPANT_LEFT, (p) => console.log(`${p.name} left`));

// Create or join a room
await client.createRoom({ roomName: 'my-room', userId: 'user-123' });

// Start video (attaches to video element)
await client.connectTransports({ localVideoElementId: 'local-video' });

Your server generates room tokens for authenticated users:

import express from 'express';

const app = express();
app.use(express.json());

// Environment variables from console.hiyve.dev
const API_KEY = process.env.HIYVE_API_KEY;
const API_SECRET = process.env.HIYVE_API_SECRET;
const REGION = process.env.HIYVE_REGION || 'us-east-1';

app.post('/api/room-token', async (req, res) => {
  const response = await fetch(
    `https://${REGION}.rtc.hiyve.dev/room-token`,
    {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        apiKey: API_KEY,
        secret: API_SECRET,
        roomName: req.body.roomName,
        userId: req.user.id  // from your auth middleware
      })
    }
  );

  const data = await response.json();
  res.json({ roomToken: data.roomToken });
});

app.listen(3000);

CLI Commands

npx @hiyve/cli login Authenticate with your API key
npx @hiyve/cli logout Remove Hiyve configuration
npx @hiyve/cli whoami Show current authentication status
npx @hiyve/cli list List all available packages

Key Capabilities

HD Video Conferencing

WebRTC-powered video with adaptive bitrate, simulcast, and SFU architecture for unlimited participants

Cloud Recording

Record meetings with automatic grid composition, transcription, and S3 storage

Live Transcription

Real-time speech-to-text with speaker identification and AI-powered meeting summaries

Screen Sharing

Share your entire screen, application windows, or browser tabs with participants

SDK Packages

Everything you need to build real-time communication applications

Framework Filter
Function
Loading packages...

Demo Applications

See the SDK in action with our example applications

Loading demos...