Quickstart with an agent
In the next five minutes we'll install the Stream CLI, link it to one of your apps, and hand it to your AI coding agent. By the end you'll be asking for live Stream data in plain English, and you'll see every command the agent runs on your behalf.
The fastest way. Open your project folder in your agent and paste one line:
Add chat to my app: getstream.io/SKILL.mdYour agent fetches getstream.io/SKILL.md, installs the CLI, runs getstream init, and pulls in the skills. Steps 1–4 below walk through the same setup by hand. Swap chat for video, feeds, or moderation. Open the URL yourself first if you want to see exactly what it does.
graph LR
s1["1. Install<br/>curl | bash"] --> s2["2. Initialize<br/>getstream init<br/>pick your agent"]
s2 --> s3["3. Start agent<br/>/stream appears"]
s3 --> s4["4. Ask<br/>plain English in<br/>live data out"]You'll need:
- An AI coding agent that reads standard skills locations. Claude Code, Cursor, Codex and most others qualify. No agent? Follow the Manual quickstart instead.
- A macOS or Linux machine with
curlandbash. On Windows, use WSL. - A Stream account. Sign up for a free one at getstream.io.
Step 1. Install
In your terminal, run:
curl -fsSL https://getstream.io/cli.sh | bashThen confirm it worked:
getstream --versionYou should see a version number. If you see "command not found", open a new terminal window so your shell picks up the updated PATH.
Step 2. Initialize and pick your agent
getstream init links a directory to one of your apps. In real work you run it at the root of the repository your agent works in, the way you'd run git init. For this tutorial, make a scratch folder to learn in:
mkdir my-app
cd my-app
getstream initinit walks you through the whole setup. The first step happens in your browser; the rest are pickers (arrow keys to move, enter to confirm):
- Sign in. Your browser opens and asks you to authorize the CLI with your Stream account. When the page says you can close the tab, return to the terminal; the session refreshes itself from here on.
- Select an organization. If you just signed up, there's exactly one.
- Select an app. New accounts start with one app. This will create
.stream/creds.yaml, with your app's key and secret, plus add it to your.gitignore(or create one). The CLI reads credentials from this file, so the secret never passes through the agent's context. - Install Stream skills for which tool? Pick Claude Code to install into
.claude/skills, or Universal for.agents/skills, the location used by Cursor, Codex and other AGENTS-ecosystem tools. This will install core Stream skills into your project.
Setting up a repo you already initialized without skills? Install them with getstream skills --claude or --universal; no need to re-run init.
Step 3. Start your agent
Start your agent in my-app. Agents scan their skills directories at startup, so an agent that was already running needs a restart to see the new skills. Check that the skills are there:
❯ /stream
/stream Stream router for Chat, Video, Feeds, and Moderation. Use when
the user wants to build a new app with Stream, scaffold a…
/stream-docs Search live Stream SDK documentation for Chat, Video, Feeds,
and Moderation. Look up how a Stream React/iOS/Android hook…
/stream-builder Build a new app or add Stream products to an existing app.
Scaffold Next.js + Tailwind + Shadcn + Stream SDKs end-to-end…Step 4. Ask for live data
Ask in plain English. /stream translates the question into a getstream command and answers from the output:
❯ /stream list my most recent channels
stream: getstream api QueryChannels --request '{
"sort": [{ "field": "last_updated", "direction": -1 }],
"limit": 10
}'
You have 6 channels (sorted by last update). All are messaging type; most are
one-member channels, likely from testing:
┌─────────────────┬─────────┬──────────────┬──────────────────────────────────────┐
│ Channel ID │ Members │ Last updated │ Last message │
├─────────────────┼─────────┼──────────────┼──────────────────────────────────────┤
│ team-chat │ 3 │ Jul 2, 2026 │ "nice, messages are coming through!" │
│ practice-chat │ 1 │ Jul 1, 2026 │ │
│ 3f8c6a12-9d4e-… │ 1 │ Jun 28, 2026 │ "testing 123" │
└─────────────────┴─────────┴──────────────┴──────────────────────────────────────┘
… 3 more rows
The only multi-member channel is messaging:team-chat (3 members). The rest look
like auto-created test channels with a single member, several with no messages
at all.The agent reads the output and reports on the state.
If the app you linked is brand new, the agent reports zero channels instead. Let's create a user and channel.
❯ /stream create a messaging channel "general" with a hello message from a test user alice
stream: getstream api UpdateUsers --request '{"users":{"alice":{"id":"alice","name":"Alice"}}}'
stream: getstream api GetOrCreateChannel --type messaging --id general \
--request '{"data":{"created_by_id":"alice"}}'
stream: getstream api SendMessage --type messaging --id general \
--request '{"message":{"text":"Hello!","user_id":"alice"}}'
Created messaging:general and sent "Hello!" as alice.Every command is in the transcript, and your agent's usual command approval applies before each one runs, so nothing touches your app unseen.
The skill covers Stream's workflows, and the CLI fills the gaps by describing itself: getstream api --help lists every endpoint and --schema prints any request body, so the agent looks up whatever it doesn't know.
Where to go next
- To do this for real: run
getstream initat the root of the repository your agent works in. Same four steps. - To understand the handoff: Using the CLI with an agent covers the guardrails and the setup for cloud agents with no browser.
- To see what else the skills do: the Agent Skills docs cover documentation lookup and app scaffolding too.
- To learn the CLI first-hand: the Manual quickstart runs the same setup with you at the keyboard.