Agent skill

Fishjam React Client

by software-mansion-labs in software-mansion-labs/skills

Browser-only React SDK for Fishjam — joining rooms, capturing camera/microphone/screen, displaying peers, and acting as a livestream streamer or viewer in a React web app.

MITAuto-check passedFrontend & Design

Install Fishjam React Client

skills CLI
$ npx skills add software-mansion-labs/skills --skill fishjam-react-client -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install software-mansion-labs/skills fishjam-react-client --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/software-mansion-labs/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/fishjam/references/react-client .claude/skills/fishjam-react-client && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
fishjam-react-client
GitHub stars
291
Token cost
~1.5k tokens
SKILL.md length
383 words
Files
10
Skills in repo
20
Repo updated
First seen
Licence
MIT

At a glance

Browser-only React SDK for Fishjam — joining rooms, capturing camera/microphone/screen, displaying peers, and acting as a livestream streamer or viewer in a React web app.

  • The user is writing a React app in a browser that calls Fishjam APIs
  • SKILL.md covers Minimal setup, Hook catalog (decision tree), Key rules and References
  • Calls npm
  • Sets up FishjamProvider

What it does

Fishjam React Client is an agent skill from software-mansion-labs/skills. Browser-only React SDK for Fishjam — joining rooms, capturing camera/microphone/screen, displaying peers, and acting as a livestream streamer or viewer in a React web app. Use whenever the user is writing a React app in a browser that calls Fishjam APIs, sets up FishjamProvider, or uses any Fishjam React hook. Trigger on: '@fishjam-cloud/react-client', 'FishjamProvider', 'useConnection', 'useCamera', 'useMicrophone', 'useScreenShare', 'usePeers', 'useDataChannel', 'useVAD', 'useLivestreamStreamer'…

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files (for example `connection.md`, `custom-sources.md` and `data-and-events.md`).

It sits in Frontend & Design, covering React components. It works with React. The repository describes itself as: Software Mansion's set of skills for AI-assisted React Native development. The licence is MIT.

When your agent uses it

  • The user is writing a React app in a browser that calls Fishjam APIs
  • Sets up FishjamProvider
  • Uses any Fishjam React hook
  • : @fishjam-cloud/react-client

Example prompts

  • “@fishjam-cloud/react-client”
  • “FishjamProvider”
  • “useConnection”
  • “/fishjam-react-client”

Requirements

  • Node.js

What it can do on your machine

Read from SKILL.md and the folder at commit e3f00cd. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Fishjam React Client loads about 1.5k tokens when it runs. Until then it costs about 255 tokens; SKILL.md has 383 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~255
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from software-mansion-labs/skills at commit e3f00cd, republished under its MIT licence (© software-mansion-labs). 383 words, ~1,487 tokens.

Download SKILL.mdSave it as .claude/skills/fishjam-react-client/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
fishjam-react-client
description
Browser-only React SDK for Fishjam — joining rooms, capturing camera/microphone/screen, displaying peers, and acting as a livestream streamer or viewer in a React web app. Use whenever the user is writing a React app in a browser that calls Fishjam APIs, sets up FishjamProvider, or uses any Fishjam React hook. Trigger on: '@fishjam-cloud/react-client', 'FishjamProvider', 'useConnection', 'useCamera', 'useMicrophone', 'useScreenShare', 'usePeers', 'useDataChannel', 'useVAD', 'useLivestreamStreamer', 'useLivestreamViewer', 'useCustomSource', 'useInitializeDevices', 'useUpdatePeerMetadata', 'useSandbox', 'PeerWithTracks', 'joinRoom', 'peerToken', 'fishjamId', 'fishjam react', '@fishjam-cloud/ts-client', 'FishjamClient ts-client'. Covers the provider, the full hook catalog, simulcast configuration, custom sources, data channels, VAD, livestream WHEP playback, device persistence, and reconnection. Briefly notes when to drop down to @fishjam-cloud/ts-client for non-React or worker contexts.
license
MIT

Fishjam React Client

