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 credentials from the Developer Console:
an API key (pk_*) for all apps, plus a client secret (sk_*) if you need video conferencing.
Then run the CLI to authenticate. This is a one-time setup.
npx @hiyve/cli login
pk_test_* / sk_test_* pair alongside the live pair.
They work on the same servers — there is currently no separate development registry or stack — so use them while developing
and switch to the live pair to deploy. Keep ENVIRONMENT=production either way.
Without --dev, the CLI defaults to production. Having issues? See the Getting Started guide for troubleshooting and full setup details.
Install the packages you need
Choose between using React components (recommended) or the core client library directly.
# React — zero-config video conferencing
npm install @hiyve/rtc-client @hiyve/react @hiyve/react-ui
# Add features as needed
npm install @hiyve/react-collaboration @hiyve/react-capture @hiyve/react-intelligence
# Server — one-line Express middleware for token generation
npm install @hiyve/admin
# Framework-agnostic — core state store only
npm install @hiyve/rtc-client @hiyve/core
@hiyve/admin handles server-side token generation so your
client needs only <HiyveProvider region="us-east-2"> — the region must match the server's SERVER_REGION.
All React packages use @hiyve/rtc-client and @hiyve/core as peer
dependencies.
Add video conferencing to your app
// main.tsx — region MUST match the server's SERVER_REGION (us-east-2 by default)
import { HiyveProvider } from '@hiyve/react';
root.render(
<HiyveProvider region="us-east-2">
<App />
</HiyveProvider>
);
// App.tsx — the provider fetches the room token from /api/generate-room-token itself
import { useRoomFlow, useRoom, useConnection } from '@hiyve/react';
import { JoinForm, ConnectingScreen, VideoGrid, ControlBar } from '@hiyve/react-ui';
function App() {
const { screen } = useRoomFlow();
if (screen === 'connecting') return <ConnectingScreen />;
if (screen === 'in-room') return <VideoRoom />;
return <JoinForm autoConnect devicePreviewMode="inline" />;
}
function VideoRoom() {
const { room } = useRoom();
const { leaveRoom } = useConnection();
return (
<div style={{ height: '100vh', display: 'flex', flexDirection: 'column' }}>
{room?.name && <h2>{room.name}</h2>}
<VideoGrid localVideoElementId="local-video" showNames />
<ControlBar onLeave={leaveRoom} showScreenShare />
</div>
);
}
import { HiyveStore } from '@hiyve/core';
// The store fetches its room token from /api/generate-room-token.
// region must match the server's SERVER_REGION.
const store = new HiyveStore({ region: 'us-east-2' });
// Subscribe to state changes
store.subscribeToSlice('connection', () => {
const { isConnected } = store.getSlice('connection');
console.log('Connected:', isConnected);
});
store.subscribeToSlice('participants', () => {
const { participants } = store.getSlice('participants');
console.log('Participants:', participants.length);
});
// Create or join a room
await store.createRoom('my-room', 'user-123');
// Toggle audio/video
store.toggleAudio();
store.toggleVideo();
// Leave when done
store.leaveRoom();
Express token server — the same code as the Getting Started guide:
import 'dotenv/config';
import express from 'express';
import cors from 'cors';
import { mountHiyveRoutes, loadHiyveConfig } from '@hiyve/admin';
const app = express();
app.use(cors({ origin: ['http://localhost:5173'] }));
app.use(express.json());
// Mount under /api — the client fetches /api/generate-room-token.
// Mounting on the app root leaves that path unavailable.
const apiRouter = express.Router();
mountHiyveRoutes(apiRouter, loadHiyveConfig());
app.use('/api', apiRouter);
app.listen(3001);
APIKEY (pk_*) and CLIENT_SECRET (sk_*, required for video conferencing) environment
variables from console.hiyve.dev.
Identity-only apps need only the API key. SERVER_REGION defaults to us-east-2 and must match
the client's region. Works on Express 4 and 5.
CLI Commands
npx @hiyve/cli login
Authenticate with your API key
npx @hiyve/cli login --key <key>
Non-interactive login (CI/CD)
npx @hiyve/cli list
List all available packages
npx @hiyve/cli whoami
Show current authentication status
npx @hiyve/cli logout
Remove Hiyve configuration
npx @hiyve/cli init [name]
Scaffold a new Hiyve project
npx @hiyve/cli list
List the packages and versions your key can install
--dev is accepted for compatibility but changes nothing, and
ENVIRONMENT=development reaches the same cloud as production (with a warning). Use test keys to
separate development traffic; keep ENVIRONMENT=production.
See the Getting Started guide for full details.
Developer Guides
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