< Back to Blog

Slack Developer Changelog Recap: January – March 2026

March 2, 2026
Slack Developers Docs Team

Happy New Year! We’ve been hard at work on new features and updates to make your work life simpler, more pleasant, and more productive.

Announcements

What’s old, what’s new, and what might need some action from you!

  • New supported markdown types for rich text in Block Kit. We’ve introduced new markdown types for rich text when using Block Kit. Check out the changelog entry and our rich text block and markdown block references for more details.
  • Slack MCP server and Real-Time Search API. We’re excited to announce the release of not one, but two, major components designed to significantly enhance how Large Language Models (LLMs) and AI agents interact with your workspace data: the Slack Model Context Protocol (MCP) server and the Real-time Search (RTS) API. Check out the changelog entry for more details.
  • Thinking steps. Apps can now display thinking steps to users. Check out the changelog enry and our guide on developing AI apps.
  • Optional scopes. You can now mark individual OAuth scopes as optional when configuring your Slack app. Optional scopes give users more control over what data your app can access during installation, without blocking them from installing your app entirely.
  • Retry delayed events. In case of an outage where your app may have missed events, we’ve released a Delayed Events feature that lets you replay past events. Read all about it in the Events API docs.
  • Set status method scope update. The assistant.threads.setStatus API method now accepts either the assistant:write or chat:write scope. This allows channel-based apps to use AI loading states in channels, without having to request assistant:write or use the AI assistant split view. The assistant.threads.setStatus API method will eventually no longer accept the assistant:write scope in favor of the chat:write scope exclusively, so update your app soon!

Slack CLI

The command line interface for quickly creating, developing, and deploying Slack apps.

Updates to the slack create command:

  • The command now normalizes project directory names to kebab-case (lowercase, dash-delimited, no whitespace or special characters).
  • We’ve updated the command’s app name prompt to show the randomly generated app name as placeholder text. You can press Enter to accept the default name, or type in a new name.
  • The slack create command now updates the app name in the package.json and pyproject.toml project files.
  • The command now displays AI Agent app instead of AI app to align with Slack’s new Agent app features.
  • The command now prompts you for a custom app name. This prompt appears before scaffolding a new project from a template, and when making new project directories with your custom app name, we now replace spaces with a dash (instead of removing spaces altogether) to make navigation a bit better.
  • We’ve added a --subdir flag to the slack create command for extracting a subdirectory from a template repository as the project root. This supports monorepo-style templates where multiple apps live in subdirectories (e.g., slack create my-app -t org/monorepo --subdir apps/my-app).
  • When running the slack create command with the agent argument, a list of agentic apps are now highlighted for selection. If you want to name your app “agent” and not create an agentic app, you can use the --name flag instead to explicitly set your app name.
  • When running the slack create command, the available templates are now shown without requiring an immediate selection when using the --list flag.
  • Bolt for JavaScript and Bolt for Python-related updates:
    • Bolt JavaScript and Bolt Python projects now default to using the local manifest.json as the app manifest (previously, it was a remote manifest from app settings). Changes to the app manifest via app settings will now be detected by the Slack CLI, and a prompt will be displayed before any manifest update action occurs (e.g., when using the slack run command). The manifest source is set after creating a new project with the slack create command or by initializing an existing project using the slack init command, and the setting is stored as "manifest.source": "local" in the .slack/config.json file.
    • When running Slack CLI commands in a Bolt Python project, the Slack CLI will attempt to automatically activate the Python virtual environment (.venv).
    • We’ve updated both the slack create and slack init commands to support creating a Python virtual environment (.venv) when it doesn’t exist, and installing the project’s dependencies from the requirements.txt and pyproject.toml project files.
    • We’ve added pyproject.toml support to Bolt for Python projects. The slack create and slack init commands will now detect pyproject.toml files, add the slack-cli-hooks<1.0.0 to the dependency section (when missing), and display instructions on how to install the dependencies. Python projects now support either or both of the requirements.txt and pyproject.toml files.
    • We’ve updated the slack run command to support file watching and live reloading for Bolt for JavaScript and Bolt for Python projects. When a file is changed, the Slack CLI will automatically restart the app development server. When the manifest.json file is changed, the manifest update API is called (.slack/config.json must have manifest.source: "local").
  • Other updates:
    • We’ve updated the slack app link command to support projects that use a manifest file as the manifest source (manifest.json). We’ve also updated the app manifest overwrite warning prompt wording and appearance.
    • The slack deploy command now references the latest online documentation, with a suggestion to run a development app using the slack run command if a deploy hook script doesn’t exist. Refer to our hooks documentation for more details.
    • The slack docs command opens the slack developer docs site, and you can now use the --search flag to open the docs search page with the provided query.
    • We now prompt you to log in if no prior authentications are detected when running any command that requires credentials, rather than exiting with an error.
  • Bug fixes:
    • We now avoid infinite loops when searching for the root project .slack directory for projects existing on drives other than the C: drive on Windows.
    • We now check whether an installed git command exists on Windows.
    • We removed support for the .slackignore file in the project root, as this file was unused. For posterity, during the Slack CLI Beta, this allowed Deno SDK projects to ignore files during deployment, but the feature was removed before Slack CLI v1.0.0.
    • The slack app settings command now opens the App Settings home page (https://api.slack.com/apps) when the command is run outside of a project. This allows you to see your complete list of apps.
    • We now print a debug log if the manifest file was changed but not reinstalled if the manifest.source was set to "remote".
    • We now output a warning instead of an error if activating the Python virtual environment (.venv/) fails.

That’s a wrap on this quarter’s highlights! Keep building and let us know what you think by submitting feedback to feedback@slack.com or reaching out to us on GitHub.

Previous Post
3 min read

Building Context-Aware Slack Agents with MCP Server and Real-time Search (RTS) API

Next Post
5 min read

Deploy Agents to Slack Faster with Vercel Skills