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
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
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
@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.
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
Resources
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
Demo Applications
See the SDK in action with our example applications