Agent skill

Fishjam JS Server SDK

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

Node.js / TypeScript server SDK for Fishjam — backends that create rooms, mint peer tokens, listen to server notifications, and run agents.

MITAuto-check passedBackend & APIs

Install Fishjam JS Server SDK

skills CLI
$ npx skills add software-mansion-labs/skills --skill fishjam-js-server-sdk -a claude-code

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

GitHub CLI
$ gh skill install software-mansion-labs/skills fishjam-js-server-sdk --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/js-server-sdk .claude/skills/fishjam-js-server-sdk && 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-js-server-sdk
GitHub stars
291
Token cost
~1.4k tokens
SKILL.md length
463 words
Files
9
Skills in repo
20
Repo updated
First seen
Licence
MIT

At a glance

Node.js / TypeScript server SDK for Fishjam — backends that create rooms, mint peer tokens, listen to server notifications, and run agents.

  • Writing a Node.js / Express / Fastify / Hono / NestJS backend that talks to Fishjam
  • SKILL.md covers Three components, Install + minimal flow, When to read which reference and Key rules, plus 1 more section
  • Calls npm; needs FISHJAM_MANAGEMENT_TOKEN
  • Sets up a webhook receiver

What it does

Fishjam JS Server SDK is an agent skill from software-mansion-labs/skills. Node.js / TypeScript server SDK for Fishjam — backends that create rooms, mint peer tokens, listen to server notifications, and run agents. Use when writing a Node.js / Express / Fastify / Hono / NestJS backend that talks to Fishjam, sets up a webhook receiver, runs an AI agent, or generates livestream tokens. Trigger on: '@fishjam-cloud/js-server-sdk', 'FishjamClient', 'FishjamWSNotifier', 'FishjamAgent', 'createPeer', 'createRoom', 'createAgent', 'createVapiAgent', 'createLivestreamStreamerToken'…

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files (for example `agent.md`, `client.md` and `express-fastify.md`).

It sits in Backend & APIs, covering Webhooks, Realtime and WebSockets and gRPC and Protobuf. It works with Fastify, Node.js, gRPC and TypeScript. 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

  • Writing a Node.js / Express / Fastify / Hono / NestJS backend that talks to Fishjam
  • Sets up a webhook receiver
  • Runs an AI agent
  • Generates livestream tokens

Example prompts

  • “@fishjam-cloud/js-server-sdk”
  • “FishjamClient”
  • “FishjamWSNotifier”
  • “/fishjam-js-server-sdk”

Requirements

  • Node.js
  • A credential in FISHJAM_MANAGEMENT_TOKEN

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 these keys or tokens, usually read from environment variables:

    • FISHJAM_MANAGEMENT_TOKEN

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

Context cost

Fishjam JS Server SDK loads about 1.4k tokens when it runs. Until then it costs about 224 tokens; SKILL.md has 463 words of instructions outside code blocks.

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

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). 463 words, ~1,376 tokens.

Download SKILL.mdSave it as .claude/skills/fishjam-js-server-sdk/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
fishjam-js-server-sdk
description
Node.js / TypeScript server SDK for Fishjam — backends that create rooms, mint peer tokens, listen to server notifications, and run agents. Use when writing a Node.js / Express / Fastify / Hono / NestJS backend that talks to Fishjam, sets up a webhook receiver, runs an AI agent, or generates livestream tokens. Trigger on: '@fishjam-cloud/js-server-sdk', 'FishjamClient', 'FishjamWSNotifier', 'FishjamAgent', 'createPeer', 'createRoom', 'createAgent', 'createVapiAgent', 'createLivestreamStreamerToken', 'createLivestreamViewerToken', 'refreshPeerToken', 'subscribeTracks', 'subscribePeer', 'createMoqToken', 'ServerMessage', 'roomCreated', 'peerAdded', 'trackAdded', 'fishjam backend Node', 'express fishjam', 'fastify fishjam', 'gemini agent fishjam', 'vapi fishjam'. Covers REST, WebSocket notifier, webhook protobuf decoding, FishjamAgent, and Gemini Live integration.
license
MIT

Fishjam JS Server SDK

@fishjam-cloud/js-server-sdk — server-side Node.js / TypeScript SDK for the Fishjam platform.

Read ../platform/SKILL.md first. It defines rooms, peers, tracks, management tokens, peer tokens, and the WS-vs-webhook tradeoff that this skill builds on.

Three components

