Agent skill

Fishjam Python Server SDK

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

Python server SDK for Fishjam — backends that create rooms, mint peer tokens, receive server notifications, and run voice agents.

Apache-2.0Auto-check passedBackend & APIs

Install Fishjam Python Server SDK

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

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

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

At a glance

Python server SDK for Fishjam — backends that create rooms, mint peer tokens, receive server notifications, and run voice agents.

  • Writing a Python backend (FastAPI
  • SKILL.md covers Sync REST + async events, Install + minimal flow, Components and When to read which reference, plus 2 more sections
  • Calls pip; needs FISHJAM_MANAGEMENT_TOKEN
  • Aiohttp) that talks to Fishjam

What it does

Fishjam Python Server SDK is an agent skill from software-mansion-labs/skills. Python server SDK for Fishjam — backends that create rooms, mint peer tokens, receive server notifications, and run voice agents. Use when writing a Python backend (FastAPI, Flask, Starlette, aiohttp) that talks to Fishjam, decorates a notification handler, decodes a Fishjam webhook, or builds an AI voice agent in Python. Trigger on: 'fishjam-server-sdk', 'pip install fishjam-server-sdk', 'from fishjam import', 'fishjam.FishjamClient', 'FishjamNotifier', 'onservernotification', 'receivebinary', 'fishjam Agent'…

Its SKILL.md is about 1.3k 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 `fastapi.md`).

It sits in Backend & APIs, covering Speech recognition and synthesis, Backend development and Webhooks. It works with Python, FastAPI and Flask. The repository describes itself as: Software Mansion's set of skills for AI-assisted React Native development. The licence is Apache-2.0.

When your agent uses it

  • Writing a Python backend (FastAPI
  • Aiohttp) that talks to Fishjam
  • Decorates a notification handler
  • Decodes a Fishjam webhook

Example prompts

  • “fishjam-server-sdk”
  • “pip install fishjam-server-sdk”
  • “from fishjam import”
  • “/fishjam-python-server-sdk”

Requirements

  • Python 3
  • 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:

    • pip

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

  • Network

    No URLs in SKILL.md. Its commands use pip, 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 Python Server SDK loads about 1.3k tokens when it runs. Until then it costs about 239 tokens; SKILL.md has 413 words of instructions outside code blocks.

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

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 Apache-2.0 licence (© software-mansion-labs). 413 words, ~1,330 tokens.

Download SKILL.mdSave it as .claude/skills/fishjam-python-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-python-server-sdk
description
Python server SDK for Fishjam — backends that create rooms, mint peer tokens, receive server notifications, and run voice agents. Use when writing a Python backend (FastAPI, Flask, Starlette, aiohttp) that talks to Fishjam, decorates a notification handler, decodes a Fishjam webhook, or builds an AI voice agent in Python. Trigger on: 'fishjam-server-sdk', 'pip install fishjam-server-sdk', 'from fishjam import', 'fishjam.FishjamClient', 'FishjamNotifier', 'on_server_notification', 'receive_binary', 'fishjam Agent', 'AgentSession', 'PeerOptions', 'RoomOptions', 'AgentOptions', 'AgentOutputOptions', 'OutgoingAudioTrackOptions', 'create_room', 'create_peer', 'create_agent', 'create_vapi_agent', 'create_livestream_streamer_token', 'create_moq_token', 'subscribe_peer', 'fastapi fishjam', 'flask fishjam', 'fishjam python', 'gemini fishjam python'. Python 3.10+. The REST client is synchronous; notifier and agent are async.
license
Apache-2.0

Fishjam Python Server SDK

fishjam-server-sdk on PyPI; import fishjam. Server-side Python SDK for Fishjam.

Read ../platform/SKILL.md first. It defines rooms, peers, tracks, the two-tier token model, and the WS-vs-webhook tradeoff that the Python SDK is built on.

Sync REST + async events

