Give your AI coding agent the ability to build, query, and manage Stream - Chat, Video, Feeds, and Moderation.
Overview
Give your AI coding agent the ability to build, query, and manage Stream - Chat, Video, Feeds, and Moderation across React / Next.js, React Native, Swift/iOS, Android, and Flutter apps. Full documentation lives at getstream.io/agent-skills - start with the Quickstart, or read up on how the skills compare to MCP. Use getstream skills to install a specific skill, such as stream-react or stream-swift. Run getstream skills -h for installation options. To set up a project (auth, org/app selection, credentials), run getstream init. The skills also ship as a plugin for Claude Code and Cursor, together with the Stream MCP server (https://mcp.getstream.io/mcp), which signs in with your Stream account and lets the agent list your apps and call the Stream API on them. In Claude Code: Then run /mcp to sign in to the stream server. The plugin also brings the getstream CLI: its launcher uses an installed CLI, or fetches one into ~/.stream/bin the first time a skill runs it.
README
Stream Agent Skills
Give your AI coding agent the ability to build, query, and manage Stream - Chat, Video, Feeds, and Moderation across React / Next.js, React Native, Swift/iOS, Android, and Flutter apps.
Full documentation lives at getstream.io/agent-skills - start with the Quickstart, or read up on how the skills compare to MCP.
Install
Install the Stream CLI, then:
getstream skills
Use getstream skills to install a specific skill, such as stream-react or stream-swift. Run getstream skills -h for installation options. To set up a project (auth, org/app selection, credentials), run getstream init.
As a plugin
The skills also ship as a plugin for Claude Code and Cursor, together with the Stream MCP server (https://mcp.getstream.io/mcp), which signs in with your Stream account and lets the agent list your apps and call the Stream API on them. In Claude Code:
/plugin marketplace add GetStream/agent-skills
/plugin install stream@getstream
Then run /mcp to sign in to the stream server. The plugin also brings the getstream CLI: its launcher uses an installed CLI, or fetches one into ~/.stream/bin the first time a skill runs it.
Use /stream for generic routing, or invoke a skill directly with /stream-react, /stream-swift, /stream-android, /stream-react-native, /stream-flutter, /stream-unity, /stream-feeds-migration, or /stream-unreal. SDK documentation is available through getstream docs. Step-by-step instructions are in the installation guide.
Skills
Each skill has a reference page on the docs site - the skill names below link to them.
| Skill | Purpose | When to use |
|---|---|---|
/stream |
Router + CLI - classifies intent, dispatches, and runs getstream CLI commands |
Start here; also handles data queries, app config, and onboarding |
/stream-react |
Build, enhance, audit, migrate, or migrate-from-Sendbird a React / Next.js web app, including AI assistants, support bots, and Stream Agents voice and text agents - the default for all web React work | “build me a … app”, “add Chat to this app”, “audit my video integration”, “upgrade stream-chat-react”, “migrate from Sendbird”, “add an AI assistant”, stream-chat-react, @stream-io/video-react-sdk, @stream-io/feeds-react-sdk, @stream-io/chat-react-ai, “voice agent”, @stream-io/calypso |
/stream-swift |
Build or integrate Stream in Swift/SwiftUI/UIKit/iOS apps | Swift, SwiftUI, UIKit, iOS, Xcode |
/stream-android |
Build or integrate Stream in Android/Jetpack Compose apps | Android, Jetpack Compose, Kotlin, Android Studio, Gradle |
/stream-react-native |
Create, build, or integrate Stream Chat or Stream Video React Native in RN CLI or Expo apps | React Native, Expo, stream-chat-react-native, stream-chat-expo, @stream-io/video-react-native-sdk, video call, livestream, audio room, ringing |
/stream-flutter |
Build or integrate Stream Chat in Flutter apps | Flutter, Dart, stream_chat_flutter, stream_chat_flutter_core |
/stream-unity |
Build or integrate Stream Chat and Stream Video in Unity Engine projects (C#) - Chat + Video, no Feeds | Unity, Unity Engine, Unity 6, MonoBehaviour, .unitypackage, asmdef, IL2CPP, UGUI, IStreamChatClient, IStreamCall, in-game chat, unity video call |
/stream-unreal |
Build or integrate Stream Chat in Unreal Engine 5.7/5.8 projects (C++ and Blueprint) - Chat only | Unreal, Unreal Engine, UE5, .uproject, .uplugin, UMG, widget blueprint, UStreamChatClientComponent, in-game chat |
/stream-feeds-migration |
Generate the v2 -> v3 Activity Feeds sync mapping from the app’s own live data | “what mapping do we need?”, v3sync, v2 to v3, feeds migration, sync mapping, extra_context, a migrated activity missing its text/attachments/comments |
The router (skills/stream/SKILL.md) handles routing and CLI discovery. Each platform skill contains its own integration guidance and supporting files.
For older CLI installations, stream-builder and stream-docs remain as compatibility entrypoints. They forward to platform-specific skills (React by default for web or generic app work) and getstream docs, respectively.
What gets installed
Skills are Markdown instructions and supporting files, including helper scripts where needed. The getstream CLI installs them from this repository. As a plugin, the getstream launcher uses an installed CLI, or downloads one from Stream’s release manifest (getstream.io/cli/latest.json) into ~/.stream/bin and verifies its checksum. Tool permissions are managed by your agent harness.
What your agent can do
- Scaffold a full app - Next.js + Tailwind + Stream SDKs, wired end-to-end in one shot (
/stream-react) - Add products to existing apps - drop Chat, Video, or Feeds into a project that’s already running (
/stream-react) - Audit and migrate integrations - review a Video integration against best practices, upgrade an SDK version from the live release guide, or migrate an existing Sendbird app to Stream Chat React (
/stream-react) - Build and extend Swift apps - wire Stream into SwiftUI or UIKit Xcode projects with iOS-specific setup patterns (
/stream-swift) - Build and extend Android apps - wire Stream into Jetpack Compose Android Studio / Gradle projects with Android-specific setup patterns (
/stream-android) - Build and extend React Native apps - wire Stream Chat or Stream Video into Expo or RN CLI projects (
/stream-react-native) - Build and extend Unity games - wire Stream Chat and Stream Video into a Unity project, build the chat and call UI on UGUI or UI Toolkit (neither SDK ships components), and get the player settings right for Android, iOS, desktop, or WebGL (
/stream-unity) - Build and extend Unreal Engine games - wire Stream Chat into UE 5.7/5.8 C++ or Blueprint projects, drop in the shipped UMG chat widgets, and package for mobile or desktop (
/stream-unreal) - Plan a Feeds v2 -> v3 migration - sample your v2 app’s real activities and reactions and get back the sync
mappingobject, with the keys it deliberately left at their defaults (/stream-feeds-migration) - Query live data - “any active calls?”, “show flagged messages”, “list my channels” - natural language to the
getstreamCLI (/stream) - Configure apps and moderation - channel types, roles, permissions, blocklists, automod - via the
getstreamCLI (/stream) - Answer SDK questions - token patterns, strict mode, client/server instantiation, theme wiring (
/streamor the relevant platform skill) - Look up SDK docs - use
getstream docsfor the relevant product, framework, and version
How it works
The /stream router directs app work to platform skills and uses the getstream CLI for queries, app config, onboarding, and documentation. Platform skills such as /stream-react-native can also be invoked explicitly.
| Intent | Skill |
|---|---|
| Build a new web app | stream-react |
| Add a product to an existing web app | stream-react |
| Audit an existing web integration | stream-react |
| Migrate / upgrade a web SDK version | stream-react |
| Migrate a web app from Sendbird | stream-react + sendbird-migration.md |
| Data queries, app config, and CLI operations | stream (CLI, built in) |
| Build or integrate a React Native CLI/Expo app | stream-react-native + its sdk.md and references/*.md |
| Look up SDK documentation | stream via getstream docs |
| Build or integrate a Swift/iOS app | stream-swift (docs orchestrator: docs-map.md + setup.md) |
| Build or integrate an Android app | stream-android + its builder.md, sdk.md, and references/*.md |
| Build or integrate a Flutter app | stream-flutter + its builder.md, sdk.md, and references/*.md |
| Build or integrate a Unity Engine project | stream-unity (docs orchestrator: docs-map.md + setup.md + ui.md + platforms.md) |
| Build or integrate an Unreal Engine project | stream-unreal (docs orchestrator: docs-map.md + setup.md + widgets.md + platforms.md) |
| Build or review a Feeds v2 -> v3 sync mapping, and plan the code port | stream-feeds-migration (SKILL.md + mapping-keys.md + code-inventory.md + porting-plan.md + fetch_sample.py + scan_v2_calls.py) |
Routing precedence: when user input contains a platform signal (e.g.
react native,expo,swift,ios,flutter,unity,unreal), use the matching platform skill. For web or generic app work, usestream-react. A framework takes precedence over an OS: an Unreal app for iOS usesstream-unreal.
Contents
skills/stream/- Router + CLISKILL.md- Stream overview, CLI discovery, and skill routingsendbird-data-migration.md- shared Sendbird data export, import, and cutover workflow
skills/stream-react/- React web sub-skill (default for web React / Next.js work)SKILL.md- build and integrate Stream, audit an app, upgrade SDKs, and verify the resultdesign-matching.md- implement and verify a reference designsendbird-migration.md- migrate a Sendbird app to Stream Chat Reactsendbird-mapping.md- Sendbird-to-Stream symbol mappings and behavioral differencesai-support-agent.md- build an AI support agent with Stream Chat
skills/stream-swift/- Swift/iOS sub-skill (docs orchestrator)SKILL.md- entrypoint: the.mddocs convention, intent classifier, docs-lookup loopRULES.md- Swift/iOS non-negotiable rules + curated iOS pitfallsdocs-map.md- intent -> exact official iOS docs page (Chat/Video/Feeds, SwiftUI/UIKit), plus best-practices pages and a source-code/example-app fallback (SDK repos) for what the docs do not coversetup.md- CLI-driven credentials, install, and client-wiring flowpush.md- seamless push runbook: APNs key, CLI push-provider creation, client wiring, VoIP + CallKitdesign-matching.md- reproduce a reference design with the pre-built components: region ->ViewFactory/Styles/theming mapcustom-ui.md- the components-vs-custom decision + how to build a livestream/bespoke surface on the low-level client + State Layer
skills/stream-react-native/- React Native Chat + Video sub-skillSKILL.md- RN/Expo intent classifier with Chat/Video product router, project detection, module pointersRULES.md- Chat and Video RN non-negotiable rules (incl. Chat + Video interop)credentials.md- API key, token, and optional requested demo-data flowbuilder.md+sdk.md- shared RN CLI and Expo integration flow across productsreferences/-llms.txtdocs lookup (Chat + Video manifests), Chat RN setup/blueprints, Video RN setup/blueprints (VIDEO-REACT-NATIVE.md,VIDEO-REACT-NATIVE-blueprints.md), gotchas
skills/stream-android/- Android sub-skillSKILL.md- entrypoint: intent classifier, local project detection, module pointersRULES.md- Android non-negotiable rulesbuilder.md+sdk.md- shared Android app integration flow and SDK ownership patternsreferences/- product/framework-specific Android references and blueprints
skills/stream-flutter/- Flutter sub-skillSKILL.md- entrypoint: intent classifier, credentials/token flow, module pointersRULES.md- Flutter non-negotiable rulesbuilder.md+sdk.md- shared Flutter app integration flow and SDK ownership patternsreferences/- product/framework-specific Flutter references and blueprints
skills/stream-unity/- Unity Engine sub-skill (docs orchestrator; Chat + Video)SKILL.md- entrypoint: product / Unity-version-and-target / feature-support gates, the.mddocs convention plus the per-product coverage caveat (Unity C# vs the .NET server SDK on the same page), and the source-of-truth ladderRULES.md- Unity non-negotiable rules + the pitfalls that fail silently (theDontDestroyOnLoadclient runner and duplicate clients,Dispose()not disconnecting, unbound video/audio tracks, the 5-participant video cap, IL2CPP stripping)docs-map.md- intent -> exact official Unity docs page for Chat and Video, annotated with what kind of code each page carries, plus the source / samples / changelog fallbacksetup.md- version-pinned install for both SDKs (.unitypackageimport and the UPM manifest edit), CLI credentials, and the verified minimal client wiring with correct lifecycleui.md- building the UI yourself: theParticipantViewtrack-binding contract, self-preview, mobile orientation, visibility-driven subscriptions, and the Chat list / composer / typing patternsplatforms.md- per-target player settings, IL2CPP and managed stripping, the Newtonsoft and WebRTC conflicts, Android/iOS/desktop/WebGL, and what push does and does not do
skills/stream-feeds-migration/- Feeds v2 -> v3 migration sub-skillSKILL.md- the workflow: credentials into the environment, sample the v2 app, read its v2 integration code when available, analyze, emit themappingobject, and state what the sample (and code) could not provemapping-keys.md- the full key catalogue with defaults, id-precedence and rename resolution rules, and a worked v2-shape -> mapping-key example for each common casefetch_sample.py- stdlib-only sampler; reads credentials from the environment and writesv3sync-sample.jsoncode-inventory.md- reading the app’s v2 integration code: finding write paths, building the inventory, and cross-checking it against the sampleporting-plan.md- planning the move of the app’s code from v2 to v3: the switch-over order, a v2 -> v3 row per path, and the rules for porting when the user asksscan_v2_calls.py- stdlib-only, read-only scanner that lists every v2 write call site in a repository (JS, Python, Ruby, PHP, Go, Java, .NET, REST), with secrets redacted
skills/stream-unreal/- Unreal Engine sub-skill (docs orchestrator; Chat only)SKILL.md- entrypoint: engine-version / feature-support / C+±vs-Blueprint gates, the.mddocs convention plus the per-page Unreal-coverage caveat, and the source-of-truth ladderRULES.md- Unreal non-negotiable rules + the pitfalls that fail silently (theApiKey-before-BeginPlaytrap,TWeakObjectPtrcallbacks, client on the HUD, module deps)docs-map.md- intent -> exact official Unreal docs page, annotated with which pages actually carry Unreal code, plus the plugin-header / Doxygen / sample-project fallbacksetup.md- engine-version-aware plugin install,Build.csmodule deps, CLI credentials, and the verified minimal client wiringwidgets.md- the shipped UMG chat widgets (undocumented upstream):WBP_*inventory, path-loading,Setup-before-AddToViewport, context model, theming, cookingplatforms.md- iOS/Android/desktop config, signing, build-vs-package, and on-device deploy + log reading
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add getstream/agent-skills