ComponentWhat it doesReference
FishjamClientREST client — rooms, peers, agents, livestream/MoQ tokens, subscribe modes.client.md
FishjamWSNotifierSubscribes to all 18 server events over a single WebSocket. Best for long-lived workers.ws-notifier.md
FishjamAgentProgrammatic peer — sends/receives audio frames over a server-side WS. Used for AI agents (Gemini, custom).agent.md

Webhook receivers are not a class — you decode ServerMessage protobuf yourself; covered in webhooks.md.

Install + minimal flow

bash
npm install @fishjam-cloud/js-server-sdk
# or yarn add @fishjam-cloud/js-server-sdk
ts
import { FishjamClient } from '@fishjam-cloud/js-server-sdk';

const fishjamClient = new FishjamClient({
  fishjamId: process.env.FISHJAM_ID!,
  managementToken: process.env.FISHJAM_MANAGEMENT_TOKEN!,
});

const room = await fishjamClient.createRoom();
const { peer, peerToken } = await fishjamClient.createPeer(room.id, {
  metadata: { userId: 'user-123' },
});
// ship `peerToken` to your client

When to read which reference

TaskReference
Call any REST method (rooms, peers, subscribe, refresh)client.md
Subscribe to server events from a long-lived workerws-notifier.md
Receive events from a serverless / scaled-out backendwebhooks.md
Build an AI voice agent (audio in/out, image capture)agent.md
Wire a Gemini Live agent into a roomgemini-integration.md
Wire all of this into Express or Fastifyexpress-fastify.md
Issue livestream streamer/viewer tokens or MoQ tokenslivestream-and-moq.md
Use manual subscribe mode (cost / privacy / staging)selective-subscriptions.md

Key rules

  • One FishjamClient per process. It's a thin axios wrapper — share, don't recreate per request.
  • Catch SDK exceptions, not axios errors. All methods wrap REST calls in mapException, throwing typed errors (BadRequestException 400, UnauthorizedException 401, RoomNotFoundException / PeerNotFoundException / FishjamNotFoundException 404, ServiceUnavailableException 503, UnknownException for anything else — including 403). All inherit from FishjamBaseException, which is useful for a catch-all instanceof branch. ForbiddenException is exported but never produced by the current mapper. Match on these to map to HTTP status codes. Constructor also throws MissingFishjamIdException synchronously if fishjamId is falsy.
  • Management token stays in the backend. Never put it in NEXT_PUBLIC_*, VITE_*, or any bundled env. If exposed, regenerate from the Dashboard.
  • Deprecation header. The client logs x-fishjam-api-deprecated once per process. If you see it, plan a migration — don't silence it.
  • FishjamWSNotifier does NOT auto-reconnect. The constructor opens one WS; if it closes, you must reinstantiate. Wrap it in a supervisor or use webhooks instead.
  • Peer tokens are valid for 24 hours from creation. The token is consumed during the initial WS handshake; an established session keeps running on its own and isn't dropped when the token's wall-clock expiry passes. If the peer hasn't connected yet, or needs to reconnect after the 24h window, call refreshPeerToken to mint a new one and ship it to the client.
Show full SKILL.md (69 more words)Show less

References

FileWhen to read
client.mdThe REST surface — every method on FishjamClient with signatures and examples.
ws-notifier.mdFishjamWSNotifier wiring, the 18 events, reconnection patterns.
webhooks.mdDecoding application/x-protobuf webhook bodies with ServerMessage.decode.
agent.mdFishjamAgent — opus/pcm16, createTrack, sendData, captureImage, interruptTrack.
gemini-integration.md@fishjam-cloud/js-server-sdk/gemini — createClient, audio settings, end-to-end demo.
express-fastify.mdProduction wiring — /api/join-room, error mapping, webhook routes, Fastify plugin.
livestream-and-moq.mdcreateLivestreamStreamerToken, createLivestreamViewerToken, createMoqToken.
selective-subscriptions.mdsubscribePeer / subscribeTracks with peers created using subscribeMode: 'manual'.

© 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 8 other files in skills/fishjam/references/js-server-sdk of software-mansion-labs/skills.

  • SKILL.md
  • agent.md
  • client.md
  • express-fastify.md
  • gemini-integration.md
  • livestream-and-moq.md
  • selective-subscriptions.md
  • webhooks.md
  • ws-notifier.md

Open the folder on GitHubat commit e3f00cd

Compare with similar skills

