Skip to main content
Integrating Equos into your application is a three-layer story:

1. Backend

Your server uses the Equos SDK to create characters, knowledge bases, and—most importantly—conversations. It holds your API key; clients never do.

2. Web client

Your frontend takes the response from a conversation creation and connects to the live room. Use @equos/browser-sdk (vanilla) or @equos/react (React/Next.js).

3. Native client

For iOS or Android, use the official LiveKit SDKs with the consumerAccessToken and serverUrl returned by your backend.

The flow

  1. Your backend calls startConversation with a characterId and a consumer identity. Equos spins up a live room and returns:
    • conversation.serverUrl — the LiveKit WebSocket URL for the room
    • consumerAccessToken — a short-lived JWT the end user uses to join
    • conversation.character.livekitIdentity — the identity the character publishes as
  2. You forward those fields to your client (web or native).
  3. The client connects to the room and starts talking to the character.
Your API key lives on the server only. The client should only ever receive the conversation object and the consumerAccessToken.

Working examples

The equos-examples repo contains complete, runnable apps for every layer:

Node.js backend

Full backend project with @equos/node-sdk.

Python backend

Sync and async Python with the equos package.

Vanilla JS frontend

Plain HTML + TypeScript using @equos/browser-sdk.

React frontend

Vite + React app using @equos/react.

Next.js full-stack

Next.js 15 with server actions + @equos/react.