stream

Installation
SKILL.md

Stream - skill router

This skill picks the track from the user's input and delegates to a specialized sub-skill. It does no scaffolding, CLI, or docs work itself - those live in dedicated skills.

Read first: RULES.md. Non-negotiable rules apply, including the Peer skills procedure (Glob path + install command + install policy + Skill-vs-Read-inline rule).

Peer manifest: peers.yaml (schema: peers.schema.json) is the single source of truth for peer skill names, Glob paths, install commands, install policies (silent vs ask), routing signals, and decline fallbacks. Read it before installing or routing to a peer.

After picking a sub-skill: follow the procedure in RULES.md > Peer skills - Glob the entry's SKILL.md path, install per its install_policy if missing (silently, or after explicit confirm for ask peers), then Skill tool (if listed) or Read inline. Do not call Skill before the Glob; it surfaces a confusing "Unknown skill" error. Do not stop after naming the track.


By task

Build a new app with Stream -> use the stream-builder skill

  • Empty/new directory + "build me a Chat/Video/Feeds app", "scaffold", "create a new ..."
  • Covers Steps 0-7 (scaffold, theme, auth, env, SDK install, component generation)

Add Stream to an existing app -> use the stream-builder skill

  • Existing project + "add Chat to this app", "integrate Video", "drop Feeds into ..."
  • Same SDK wiring as scaffold; skips Next.js init and theme pick

Build or integrate Stream in a platform-specific app -> peer pack from peers.yaml

  • Match user input or cwd against each peer's signals (e.g. swift / swiftui / .xcodeproj -> stream-swift)
  • Platform packs declare install_policy: ask - confirm install with the user once before adding
  • On decline, route to the peer's fallback_on_decline (typically stream-docs for read-only lookups)

Query Stream data via the CLI -> use the stream-cli skill

  • "list calls", "show channels", "any flagged", "find users"
  • Literal CLI: stream api ..., stream config ..., stream auth ...
  • Tricky bodies and filter syntax live in the sub-skill's cookbook
  • Required for every stream api call - including ad-hoc "let me check" queries from inside other sub-skills. No guessing endpoint names from training data; route through stream-cli (or read ~/.stream/cache/API.md) first. See RULES.md > CLI safety.

Install the Stream CLI -> use the stream-cli skill

  • "install the CLI", "set up stream" with no project context
  • Bootstrap (binary install, SHA-256 verification, TTY confirmation) ships with the CLI sub-skill

Search Stream SDK documentation -> use the stream-docs skill

  • "docs", "documentation", explicit SDK token (Chat React, Video iOS, Feeds Node, Moderation)
  • "how do I ... in ", "how does <hook/component/method> work?", "what does do?"
  • No CLI needed - answers come from getstream.io with citations

Pick a track

Scan the user's input for the signals below in order. The classifier is deterministic - no probes, no fetches, no CLI checks at this stage.

Signal in user input Sub-skill
Explicit SDK/framework token: Chat React, Video iOS, Feeds Node, Moderation, etc. (with or without version) stream-docs
Words "docs" or "documentation" stream-docs
"How do I {X} in {framework}?", "How does {hook/component/method} work?", "What does {SDK thing} do?" stream-docs
Operational verbs + Stream noun: "list calls", "show channels", "any flagged", "find users", "check {anything}" stream-cli
stream api, stream config, stream auth (literal CLI invocation) stream-cli
"Install the CLI", "set up stream" with no project context stream-cli
"Build me a ... app", "scaffold", "create a new ..." + Stream product, in an empty/new directory stream-builder (web/Next.js)
"Add Chat/Video/Feeds to this app", "integrate Stream into" - existing project stream-builder (web/Next.js)
Build/integration intent + a token matching a peer's signals in peers.yaml (e.g. swift, swiftui, .xcodeproj -> stream-swift) matching peer (confirm install if install_policy: ask)
Operational verb wrapped in how-to phrasing (e.g. "how do I list my calls?" - docs or CLI) Ask one disambiguator

Track D carve-out. stream-docs answers from documentation only - no preflight, no shell commands, no project inspection. Every other sub-skill runs preflight before doing real work.

Docs vs platform packs. A pure how-to or method-lookup question about an iOS/Android/etc. SDK symbol stays in stream-docs - don't pull in a platform pack for a documentation answer. Platform packs (e.g. stream-swift) are for building or integrating - scaffolding projects, wiring packages, generating views.

Disambiguator. If the input fits more than one row (typically operational verb + how-to phrasing), ask one short question and wait. Don't probe before the answer:

Want me to look up the SDK method (docs) or run it now via CLI?

After the answer, route as if the user had given that signal directly.

Bare /stream with no args. List the sub-skills under "Quick navigation" briefly and wait for input. No shell execution.


Quick navigation

If the user already knows what they want, skip the router and invoke a sub-skill directly:

  • /stream-builder - scaffold a new web (Next.js) app, or add Chat/Video/Feeds/Moderation to an existing one
  • /stream-swift - scaffold or integrate Stream into a Swift/SwiftUI/UIKit/iOS app (install confirmed first)
  • /stream-cli - query Stream data via CLI, install the CLI, run stream api / config / auth
  • /stream-docs - search live Stream SDK documentation (no CLI needed)

Platform-specific packs are declared in peers.yaml - new platforms become available by adding an entry there.

Or describe the task and the router will pick.


Hand-off

See preamble: install if missing, invoke via Skill tool, don't stop. Cross-cutting rules in RULES.md apply to every sub-skill, including Cross-track follow-ups (offer, don't auto-execute, the natural next action across track boundaries).


Support

If the user asks for support or how to contact someone, direct them to getstream.io/contact.

Related skills

More from getstream/agent-skills

Installs
134
GitHub Stars
8
First Seen
Mar 31, 2026