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 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
? Enter your Hiyve API key (pk_*): pk_live_************************ ✓ API key verified ✓ npm configured for @hiyve packages ✓ Ready to install packages
Test keys: your console issues a 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.
2 Install

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
Tip: @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.
3 Build

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);
Note: Set 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
One registry, one cloud (at present): --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.

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...