The architecture differs from the JS SDK in one important way:

  • FishjamClient is synchronous. Methods like create_room, create_peer, delete_peer are plain def, not async def. Call them from sync routes or via run_in_executor from async contexts.
  • FishjamNotifier is async (asyncio + websockets). Use @notifier.on_server_notification and await notifier.connect().
  • Agent is async (async context manager — async with agent.connect() as session: ...).
  • receive_binary(raw_bytes) is sync — call it directly inside an async route handler or a sync one.

Install + minimal flow

bash
pip install fishjam-server-sdk
# or: uv add fishjam-server-sdk
# or: poetry add fishjam-server-sdk
python
import os
from fishjam import FishjamClient, PeerOptions

fishjam_client = FishjamClient(
    fishjam_id=os.environ['FISHJAM_ID'],
    management_token=os.environ['FISHJAM_MANAGEMENT_TOKEN'],
)

room = fishjam_client.create_room()
peer, peer_token = fishjam_client.create_peer(
    room.id,
    PeerOptions(metadata={'userId': 'user-123'}),
)
# ship `peer_token` to your client

Components

ComponentWhat it doesReference
FishjamClient (sync)REST — rooms, peers, agents, livestream/MoQ tokens, subscribe modes.client.md
FishjamNotifier (async)Persistent WebSocket; one handler via decorator gets every event.notifier.md
receive_binary(bytes) (sync)Decode an HTTP webhook body to a typed event.webhooks.md
Agent + AgentSession (async)Server-side voice agent — async iter over incoming, await track.send_chunk(...).agent.md

When to read which reference

TaskReference
Any REST method on FishjamClientclient.md
Background WS task receiving eventsnotifier.md
HTTP route receiving webhook payloadswebhooks.md
Build a voice agent in Pythonagent.md
Wire Gemini Live to an agentgemini-integration.md
FastAPI / Flask wiring patternsfastapi.md
Issue livestream / MoQ tokenslivestream-and-moq.md
Use manual subscribe modeselective-subscriptions.md
Show full SKILL.md (189 more words)Show less

