Who the Stream CLI is for
The Stream CLI is an easy way to use the Stream API from your terminal. One binary, getstream, covers every product (Chat, Video, Feeds and Moderation) and around 375 endpoints. It's for you if you fit any of these cases:
Developers building an app with Stream
While you build with a Stream SDK, you constantly need to check live data. Did the message land? Did the user connect?
Using the CLI means you don't need to check the Stream Dashboard. getstream init links your working directory to an app, so the CLI has the right info immediately.
It also covers the chores around an integration: getstream env writes SDK keys into the file your framework expects, and getstream token creates JWTs for testing.
AI coding agents
The CLI describes itself. getstream api --help lists every endpoint and --schema prints any endpoint's request body, so an agent can discover and correctly call endpoints it has never seen. getstream skills installs the Stream Agent Skills, which teach the agent Stream's workflows on top. Using the CLI with an agent covers the division of labor and the guardrails.
Scripts and CI
Everything the CLI prints is JSON, and the exit code is 0 on success, 1 on failure (with the reason on stderr), so a script can parse the output and trust the result. In-process --jq filters responses with no extra dependency. CI has no browser to log in with; the pipeline sets STREAM_API_KEY and STREAM_API_SECRET from its secrets and every command runs headless. See Use the CLI in CI.
Don't use it for
- Your app's runtime. The CLI calls the API and returns, without holding a connection open. It can't power real-time features like live messages or presence, so if you need this, use a Stream SDK.
- Production auth.
getstream tokensigns JWTs without membership checks. This is fine for testing but dangerous in production.