mcpField
R
rivetkit-client-react

rivetkit-client-react

github.com/rivet-devDevelopment447.5k installsUpdated 1d ago
Repository

About rivetkit-client-react

A skill for building React apps that connect to Rivet Actors with `@rivetkit/react`. It explains hook setup, actor connections, event subscriptions, and using the JavaScript client for low-level HTTP and WebSocket access.

Key features

  1. 01Create hooks with `createRivetKit()`
  2. 02Connect to actors with `useActor()`
  3. 03Configure actor connection parameters
  4. 04Subscribe to actor events
  5. 05Use JavaScript client for low-level requests

Use cases

  1. 01Build React interfaces backed by Rivet Actors
  2. 02Connect React components to actor instances
  3. 03Access actor handlers through HTTP or WebSocket

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/rivet-dev/skills --skill rivetkit-client-react

After installing, type/rivetkit-client-reactin Claude Code to confirm it loaded.

Bundled filesindex.json

Details

From the project README

RivetKit React Client

Use this skill when building React apps that connect to Rivet Actors with @rivetkit/react.

First Steps

  1. Install the React client (latest: 2.3.7)
    npm install @rivetkit/[email protected]
    
  2. Create hooks with createRivetKit() and connect with useActor().

Error Handling Policy

  • Prefer fail-fast behavior by default.
  • Avoid try/catch unless absolutely needed.
  • If a catch is used, handle the error explicitly, at minimum by logging it.

Getting Started

See the React quickstart guide for getting started.

Install

Minimal Client

Stateless vs Stateful

Getting Actors

Connection Parameters

Subscribing to Events

Connection Lifecycle

Low-Level HTTP & WebSocket

Use the JavaScript client for raw HTTP and WebSocket access:

import { createClient } from "rivetkit/client";

const client = createClient();
const handle = client.chatRoom.getOrCreate(["general"]);

const response = await handle.fetch("history");
const history = await response.json();

const ws = await handle.webSocket("stream");
ws.addEventListener("message", (event) => {
  console.log("message:", event.data);
});
ws.send("hello");

Calling from Backend

Use the JavaScript client on your backend (Node.js/Bun). See the JavaScript client docs.

Error Handling

Concepts

Keys

Keys uniquely identify actor instances. Use compound keys (arrays) for hierarchical addressing:

Don't build keys with string interpolation like "org:${userId}" when userId contains user data. Use arrays instead to prevent key injection attacks.

Environment Variables

createRivetKit() (and the underlying createClient() instance) automatically read:

  • RIVET_ENDPOINT
  • RIVET_NAMESPACE
  • RIVET_TOKEN
  • RIVET_POOL

Defaults to http://localhost:6420 when unset. RivetKit runs on port 6420 by default.

Endpoint Format

Endpoints support URL auth syntax:

https://namespace:[email protected]

You can also pass the endpoint without auth and provide RIVET_NAMESPACE and RIVET_TOKEN separately. For serverless deployments, use your app's /api/rivet URL. See Endpoints for details.

API Reference

Package: @rivetkit/react

Need More Than the Client?

If you need more about Rivet Actors, registries, or server-side RivetKit, add the main skill:

npx skills add rivet-dev/skills

Then use the rivetkit skill for backend guidance.

Comments

Markdown supported