GA

getstream/agent-skills

Developer tools
20 stars Quality 37 Trend 31

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 mapping object, 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 getstream CLI (/stream)
  • Configure apps and moderation - channel types, roles, permissions, blocklists, automod - via the getstream CLI (/stream)
  • Answer SDK questions - token patterns, strict mode, client/server instantiation, theme wiring (/stream or the relevant platform skill)
  • Look up SDK docs - use getstream docs for 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, use stream-react. A framework takes precedence over an OS: an Unreal app for iOS uses stream-unreal.

Contents

  • skills/stream/ - Router + CLI
  • skills/stream-react/ - React web sub-skill (default for web React / Next.js work)
  • skills/stream-swift/ - Swift/iOS sub-skill (docs orchestrator)
    • SKILL.md - entrypoint: the .md docs convention, intent classifier, docs-lookup loop
    • RULES.md - Swift/iOS non-negotiable rules + curated iOS pitfalls
    • docs-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 cover
    • setup.md - CLI-driven credentials, install, and client-wiring flow
    • push.md - seamless push runbook: APNs key, CLI push-provider creation, client wiring, VoIP + CallKit
    • design-matching.md - reproduce a reference design with the pre-built components: region -> ViewFactory/Styles/theming map
    • custom-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-skill
    • SKILL.md - RN/Expo intent classifier with Chat/Video product router, project detection, module pointers
    • RULES.md - Chat and Video RN non-negotiable rules (incl. Chat + Video interop)
    • credentials.md - API key, token, and optional requested demo-data flow
    • builder.md + sdk.md - shared RN CLI and Expo integration flow across products
    • references/ - llms.txt docs 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-skill
    • SKILL.md - entrypoint: intent classifier, local project detection, module pointers
    • RULES.md - Android non-negotiable rules
    • builder.md + sdk.md - shared Android app integration flow and SDK ownership patterns
    • references/ - product/framework-specific Android references and blueprints
  • skills/stream-flutter/ - Flutter sub-skill
    • SKILL.md - entrypoint: intent classifier, credentials/token flow, module pointers
    • RULES.md - Flutter non-negotiable rules
    • builder.md + sdk.md - shared Flutter app integration flow and SDK ownership patterns
    • references/ - 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 .md docs convention plus the per-product coverage caveat (Unity C# vs the .NET server SDK on the same page), and the source-of-truth ladder
    • RULES.md - Unity non-negotiable rules + the pitfalls that fail silently (the DontDestroyOnLoad client 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 fallback
    • setup.md - version-pinned install for both SDKs (.unitypackage import and the UPM manifest edit), CLI credentials, and the verified minimal client wiring with correct lifecycle
    • ui.md - building the UI yourself: the ParticipantView track-binding contract, self-preview, mobile orientation, visibility-driven subscriptions, and the Chat list / composer / typing patterns
    • platforms.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-skill
    • SKILL.md - the workflow: credentials into the environment, sample the v2 app, read its v2 integration code when available, analyze, emit the mapping object, and state what the sample (and code) could not prove
    • mapping-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 case
    • fetch_sample.py - stdlib-only sampler; reads credentials from the environment and writes v3sync-sample.json
    • code-inventory.md - reading the app’s v2 integration code: finding write paths, building the inventory, and cross-checking it against the sample
    • porting-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 asks
    • scan_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 .md docs convention plus the per-page Unreal-coverage caveat, and the source-of-truth ladder
    • RULES.md - Unreal non-negotiable rules + the pitfalls that fail silently (the ApiKey-before-BeginPlay trap, TWeakObjectPtr callbacks, 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 fallback
    • setup.md - engine-version-aware plugin install, Build.cs module deps, CLI credentials, and the verified minimal client wiring
    • widgets.md - the shipped UMG chat widgets (undocumented upstream): WBP_* inventory, path-loading, Setup-before-AddToViewport, context model, theming, cooking
    • platforms.md - iOS/Android/desktop config, signing, build-vs-package, and on-device deploy + log reading
View the full README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add getstream/agent-skills
New to MCP? Start with the mcpskill.org guide →