Fishjam JS Server SDK 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 JS Server SDK compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fishjam JS Server SDK this skillsoftware-mansion-labs/skills291—~1.4kAutomated safety check: PassMIT
API ForgeEliasOulkadi/shokunin114—~2.9kAutomated safety check: PassMIT
Inngest SetupAsymmetric-al/core381—~3.3kAutomated safety check: NotesAGPL-3.0
System Design CommunicationHoangNguyen0403/agent-skills-standard571—~894Automated safety check: PassMIT
Nestjs Features Performanceaiskillstore/marketplace430—~3.8kAutomated safety check: PassMIT
Use Yaakmountain-loop/yaak19k—~1.9kAutomated safety check: PassMIT

Similar skills

  • API Forge

    EliasOulkadi/shokunin

    Design REST/GraphQL APIs with OpenAPI 3.1, error handling, pagination, rate limiting, webhooks, and idempotency.

    114 GitHub stars~2.9k tokensUpdated 4 days ago
    Backend & APIsAuto-check passed
  • Inngest Setup

    Asymmetric-al/core

    A skill your agent uses when adding durable execution to a TypeScript project — building retry-safe webhook handlers, background jobs that survive crashes, scheduled tasks, or long-running workflows…

    381 GitHub stars~3.3k tokensUpdated today
    Backend & APIsAuto-check: notes
  • System Design Communication

    HoangNguyen0403/agent-skills-standard

    Select how services talk: REST, gRPC, GraphQL, WebSocket, SSE, or webhook per hop, sync versus async per flow, service discovery mode, and DNS/edge routing.

    571 GitHub stars~894 tokensUpdated today
    Backend & APIsAuto-check passed
  • Nestjs Features Performance

    aiskillstore/marketplace

    Selects and implements NestJS runtime features, error and API contracts, security, testing, DevOps, performance, and safe scale.

    430 GitHub stars~3.8k tokensUpdated today
    Backend & APIsAuto-check passed
  • Use Yaak

    mountain-loop/yaak

    A skill your agent uses when the user mentions Yaak, a Yaak workspace, or the yaak command, or asks to call, hit, or smoke test HTTP/REST endpoints, save or organize API requests for reuse or manual…

    19k GitHub stars~1.9k tokensUpdated 2 days ago
    Backend & APIsAuto-check passed
  • Regenerate Grpc Stubs

    GetBindu/Bindu

    Regenerate Python + TypeScript gRPC stubs after editing proto files.

    10k GitHub stars~810 tokensUpdated 1 mo ago
    Backend & APIsAuto-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 11 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 11 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 11 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 11 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 11 days ago
    Auto-check passed

Categories

Questions about Fishjam JS Server SDK

What does Fishjam JS Server SDK do?

Node.js / TypeScript server SDK for Fishjam — backends that create rooms, mint peer tokens, listen to server notifications, and run agents. Fishjam JS Server SDK is an agent skill from software-mansion-labs/skills.js / TypeScript server SDK for Fishjam — backends that create rooms, mint peer tokens, listen to server notifications, and run agents.

When should I use Fishjam JS Server SDK?

Fishjam JS Server SDK fits situations like: writing a Node.js / Express / Fastify / Hono / NestJS backend that talks to Fishjam; sets up a webhook receiver; runs an AI agent; generates livestream tokens.

How do I install Fishjam JS Server SDK in Claude Code?

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

How do I install Fishjam JS Server SDK in Codex?

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

Can I use Fishjam JS Server SDK 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-js-server-sdk -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-js-server-sdk, .gemini/skills/fishjam-js-server-sdk, .github/skills/fishjam-js-server-sdk and .opencode/skills/fishjam-js-server-sdk in your project.

What does Fishjam JS Server SDK need to run?

Going by SKILL.md and its folder, Fishjam JS Server SDK needs the command-line tools its instructions call (npm) and credentials named FISHJAM_MANAGEMENT_TOKEN. Our summary lists: Node.js; A credential in FISHJAM_MANAGEMENT_TOKEN.

Does Fishjam JS Server SDK 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 JS Server SDK 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 JS Server SDK use?

Fishjam JS Server SDK 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 JS Server SDK use?

About 1.4k tokens (SKILL.md is roughly 5.5k 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 JS Server SDK?

Skills that share tags, products or a category with Fishjam JS Server SDK: API Forge (EliasOulkadi/shokunin, 114 stars), Inngest Setup (Asymmetric-al/core, 381 stars), System Design Communication (HoangNguyen0403/agent-skills-standard, 571 stars) and Nestjs Features Performance (aiskillstore/marketplace, 430 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fishjam JS Server SDK?

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.