fishjam — скилл для Claude Code: WebRTC-код без ошибок
Скилл по платформе Fishjam и её SDK: помогает агенту писать бэкенд и клиент для видео, аудио и трансляций.
npx skills add software-mansion-labs/skills --skill fishjam -a claude-codeЧто делает fishjam
Fishjam — хостинговая WebRTC-платформа Software Mansion. Скилл нужен, когда агент пишет, проверяет или отлаживает код, который обращается к инстансу Fishjam: с бэкенда на Node или Python либо с клиента на React, React Native и Expo. Без него модель путает модели данных и имена методов.
Внутри — маршрутизация по подскиллам в references/. Сначала references/platform/SKILL.md: комнаты, пиры, треки, токены, уведомления. Дальше тот, что совпадает с задачей — js-server-sdk, python-server-sdk, react-client, react-native-client, composition. Для Svelte, Vue и воркеров есть уход на @fishjam-cloud/ts-client, для чистого REST — references/platform/rest-endpoints.md.
Две вещи ломают продакшен. Management token не должен покидать бэкенд: если утёк — перегенерируйте его в Dashboard. Peer-токен живёт 24 часа от создания и расходуется на первом WS-хендшейке; если пир ещё не подключился или переподключается позже, нужен refreshPeerToken (refresh_peer_token). URL Sandbox API годятся только для разработки: с ними любой может создавать комнаты в вашем аккаунте, поэтому в клиентскую сборку они не попадают.
Какие задачи решает
- поднять комнату и выдать пиру токен на Node-бэкенде
- подключить React-клиент к Fishjam через провайдер
- переподключить пира после истечения peer-токена
- собрать составной стрим с оверлеями и рестримингом
- разобрать модель комнат, треков и уведомлений перед кодом
Примеры запросов агенту
- Напиши Express-бэкенд, который создаёт комнату Fishjam и выдаёт peer token
- Добавь FishjamProvider в React-приложение и подключи камеру
- Пир отвалился через сутки — как обновить токен через refreshPeerToken?
Как установить fishjam
1Через Skills CLI (Vercel)
npx skills add software-mansion-labs/skills --skill fishjam -a claude-code2Вручную: положить файлы
~/.claude/skills/fishjam/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/fishjam/
1Через Skills CLI (Vercel)
npx skills add software-mansion-labs/skills --skill fishjam -a codex2Вручную: положить файлы
.agents/skills/fishjam/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add software-mansion-labs/skills --skill fishjam -a cursor2Вручную: положить файлы
.cursor/skills/fishjam/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install software-mansion-labs/skills fishjam2Вручную: положить файлы
.github/skills/fishjam/SKILL.md1Через Skills CLI (Vercel)
npx skills add software-mansion-labs/skills --skill fishjam -a gemini-cli2Командой платформы
gemini skills install https://github.com/software-mansion-labs/skills --path skills/fishjamВручную: положить файлы
.devin/skills/fishjam/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add software-mansion-labs/skills --skill fishjam -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора6
Похожие
Рядом в теме «Бэкенд и API»
Всё по теме «Бэкенд и API» →Вопросы о fishjam
Как установить fishjam в Claude?
Выполните npx skills add software-mansion-labs/skills --skill fishjam -a claude-code. Скилл появится в ~/.claude/skills/fishjam/SKILL.md.
Что делает скилл fishjam?
Он даёт агенту знания о платформе Fishjam и разводит по подскиллам: серверные SDK для Node и Python, клиентские для React и React Native, отдельно композиции и REST.
Нужен ли бэкенд вместе с клиентом?
В продакшене да: приложение обычно состоит из серверного SDK и клиентского. Для прототипа бэкенд можно обойти через Sandbox API, но его URL в продакшен-сборку не идут.
Исходный текст
SKILL.md · MIT
--- name: fishjam description: "Software Mansion's Fishjam — hosted WebRTC platform for video, audio, one-to-many livestreaming, and compositions. MUST USE before writing, reviewing, or debugging ANY code that talks to a Fishjam instance from a backend (Node, Python) or a client (React web, React Native / Expo). Routes to platform fundamentals and the right SDK sub-skill. Trigger on: 'Fishjam', 'fishjam.io', 'fishjam.swmansion.com', 'fishjam dashboard', 'Fishjam ID', 'management token', 'peer token', 'sandbox API', 'livestream room', '@fishjam-cloud/js-server-sdk', 'fishjam-server-sdk', '@fishjam-cloud/react-client', '@fishjam-cloud/react-native-client', '@fishjam-cloud/ts-client', 'FishjamClient', 'FishjamProvider', 'FishjamNotifier', 'FishjamAgent', 'createPeer', 'createRoom', 'createAgent', 'createLivestreamStreamerToken', 'createMoqToken', 'refreshPeerToken', 'webhook', 'gemini fishjam', 'vapi fishjam', 'fishjam expo plugin', 'Fishjam composition', 'CompositionClient', 'forwardRoomTracks', '@fishjam-cloud/composition'." license: MIT --- # Fishjam Software Mansion's hosted WebRTC platform. Routes between platform fundamentals, the four SDKs, and compositions. Read the **`references/platform/SKILL.md`** first for the domain model (rooms, peers, tracks, tokens, notifications). Then read the SDK sub-skill that matches what you're building. All sub-skills are in `references/`. ## Which sub-skill do I need? | You are writing… | Sub-skill | | --------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | | Anything Fishjam — start here for glossary, room types, auth, notifications, REST | `references/platform/SKILL.md` | | A Node.js / Express / Fastify / Hono backend | `references/js-server-sdk/SKILL.md` | | A Python / FastAPI / Flask backend | `references/python-server-sdk/SKILL.md` | | A React app in a browser | `references/react-client/SKILL.md` | | A React Native / Expo app for iOS or Android | `references/react-native-client/SKILL.md` | | Vanilla TS / Svelte / Vue / web worker (non-React) | `references/react-client/SKILL.md` → `ts-client-escape.md` (drop to `@fishjam-cloud/ts-client`) | | A composed stream: a call as a broadcast, restreaming, overlays, React templates | `references/composition/SKILL.md` | | Just calling REST directly (no SDK) | `references/platform/rest-endpoints.md` | A production Fishjam app always has **a backend (server SDK) + a client (client SDK)**. For prototyping you can skip the backend with the Sandbox API — see `references/platform/sandbox-vs-production.md`. ## Critical rules - Management token **never** leaves the backend. If it leaks, regenerate it from the Dashboard. - 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. If the peer hasn't connected yet or needs to _reconnect_ after 24h, call `refreshPeerToken` / `refresh_peer_token` to mint a new one. - Sandbox API URLs are dev-only. Anyone holding one can create rooms on your account — never ship in a production client build.
© software-mansion-labs · MIT · software-mansion-labs/skills