Release: Slack CLI v4.0.0 and v4.0.1
Version 4.0.0 of the developer tools for the Slack platform has arrived with lots of goodies for you!
This version ties together iterative improvements, with special focus on agent development. The Slack CLI can now quickly scaffold an AI agent using the slack create agent command and our collection of agent sample apps. Features such as local manifest management, environment variable management, and file watching with live reloading come together to streamline the agent development experience.
New features
Creating apps and agents
- The AI Agent templates now include an IT support agent available with the
slack create agentcommand.- Use
slack create agentto choose one the new AI Agent templates:- Starter Agent:
- Supports Bolt for JavaScript and Bolt for Python
- Available in the Claude Agent SDK, OpenAI Agents SDK, and Pydantic AI framework
- IT Support Agent:
- Supports Bolt for JavaScript and Bolt for Python
- Available in the Claude Agent SDK, OpenAI Agents SDK, and Pydantic AI framework
- Starter Agent:
- Slack MCP Server is built-in to all of the AI Agent templates.
- Use
- The Slack CLI installer now ends with a recommendation to run the
slack create agentcommand. - The
slack createcommand now separates selections into categories of templates for frameworks to better align with the options displayed.
Managing environment variables
- Environment variables saved to
.envfiles are now loaded into the process before hook scripts run. This improves theslack runcommand, as additional dependencies are no longer required to load environment variables into the runtime context. Other commands such as theslack deploycommand and theslack manifestcommand also benefit, as the underlying hooks can be more expressive in customizations, and can also be configured for custom environments. - The
slack env listcommand now lists the environment variables available from.envfiles for apps that aren't run on Slack infrastructure. - The
slack env setcommand can now add and update environment variables in.envfiles for apps that aren't built or run on Slack infrastructure, making configuring and iterating on a Bolt app from the command line faster. - The
slack env unsetcommand now removes environment variables from.envfiles for apps that aren't built or run on Slack infrastructure. - The
slack envcommands were aliased toenv setandenv unsetto match more common shell conventions. (These commands were previously recommended asaddandremove, which became confusing when existing variables were updated.) Refer to theslack envcommand docs for more details.
Finding docs programmatically
- We've added a
slack docs searchsubcommand, which can output search results using plain text, json, or your preferred browser. Refer to theslack docscommand docs for more details.
Developing an app
- We've added file watch and live reload support to
slack run. This allows your Slack apps to immediately reflect changes to files by you or your agent-related development tools (Claude Code, Codex, etc.). - It's easier to start an HTTP OAuth Server or app with a custom path, as the
slack runcommand now accepts an optional argument for the app entry point. For example:$ slack run ./src/app_oauth.py. - We updated the
slack runcommand for Enterprise Organizations so that "All workspaces" is always shown as the first option when prompted to choose whether to grant to all workspaces or a specific workspace. - When a command runs using the verbose flag (
--verbose) and makes an HTTP request, the output now includes the HTTP Header's User-Agent. For example:HTTP Request User-Agent: slack-cli/v3.15.0 (os: darwin).
Python project improvements
- The
slack createandslack initcommands now create a Python Virtual Environment (.venv) when it doesn't exist. - The
slack createandslack initcommands now install your project dependencies frompyproject.tomlandrequirements.txtafter activating your Python virtual environment. - All
slackcommands now activate your Python virtual environment, when it exists. For example, this meansslack runwill activate your.venvbefore starting your app's server.
Bolt Framework agent improvements
- Bolt for JavaScript 4.7.0 and Bolt for Python 1.28.0 support a collection of new agent-related UI features.
- Event listener handlers now provide utilities to display your agent's thinking status, streaming text, display suggested prompts, and more.
- The Slack MCP Server now works with Bolt Frameworks.
- Popular agent frameworks such as Claude Agent SDK, OpenAI Agents SDK, Pydantic, and Vercel now work with Bolt.
Prompt look and feel
- We've refreshed our interactive prompt style with Charm's Huh package.
- Interactive prompts now support light-mode and dark-mode.
Bug fixes
- We fixed a
pyproject.tomlerror that was displayed by theslack createandslack initcommands. The error occurred when creating a Bolt Python project that includespyproject.toml, but doesn't define a[project]section ordependenciesarray. Now, a warning is displayed in--verbosemode, as this is a validpyproject.tomlformat. - We fixed a bug: environment variable values set for hook commands are no longer surrounded with double quotes.
- We fixed a bug with the Windows installer. The installer now suggests providing an optional alias as a separate step from downloading the installer if earlier overwrites were avoided but still caused the installation to fail.
- We fixed a bug: errors will appear sooner in CI and scripting setups if either interactive input or a confirmation is requested, rather than waiting for a timeout.
- We fixed a bug: The sections of
slack envcommand outputs are now titled to match the command itself, and are grouped under one section for each command.
But wait, there's more!
In version 4.0.1 of the developer tools, we've fixed the slack create agent command so that it shows prompts for the app template, Bolt Framework, and then Agent Framework. This adds more templates to the options, including Bolt for JavaScript and Bolt for Python implementations of the Starter Agent and Support Agent templates.