@fishjam-cloud/react-client — Fishjam's React SDK for browser apps. Wrap your app in FishjamProvider, then use hooks to drive devices, connection, and peers.

Read ../platform/SKILL.md first. It defines what rooms, peers, tokens, and the sandbox-vs-prod model are. This skill assumes those.

For React Native, use ../react-native-client/SKILL.md instead — it re-exports this hook surface and adds mobile-only concerns.

Minimal setup

bash
npm install @fishjam-cloud/react-client
# or yarn add @fishjam-cloud/react-client
tsx
import { FishjamProvider, useConnection, useSandbox } from '@fishjam-cloud/react-client';

function App() {
  return (
    <FishjamProvider fishjamId={import.meta.env.VITE_FISHJAM_ID}>
      <Room />
    </FishjamProvider>
  );
}

function Room() {
  // DEV — sandbox flow (no backend needed):
  const { getSandboxPeerToken } = useSandbox({ sandboxApiUrl: import.meta.env.VITE_SANDBOX_API_URL });
  const { joinRoom } = useConnection();

  const handleJoin = async () => {
    const peerToken = await getSandboxPeerToken('test-room', 'alice');
    await joinRoom({ peerToken });
  };

  return <button onClick={handleJoin}>Join</button>;
}

For production, replace useSandbox with a call to your own backend that returns a peer token (see ../platform/sandbox-vs-production.md):

tsx
const peerToken = await fetchPeerTokenFromYourBackend(roomName);
await joinRoom({ peerToken });

Hook catalog (decision tree)

What you needHookReference
Open / close the connectionuseConnectionconnection.md
Sandbox tokens for prototypinguseSandboxconnection.md
CamerauseCameradevices.md
MicrophoneuseMicrophonedevices.md
Screen shareuseScreenSharedevices.md
Initialize devices on app loaduseInitializeDevicesdevices.md
Render peers + their tracksusePeers (returns PeerWithTracks)peers-and-tracks.md
Livestream as broadcasteruseLivestreamStreamerlivestream.md
Livestream as vieweruseLivestreamViewerlivestream.md
Push a MediaStreamTrack you generated yourselfuseCustomSourcecustom-sources.md
Peer-to-peer messages (text chat, signals)useDataChanneldata-and-events.md
Detect when a remote peer is speakinguseVADdata-and-events.md
Update your peer's metadata mid-sessionuseUpdatePeerMetadatadata-and-events.md
Get WebRTC RTCStatsReport for debugginguseStatistics (from @fishjam-cloud/react-client/debug)provider.md
Configure simulcast / bandwidth(props on FishjamProvider)simulcast-and-bandwidth.md
Use Fishjam from non-React code (workers, Svelte, vanilla TS)@fishjam-cloud/ts-clientts-client-escape.md
Show full SKILL.md (192 more words)Show less

Key rules

  • One FishjamProvider per app. Don't nest. It owns the FishjamClient, all device managers, and reconnection state.
  • useSandbox is dev-only. Gate it with if (import.meta.env.DEV) (or equivalent) so a sandbox URL can never ship in a production bundle.
  • Browser requires user gesture for useScreenShare — call inside an onClick, not on mount.
  • Devices stay mounted across connection state. Initializing with useInitializeDevices once is enough — they remain available after you leaveRoom.
  • Livestream rooms have a one-track-per-direction constraint. One video + one audio on the streamer; viewers don't publish.
  • For non-React contexts (Svelte, Vue, workers, vanilla TS), use @fishjam-cloud/ts-client directly. The React SDK is a thin layer over it. See ts-client-escape.md.
  • The provider re-exports Variant from ts-client for simulcast quality (Variant.VARIANT_LOW | Variant.VARIANT_MEDIUM | Variant.VARIANT_HIGH).

References

