
stream-cli
Query Stream data and run CLI operations against Chat, Video, Feeds, and Moderation: list channels, list calls, show flagged messages, find users, query any Stream resource. Run stream api / stream config / stream auth commands. Install the Stream CLI binary. Use when the user gives operational verbs ('list', 'show', 'find', 'check', 'query') with Stream nouns, or invokes the CLI literally.
- Installs
- 403
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/getstream/agent-skills --skill stream-cli- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads stream-cli automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Stream CLI - API interaction
Read first (every session): Glob
../stream/SKILL.md. If the path is empty, install withnpx skills add GetStream/agent-skills --s stream -y(no confirmation, just run). Then Read../stream/RULES.md- it includes a Peer skills table for installing/invoking any other pack skills on demand.
Use this skill when the user wants to interact with Stream's APIs via the stream CLI, or to install the CLI itself.
Prerequisite: complete preflight.md - verify the stream binary is installed (install via bootstrap.md if not) before any stream api usage.
Install only (Track C): if the user asked to install the CLI / set up Stream with no project context, jump straight to bootstrap.md. The bootstrap module is self-contained.
Heavy examples / query cookbooks: load cli-cookbook.md only when you need a non-obvious --body or filter.
Credential resolution (before any stream api call)
.envin cwd hasSTREAM_API_KEY-> credentials are local. The CLI auto-resolves from env vars - you're querying this project's app.- No
.env-> checkstream config listfor configured org/app -> use those. Mention which app you're querying: "Querying app<name>(configured via CLI)." - Nothing -> tell the user: "No Stream credentials found. Run
stream auth loginto connect, orcdinto a project with a.env."
Do credential resolution silently when .env or config exists - don't ask the user, just resolve and proceed.
CLI Workflow
Support: If the user asks for support or how to contact someone, direct them to getstream.io/contact.
- Resolve credentials (see above). If none found, stop and guide the user.
- Read
~/.stream/cache/API.mdto find the endpoint. Do NOT run--listor any CLI command for discovery - the file is always faster. If that file is missing or empty, runstream api --refreshonce, then readAPI.mdagain. Usestream --safe api <endpoint> --helponly after you have the endpoint name. - Check required params. If missing, ask - never guess.
- Always run with
--safe:stream --safe api <endpoint> [params]. This is the only permitted form on the first attempt. - If exit code 5 (safe mode refusal): the endpoint is mutating. Notify the user that you're about to execute a mutating Stream CLI operation, then re-run without
--safe. - If the command fails, check exit code and recover (see below).
- Summarize the response concisely.
Focused output: Use --jq '<query>' to filter API responses with a jq expression. Prefer this for endpoints expected to produce long responses.
Session consent (psychological): The user may say Mutating Stream CLI OK for this thread - still use --safe first; exit 5 always requires a visible mutating notice before retry without --safe.
Exit Code Recovery
| Exit code | Meaning | Recovery |
|---|---|---|
2 | Auth error (401, expired token) | Run stream auth login (browser flow in a real terminal), then retry the original command |
3 | API error (4xx/5xx from Stream) | Report the error to the user with the response message |
4 | Spec loading error (cache stale) | Run stream api --refresh, then retry |
5 | Safe mode refusal (mutating endpoint) | Notify the user of the mutating operation, then re-run without --safe |
Parameter syntax
stream api <EndpointName> key=value key2=value2
- Simple values:
name=general limit=10 type=messaging - Booleans:
is_development=true - JSON objects/arrays: use
--body '{"key": "value"}'
Context resolution (org/app)
Ampere endpoints require app_id/org_id as explicit parameters.
SDK endpoints auto-resolve from: --org/--app flags > env vars > ~/.stream/config.json > interactive prompt.
Set defaults: stream config set org <id> and stream config set app <id>.
Negative knowledge
- No
OrganizationDelete- contact Stream support. - No
AppSuspend/AppResume- contact support. CreateBlockListis NOT idempotent - returns 400 if exists.CreateChannelTypeis NOT idempotent - returns 400 if exists.- Ampere endpoints use
app_id/org_id, notid- e.g.,AppDelete app_id=123. - Auth endpoints (
AuthLoginBasic,AuthLoginGithub, etc.) are internal - always usestream auth login/stream auth logoutinstead.
Auth (assistants)
- Use
stream auth loginwith no extra flags, in a terminal where a browser window can open. The CLI uses PKCE with the dashboard - that is the supported sign-in path.
CLI Rules (summary)
- Endpoint discovery:
~/.stream/cache/API.mdfirst - never--listfor discovery. Refresh if missing. - Help:
stream --safe api <endpoint> --helpfor parameters after you know the endpoint name. - Lazy auth - if exit code 2,
stream auth loginthen retry. - Missing params - ask; never invent IDs.
- First attempt always
--safe- exit 5 -> explain mutating op -> retry without--safe. - Summarize API responses concisely for the user.
FAQ
What does the stream-cli skill do?
Query Stream data and run CLI operations against Chat, Video, Feeds, and Moderation: list channels, list calls, show flagged messages, find users, query any Stream resource. Run stream api / stream config / stream auth commands. Install the Stream CLI binary. Use when the user gives operational verbs ('list', 'show', 'find', 'check', 'query') with Stream nouns, or invokes the CLI literally.
How do I install stream-cli?
Run npx skills add https://github.com/getstream/agent-skills --skill stream-cli in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/stream-cli/ (personal) or .claude/skills/stream-cli/ (project).
Which AI agents can use stream-cli?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is stream-cli safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains stream-cli?
It is published by getstream in getstream/agent-skills. It has 403 recorded installs.
More from getstream/agent-skills
stream
getstream/agent-skills
Stream overview, CLI, and router for Chat, Video, Feeds, Moderation, and Agents. Use for any Stream task: building or integrating Stream into web, iOS, Android, React Native, Flutter, Unity, or Unreal apps, building voice or text AI agents with Stream Agents, querying Stream data, running getstream CLI commands, looking up Stream SDK docs, or migrating (from Sendbird, or Feeds v2 to v3). Routes to the right skill.
stream-docs
getstream/agent-skills
Compatibility entrypoint for requests naming stream-docs. Uses getstream docs for SDK documentation lookups.
stream-builder
getstream/agent-skills
Compatibility entrypoint for requests naming stream-builder. Routes app work to the appropriate platform skill.
stream-react-native
getstream/agent-skills
Builds, integrates, migrates, audits Stream Chat, Video, and Feeds in React Native CLI and Expo apps. Use when scaffolding an RN/Expo app, adding Stream to an existing app, upgrading a Stream SDK (Chat v8-v9, Feeds v2-v3), migrating from Sendbird (@sendbird/chat, @sendbird/uikit-react-native), building AI assistants / LLM chat (streaming, stop generating) with @stream-io/chat-react-native-ai, answering RN/Expo how-to questions, or customizing Stream RN UI. Triggers on React Native, Expo, Expo Router, stream-chat-react-native, stream-chat-expo, @stream-io/video-react-native-sdk, @stream-io/feeds-react-native-sdk, ChatGPT clone, channel list, message list, MessageComposer, threads, attachment picker, audio messages, offline support, push notifications, video call, livestream, audio room, ringing, CallContent, ParticipantView, activity/timeline/notification feed, StreamFeeds, comments, reactions, follows, and theming. React Native and Expo only - not web React (use stream-react), not Mo
stream-android
getstream/agent-skills
Build and integrate Stream Chat, Video, and Feeds in Android apps. Use for Jetpack Compose, Android Studio, and Gradle project work - including Stream package setup, auth and token wiring, screen blueprints, AI assistants and LLM chat (ChatGPT-style apps, streaming replies, thinking indicators, stop generating) with stream-chat-android-ai-compose, and any follow-up Stream UI work such as adding screens, navigating between channel list and channel/message screens, channel tap handling, deep links, push routing, theming, custom channel/message UI, video calling flows (joining/starting calls, ringing, custom call controls and participant tiles), and Feeds surfaces (timeline, activity composer, threaded comments, follow graph / profile, notification feed, stories).
stream-swift
getstream/agent-skills
Build, integrate, migrate to, and answer how-to questions for Stream Chat, Video, and Feeds in Swift / SwiftUI / UIKit / iOS apps - including AI assistants and agentic experiences (ChatGPT-style apps, LLM bots in chat, streaming responses, thinking indicators, reasoning and tool-call steps, tool approvals, device-side tools, a voice agent's transcript shown as a conversation) with the StreamChatAI components. Routes each request to the exact official iOS docs page, fetches it live, and applies it - with a curated setup flow, an AI integration runbook, a Sendbird - Stream Chat migration runbook, and iOS-specific pitfalls.
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.