Set up your tools
Before we start summarising, let's get your tools connected to Slack. Choose the path that suits you best.
You will need: a laptop with internet access and a Slack workspace where you are a member. No coding experience is required — we will guide you through every step.
Choose your path
- Recommended: CLI + Voice
- Alternative: Claude Desktop
This path gives you a voice-first experience with more control. You will install Gemini CLI, create a Slack App, configure a Model Context Protocol (MCP) server, and optionally set up Wispr Flow for hands-free voice commands. This takes about 30 minutes.
Install Node.js
Already have Node.js? If you installed it for a previous tutorial, skip this step. Run
node --versionin your terminal to check — you should see a version number likev22.x.x.Node.js is a free tool that lets you run Gemini CLI on your computer.
- Windows
- macOS
- Go to nodejs.org
- Click the big green LTS button to download the installer
- Open the downloaded
.msifile - Click Next through all the screens — the default settings are fine
- Click Install, then Finish
- Go to nodejs.org
- Click the big green LTS button to download the installer
- Open the downloaded
.pkgfile - Click Continue through all the screens — the default settings are fine
- Click Install, then Close
How do I know it worked?
Open your terminal and type:
node --versionYou should see a version number like
v22.x.x. If you see an error, try closing and reopening your terminal, then run the command again.Install and test Gemini CLI
Already have Gemini CLI? If you installed it for a previous tutorial, skip this step. Just run
geminiin your terminal to check it still works.Gemini CLI is Google's free AI assistant. It runs in your terminal and helps you with tasks based on your descriptions.
Open your terminal and type:
npm install -g @google/gemini-cliWait for the installation to finish. Then start it by typing:
geminiThe first time you run it, Gemini CLI will ask you to sign in:
- Choose "Sign in with Google"
- A browser window will open — sign in with your Google account
- Come back to the terminal when it says you're connected
Free tier: 60 requests per minute, 1,000 requests per day — more than enough for this tutorial and everyday use.
'npm' is not recognised
This means Node.js isn't installed correctly. Go back and reinstall Node.js. After reinstalling, close your terminal completely and open a new one before trying again.
Permission denied error
Windows: Close PowerShell and reopen it by right-clicking and choosing "Run as Administrator". Then try the install command again.
macOS: Add
sudobefore the command:sudo npm install -g @google/gemini-cliEnter your computer password when prompted (you won't see characters as you type — that's normal).
Type
/quitto exit Gemini CLI for now. We will start it again after configuring the Slack connection.Create a Slack App
A Slack App is how you give Gemini CLI permission to read messages from your workspace. The app you are creating will only have read-only access — it cannot post, delete, or change anything.
- Go to api.slack.com/apps and sign in
- Click Create New App
- Choose From scratch
- Enter a name — for example,
Channel Summariser - Select your Slack workspace from the dropdown
- Click Create App
What is a Slack App?
A Slack App is like giving a programme a key to your workspace. The key only opens the doors you choose — in this case, the ability to read messages in public channels. The app cannot see your direct messages, cannot post anything, and cannot change any settings.
Add permissions (scopes)
Now you need to tell Slack exactly what the app is allowed to do.
- In the left sidebar, click OAuth & Permissions
- Scroll down to the Scopes section
- Under Bot Token Scopes, click Add an OAuth Scope
- Add these two scopes:
channels:history— lets the app read messages in public channelschannels:read— lets the app see which public channels exist
Only add these two scopes. They give the app read-only access to public channels. The app cannot read private channels, direct messages, or post anything.
What are scopes?
Scopes are permissions. They control exactly what your app is allowed to do. Think of them like keys —
channels:historyis the key that opens message history, andchannels:readis the key that lets the app see channel names. Without these specific keys, the app cannot do anything.Install the app and get your bot token
- Scroll to the top of the OAuth & Permissions page
- Click Install to [Your Workspace Name]
- Review the permissions and click Allow
- You will see a Bot User OAuth Token that starts with
xoxb- - Copy this token and save it somewhere safe — you will need it in Step 7
This token is like a password. Anyone who has it can read messages in your workspace. Do not share it publicly or post it online. Save it in a text file or password manager.
How do I know it worked?
You should see a long token starting with
xoxb-on the OAuth & Permissions page. If you see an error, check that you added both scopes in Step 4, then try clicking Install to Workspace again.Get your Team ID
The Team ID identifies your Slack workspace. You need it for the MCP configuration.
- Open Slack in your web browser (not the desktop app) at app.slack.com
- Sign in to your workspace
- Look at the URL in your browser — it will look like:
https://app.slack.com/client/T01234567/... - The Team ID is the part that starts with T — for example,
T01234567 - Copy this ID and save it alongside your bot token
I can't find the Team ID in the URL
Another way: In Slack, click your workspace name in the top-left corner → Settings & administration → Workspace settings. The Workspace ID (which is the same as Team ID) is usually shown on the settings page, or in the URL of the settings page.
Configure Slack MCP in Gemini CLI
Now you will connect Gemini CLI to Slack by configuring a Model Context Protocol (MCP) server. This tells Gemini CLI how to talk to Slack.
- Windows
- macOS
- Open File Explorer
- In the address bar, type
%USERPROFILE%\.geminiand press Enter - If you see a file called
settings.json, open it with Notepad - If the file does not exist, create a new text file and name it
settings.json
- Open Finder
- Press Cmd + Shift + G and type
~/.geminithen press Enter - If you see a file called
settings.json, open it with TextEdit - If the file does not exist, open Terminal and run:
touch ~/.gemini/settings.json && open -e ~/.gemini/settings.jsonPaste the following into
settings.json. Replace the two placeholders with your actual bot token and Team ID:~/.gemini/settings.json — replace YOUR_BOT_TOKEN and YOUR_TEAM_ID{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-YOUR_BOT_TOKEN",
"SLACK_TEAM_ID": "YOUR_TEAM_ID"
}
}
}
}Replace two things:
xoxb-YOUR_BOT_TOKENwith your full bot token (e.g.,xoxb-1234-5678-abcdef) andYOUR_TEAM_IDwith your Team ID (e.g.,T01234567). Keep the quotation marks.If
settings.jsonalready has content from a previous tutorial, you need to merge the configurations. Add the"slack"section inside the existing"mcpServers"block rather than replacing the entire file.Save the file.
What is MCP?
MCP stands for Model Context Protocol. It is a standard way for AI tools to connect to external services like Slack, GitHub, or databases. Think of it as a universal adapter — instead of each AI tool building its own Slack connection, they all use MCP. You configure it once, and the AI can read your Slack messages.
Add the bot to a channel
The bot needs to be a member of a channel before it can read messages from it.
- Open Slack (desktop app or browser)
- Go to the channel you want to summarise
- Type
/invite @Channel Summariser(or whatever you named your app) and press Enter - You should see a message confirming the bot has been added
Choose an active channel with at least 10–20 recent messages. This gives the AI something meaningful to summarise. You can always add the bot to more channels later.
The bot doesn't appear when I type /invite
Make sure you spell the app name exactly as you created it. You can also add the bot by clicking the channel name at the top → Integrations → Add an App, then find your app in the list.
Install Wispr Flow (optional)
Wispr Flow lets you speak your prompts instead of typing them. It works in any application — including your terminal where Gemini CLI runs.
This step is optional. Wispr Flow lets you speak instead of type — handy if you prefer talking over typing. Skip this step if you'd rather type your prompts.
Sign up using this invite link to get a free month of Pro: https://wisprflow.ai/r?CHAN115
Both you and the tutorial author benefit — you get a free month of Pro, and they get a free month when you dictate 2,000 words!
- Sign up at wisprflow.ai/r?CHAN115
- Download and install the app for your operating system
- Configure settings — enable these options for the best experience:
- Experimental > Command Mode — Enable advanced voice commands
- Press Enter Command — Automatically press enter when you say "press enter"
- Bulk Import — Import snippets and dictionary items
What is Wispr Flow?
Wispr Flow is a voice-to-text tool that lets you dictate instead of type. It works in any application, including your terminal. Instead of typing a long prompt to Gemini CLI, you can just say it out loud. This is especially useful if you find typing slow or tiring.
Test the connection
Open your terminal and start Gemini CLI:
geminiThe first time Gemini CLI loads with MCP configured, it may take a moment to connect to the Slack server. Once it's ready, say (with Wispr Flow) or type this test prompt:
Say this or copy this promptUse the Slack tools to check how many messages are in the channel #general.You should see Gemini CLI access your Slack workspace and report the message count. If it works, everything is connected.
Gemini says it has no Slack tools available
Check your
settings.jsonfile for typos. The most common issues are:- Missing commas between fields
- Incorrect quotation marks (use straight quotes
", not curly quotes) - Wrong file location — it must be in
~/.gemini/settings.json
After fixing, close Gemini CLI (
/quit) and start it again.Connection error or timeout
Make sure Node.js is installed correctly (
node --versionshould show a version number). The MCP server usesnpxto run, which comes with Node.js. Ifnpxis not found, reinstall Node.js.'invalid_auth' error
Your bot token is incorrect. Go back to api.slack.com/apps, find your app, go to OAuth & Permissions, and copy the Bot User OAuth Token again. Update your
settings.jsonwith the correct token.
Verify your setup
Node.js installed
Run node --version in your terminal. You should see a version number.
Gemini CLI installed and signed in
Run gemini in your terminal. It starts up and shows a prompt where you can type.
Slack App created with correct scopes
Your app has channels:history and channels:read scopes.
Bot token saved
You have a token starting with xoxb- saved somewhere safe.
Team ID saved
You have an ID starting with T saved alongside your token.
MCP configured
Your settings.json file contains the Slack MCP server configuration.
Bot added to a channel
The bot is a member of at least one channel you want to summarise.
Wispr Flow installed (optional)
Wispr Flow is running and you can see the microphone indicator. If you skipped this step, that is perfectly fine — you can type all prompts instead.
Connection tested
Gemini CLI can access your Slack workspace when you ask.
All set? Head to Summarise your Slack channels to get your first AI-powered summary.
Quick alternative. This path gets you results in 10 minutes, but skips the CLI skills used in other tutorials. Claude Desktop is made by Anthropic — the same company behind Claude Code, which you will use in the advanced Vibe Coding tutorial. For the full learning experience, we recommend the Recommended: CLI + Voice tab.
This is the fastest way to get started. You will download Claude Desktop, connect it to Slack, and be ready to summarise in about 10 minutes.
Download Claude Desktop
- Go to claude.ai/download
- Download the app for your operating system (Windows or macOS)
- Install it by opening the downloaded file and following the prompts
- Open Claude Desktop and create a free account (or sign in if you already have one)
Do I need a paid plan?
No. The free plan includes access to Slack connectors. You can start summarising channels right away without paying anything.
Connect Slack
- In Claude Desktop, click your profile icon in the bottom-left corner
- Click Customize
- Click Connectors
- Click the + button to add a new connector
- Find Slack in the list and click it
- A browser window will open — sign in to your Slack workspace
- Review the permissions and click Allow
- Return to Claude Desktop — Slack is now connected
What does the connector do? It gives Claude secure, read-only access to your Slack messages. Claude can search and read messages in channels you have access to, but it cannot post, delete, or modify anything.
I don't see the Connectors option
Make sure you are using the latest version of Claude Desktop. Go to Help → Check for Updates and install any available updates. If you still don't see it, try signing out and signing back in.
The Slack authorisation window won't open
Check that your browser is not blocking pop-ups. Try a different browser if the window still won't appear. You can also try copying the authorisation URL and pasting it directly into your browser.
Test the connection
In the Claude Desktop chat, type this prompt:
Copy this promptList the Slack channels you can see in my workspace.You should see a list of channel names from your Slack workspace. If you do, the connection is working.
Claude says it cannot access Slack
Go back to Customize → Connectors and check that Slack shows as connected. If it shows an error, remove the connector and add it again. Make sure you authorise the correct workspace.
Verify your setup
Claude Desktop installed
The app opens and you can type messages.
Slack connected
The Slack connector shows as active in Customize → Connectors.
Connection tested
Claude can list your Slack channels when you ask.
All set? Head to Summarise your Slack channels to get your first AI-powered summary.