FileWhen to read
provider.mdAll FishjamProvider props — fishjamId, reconnect, constraints, persistLastDevice, bandwidthLimits, videoConfig, audioConfig, debug, fishjamClient.
connection.mduseConnection (joinRoom, leaveRoom, peerStatus, reconnectionStatus) and useSandbox.
devices.mduseCamera, useMicrophone, useScreenShare, useInitializeDevices. Device enumeration, switching, persistence.
peers-and-tracks.mdusePeers — localPeer, remotePeers, the PeerWithTracks shape.
livestream.mduseLivestreamStreamer, useLivestreamViewer, public vs private flows.
custom-sources.mduseCustomSource, TrackMiddleware, TracksMiddleware.
data-and-events.mduseDataChannel, useVAD, useUpdatePeerMetadata.
simulcast-and-bandwidth.mdVariant, BandwidthLimits, SimulcastConfig via videoConfig / audioConfig.
ts-client-escape.mdWhen and how to drop to @fishjam-cloud/ts-client.

© software-mansion-labs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 9 other files in skills/fishjam/references/react-client of software-mansion-labs/skills.

  • SKILL.md
  • connection.md
  • custom-sources.md
  • data-and-events.md
  • devices.md
  • livestream.md
  • peers-and-tracks.md
  • provider.md
  • simulcast-and-bandwidth.md
  • ts-client-escape.md

Open the folder on GitHubat commit e3f00cd

Compare with similar skills

Fishjam React Client next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Fishjam React Client compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fishjam React Client this skillsoftware-mansion-labs/skills291—~1.5kAutomated safety check: PassMIT
Web Artifacts Builderanthropics/skills180k41 repos~769Automated safety check: PassApache-2.0
React Router Developmentremix-run/react-router57k1 repos~1.5kAutomated safety check: PassMIT
React UI State PatternsChrisWiles/claude-code-showcase6.1k8 repos~1.6kAutomated safety check: PassNone
Chakra UI v3 Builderchakra-ui/chakra-ui41k—~3.1kAutomated safety check: PassMIT
React Component PerformanceDimillian/Skills4k5 repos~1.2kAutomated safety check: PassMIT

Similar skills

  • Web Artifacts Builder

    anthropics/skills

    Official

    Builds multi-component claude.ai HTML artifacts as a small React, TypeScript and Tailwind project, then bundles it into one shareable HTML file.

    180k GitHub starsUsed in 41 repos~769 tokens
    Frontend & DesignAuto-check passed
  • React Router Development

    remix-run/react-router

    Guides work on React Router apps by first identifying whether the app uses Framework, Data or Declarative mode, then loading the matching reference and the installed package docs.

    57k GitHub starsUsed in 1 repo~1.5k tokens
    Frontend & DesignAuto-check passed
  • React UI State Patterns

    ChrisWiles/claude-code-showcase

    Sets patterns for React interfaces: when to show loading spinners or skeletons, how to surface errors, how to disable buttons during async work and how to handle empty lists.

    6.1k GitHub starsUsed in 8 repos~1.6k tokens
    Frontend & DesignAuto-check passed
  • Chakra UI v3 Builder

    chakra-ui/chakra-ui

    Builds responsive, accessible Chakra UI v3 components and layouts, sets up Chakra in new or existing projects, and designs themes with tokens, semantic tokens and recipes.

    41k GitHub stars~3.1k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Analyze and optimize React component performance issues (slow renders, re-render thrash, laggy lists, expensive computations).

    4k GitHub starsUsed in 5 repos~1.2k tokens
    Frontend & DesignAuto-check passed
  • React View Transitions Guide

    vercel-labs/next-beats

    Official

    Guides implementing animated page and state transitions in React with the native View Transition API, covering shared elements, list reorders and directional navigation.

    167 GitHub starsUsed in 10 repos~3.1k tokens
    Frontend & DesignAuto-check passed

More from software-mansion-labs/skills