Key rules

  • Python 3.10+ required. SDK uses match, structural typing, PEP 604 unions.
  • FishjamClient is sync. Calling it from async def works (it's a quick HTTP round-trip) but if you're in a hot async path consider await asyncio.to_thread(fishjam_client.create_peer, ...).
  • FishjamNotifier does NOT auto-reconnect. Its connect() coroutine runs until the WS closes. Wrap it in a supervisor loop.
  • One handler per notifier. @notifier.on_server_notification only stores the last function you decorate. Multi-dispatch in your one handler via match on the message type.
  • Notifier handler can be sync or async. Both work — await result if inspect.isawaitable(result).
  • Webhook decoding is sync. receive_binary(await req.body()) is fine inside an async FastAPI route.
  • Agent is async-only. async with agent.connect() as session: is the only entry point.
  • Management token stays on the server. Standard rule — never leak.

References

FileWhen to read
client.mdFishjamClient — every method, dataclass, error type.
notifier.mdFishjamNotifier, wait_ready, the decorator pattern, pattern-matching on event types.
webhooks.mdreceive_binary, FastAPI / Flask receivers, security patterns.
agent.mdAgent, AgentSession, OutgoingAudioTrackOptions, receive() async iterator.
gemini-integration.mdfishjam.integrations.gemini, the GeminiIntegration singleton.
fastapi.mdFastAPI patterns (Depends-injected client, async webhook route, background notifier).
livestream-and-moq.mdcreate_livestream_streamer_token, create_livestream_viewer_token, create_moq_token.
selective-subscriptions.mdsubscribe_peer / subscribe_tracks with subscribe_mode='manual' rooms.

© software-mansion-labs, Apache-2.0. 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/python-server-sdk of software-mansion-labs/skills.

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

Open the folder on GitHubat commit e3f00cd

Compare with similar skills

Fishjam Python 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 Python Server SDK compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fishjam Python Server SDK this skillsoftware-mansion-labs/skills291—~1.3kAutomated safety check: PassApache-2.0
Fix Slow Endpointvpcarlos/profyle123—~2.1kAutomated safety check: PassMIT
Telegram Development Guide2025Emma/vibe-coding-cn23k1 repos~3.7kAutomated safety check: PassMIT
Framework Migration AssistantArabelaTso/Skills-4-SE253—~1.9kAutomated safety check: PassApache-2.0
Sentry Python SDKgetsentry/sentry-for-ai268—~4.1kAutomated safety check: PassApache-2.0
E2a Integratetokencanopy/e2a192—~840Automated safety check: PassApache-2.0

Similar skills

  • Fix Slow Endpoint

    vpcarlos/profyle

    Diagnose and fix a slow endpoint or request in a Python web app (FastAPI, Flask, Django, Tornado, any ASGI/WSGI framework) using real Profyle/VizTracer traces, then prove the fix by replaying the…

    123 GitHub stars~2.1k tokensUpdated 2 days ago
    Backend & APIsAuto-check passed
  • Telegram Development Guide

    2025Emma/vibe-coding-cn

    Chinese-language guide to building on Telegram: bots through the Bot API, Mini Apps in JavaScript and custom clients through TDLib, with Python examples.

    23k GitHub starsUsed in 1 repo~3.7k tokens
    Backend & APIsAuto-check passed
  • Framework Migration Assistant

    ArabelaTso/Skills-4-SE

    Automatically migrate Python web applications between frameworks (Flask → FastAPI, Django → FastAPI).

    253 GitHub stars~1.9k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Sentry Python SDK

    getsentry/sentry-for-ai

    Official

    Full Sentry SDK setup for Python. An agent skill from getsentry/sentry-for-ai.

    268 GitHub stars~4.1k tokensUpdated today
    Backend & APIsAuto-check passed
  • E2a Integrate

    tokencanopy/e2a

    A skill your agent uses when adding e2a email capabilities to an application or codebase: outbound sending, inbound signed webhooks, REST polling, or SDK integration.

    192 GitHub stars~840 tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Databricks Apps Python

    databricks/databricks-agent-skills

    Official

    Python backend for Databricks Apps — FastAPI (default), Flask, Dash, Streamlit, Gradio, Reflex.

    345 GitHub stars~3k tokensUpdated yesterday
    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 9 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 9 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 9 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 9 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 9 days ago
    Auto-check passed

Categories

Questions about Fishjam Python Server SDK

What does Fishjam Python Server SDK do?

Python server SDK for Fishjam — backends that create rooms, mint peer tokens, receive server notifications, and run voice agents. Fishjam Python Server SDK is an agent skill from software-mansion-labs/skills. Python server SDK for Fishjam — backends that create rooms, mint peer tokens, receive server notifications, and run voice agents.

When should I use Fishjam Python Server SDK?

Fishjam Python Server SDK fits situations like: writing a Python backend (FastAPI; aiohttp) that talks to Fishjam; decorates a notification handler; decodes a Fishjam webhook.

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

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

How do I install Fishjam Python Server SDK in Codex?

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

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

What does Fishjam Python Server SDK need to run?

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

Does Fishjam Python Server SDK access the network?

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

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

Fishjam Python Server SDK is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Fishjam Python Server SDK use?

About 1.3k tokens (SKILL.md is roughly 5.3k 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 Python Server SDK?

Skills that share tags, products or a category with Fishjam Python Server SDK: Fix Slow Endpoint (vpcarlos/profyle, 123 stars), Telegram Development Guide (2025Emma/vibe-coding-cn, 23k stars), Framework Migration Assistant (ArabelaTso/Skills-4-SE, 253 stars) and Sentry Python SDK (getsentry/sentry-for-ai, 268 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fishjam Python 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.