Configure & manage Stream applications from the command line. 🚀
Stream's Command Line Interface (CLI) makes it easy to create and manage your Stream apps directly from the terminal. Currently, only Chat is supported; however, the ability to manage Feeds will be coming soon.
> Note: The latest version of Node (v14.x) is required for this CLI. If you are looking for a way to manage multiple Node.js environments, please look at nvm.



If you're experiencing problems directly related to the CLI, please add an issue on GitHub.
For other issues, submit a support ticket.
As with any project, things are always changing. If you're interested in seeing what's changed in the Stream CLI, the changelog for this project can be found here.
The Stream CLI is easy to install and available via npm. The CLI requires Node v10.x or above.
``sh-session`
$ yarn global add getstream-cli
OR
`sh-session`
$ npm install -g getstream-cli
Cli will be installed as stream and if you have other binaries with the same name such as imagemagick. Beware to update your PATH to search for our cli first or rename/symbolic link it.
In order to initialize the CLI, it's as simple as:
> Note: Your API key and secret can be found on the Stream Dashboard and is specific to your organization.
Basic commands use the following syntax:
`sh-session`
$ stream command:COMMAND --arg1 "foo" --arg2 "bar"
Whereas commands for specific products use subcommands:
`sh-session`
$ stream command:COMMAND:SUBCOMMAND --arg1 "foo" --arg2 "bar"
Interested in using the calling the CLI from a script? Or maybe you simply want raw response data? You can do that! Many of the commands accept a json argument as a boolean. Just pass the following along to the CLI and you'll get back a full representation of the response (in a raw data format):
`sh-session`
$ stream command:COMMAND --arg1 "foo" --arg2 "bar" --json
Need to copy the output to your clipboard? Not a problem. Just pipe the information to pbcopy (on macOS) along with the --json flag:
`sh-session`
$ stream debug:token --token "foo.bar.baz" --json | pbcopy
Want to call the Stream CLI using a bash command? No problem! Make sense of output using jq, a lightweight and flexible command-line JSON processor.
`bash
#! /bin/bash
run=$(stream config:get --json)
name=$(jq --raw-output '.name' <<< "${run}")
email=$(jq --raw-output '.email' <<< "${run}")
apiKey=$(jq --raw-output '.apiKey' <<< "${run}")
apiSecret=$(jq --raw-output '.apiSecret' <<< "${run}")
echo $name
echo $email
echo $apiKey
echo $apiSecret
`
OR
`bash
#! /bin/bash
stream chat:channel:create --channel=$(openssl rand -hex 12) --type="messaging" --name="CLI" --json | jq '.'
`
> Note: See here for additional examples!
`sh-session`
$ npm install -g getstream-cli
$ stream COMMAND
running command...
$ stream (-v|--version|version)
getstream-cli/0.3.0 linux-x64 node-v14.3.0
$ stream --help [COMMAND]
USAGE
$ stream COMMAND
...
* stream autocomplete - display autocomplete installation instructions
* stream chat - Manage chat
* stream commands - list all the commands
* stream config - Configure API access
* stream debug - Debugging tools
* stream help - display help for stream
If you have any suggestions or just want to let us know what you think of the Stream CLI, please send us a message at support@getstream.io or create a GitHub Issue.
This project contains generated code and documentation. In order to apply changes you should run the following command:
`bash``
$ yarn run generate