All 20 skills in this repo
  • Detour Onboarding

    software-mansion-labs/skills

    Complete onboarding guide for developers who are new to Detour, the open-source deferred deep linking SDK by Software Mansion.

    291 GitHub stars~2.8k tokensUpdated 10 days ago
    Auto-check passed
  • Typegpu

    software-mansion-labs/skills

    TypeGPU is type-safe WebGPU in TypeScript. An agent skill from software-mansion-labs/skills.

    291 GitHub starsUsed in 2 repos~5.6k tokens
    Auto-check passed
  • Enable Worklets Bundle Mode

    software-mansion-labs/skills

    Enable react-native-worklets Bundle Mode (imports inside worklets, third party libraries on worklet runtimes) in an Expo, RN CLI or brownfield React Native app, including the mandatory…

    291 GitHub stars~4k tokensUpdated 10 days ago
    Auto-check passed
  • Moq Kit

    software-mansion-labs/skills

    Software Mansion's moq-kit — native Swift (iOS) and Kotlin (Android) SDKs for Media over QUIC (moq-lite) live streaming: sub-second-latency playback, camera/microphone/screen publishing, and…

    291 GitHub stars~5k tokensUpdated 10 days ago
    Auto-check passed
  • React Native Moq

    software-mansion-labs/skills

    Software Mansion's react-native-moq — Media over QUIC (MoQ) live streaming for React Native: sub-second-latency video/audio playback, camera/mic/screen publishing, and realtime data tracks over a…

    291 GitHub stars~1.6k tokensUpdated 10 days ago
    Auto-check passed
  • Expo Horizon

    software-mansion-labs/skills

    Software Mansion's guide for migrating Expo SDK apps to Meta Quest using expo-horizon packages.

    291 GitHub stars~2.8k tokensUpdated 10 days ago
    Auto-check passed

Works with

Questions about Fishjam React Client

What does Fishjam React Client do?

Browser-only React SDK for Fishjam — joining rooms, capturing camera/microphone/screen, displaying peers, and acting as a livestream streamer or viewer in a React web app. Fishjam React Client is an agent skill from software-mansion-labs/skills. Browser-only React SDK for Fishjam — joining rooms, capturing camera/microphone/screen, displaying peers, and acting as a livestream streamer or viewer in a React web app.

When should I use Fishjam React Client?

Fishjam React Client fits situations like: the user is writing a React app in a browser that calls Fishjam APIs; sets up FishjamProvider; uses any Fishjam React hook; : @fishjam-cloud/react-client.

How do I install Fishjam React Client in Claude Code?

Run `npx skills add software-mansion-labs/skills --skill fishjam-react-client -a claude-code`. Or copy the skill folder (skills/fishjam/references/react-client in software-mansion-labs/skills) into .claude/skills/fishjam-react-client in your project. Claude Code loads it when a task matches its description.

How do I install Fishjam React Client in Codex?

Run `npx skills add software-mansion-labs/skills --skill fishjam-react-client -a codex`. Or copy the skill folder (skills/fishjam/references/react-client in software-mansion-labs/skills) into .agents/skills/fishjam-react-client in your project. Codex loads it when a task matches its description.

Can I use Fishjam React Client in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add software-mansion-labs/skills --skill fishjam-react-client -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fishjam-react-client, .gemini/skills/fishjam-react-client, .github/skills/fishjam-react-client and .opencode/skills/fishjam-react-client in your project.

What does Fishjam React Client need to run?

Going by SKILL.md and its folder, Fishjam React Client needs the command-line tools its instructions call (npm). Our summary lists: Node.js.

Does Fishjam React Client access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Fishjam React Client safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Fishjam React Client use?

Fishjam React Client is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Fishjam React Client use?

About 1.5k tokens (SKILL.md is roughly 5.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Fishjam React Client?

Skills that share tags, products or a category with Fishjam React Client: Web Artifacts Builder (anthropics/skills, 180k stars), React Router Development (remix-run/react-router, 57k stars), React UI State Patterns (ChrisWiles/claude-code-showcase, 6.1k stars) and Chakra UI v3 Builder (chakra-ui/chakra-ui, 41k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fishjam React Client?

software-mansion-labs (a GitHub organization) maintains it in software-mansion-labs/skills, which has 291 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on September 28, 2026.

Source: software-mansion-labs/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.