slack-bolt
The Bolt Framework for Python
What it is and what it does
Bolt for Python is a framework that simplifies building Slack applications by providing a decorator-based API for listening to and responding to Slack events, commands, actions, and shortcuts. It abstracts away the HTTP request handling and authentication details, letting you focus on writing listener functions that react to user interactions in Slack. The framework supports both synchronous and asynchronous execution patterns, and can run apps either through traditional HTTP webhooks (with ngrok or similar tunneling) or via Slack's Socket Mode for easier local development.
The package depends only on slack_sdk, the official Slack SDK for Python, and supports Python 3.7 through 3.14. It provides utility functions like `say()` to send messages, `ack()` to acknowledge events, and `respond()` to reply to interactive actions. Listener functions receive context about the triggering event and can access the Slack Web API client to perform additional operations.
Use it for:
- Build a Slack bot that responds to mentions, messages, or slash commands without managing HTTP routing or signature verification manually.
- Create interactive workflows using Block Kit elements (buttons, select menus) that trigger callback functions when users interact with them.
- Implement custom Slack workflow steps that integrate with external systems or perform business logic when triggered.
- Run a Slack app in development or production using Socket Mode to avoid exposing a public HTTP endpoint.
- Handle multiple Slack workspaces with OAuth-based token management for multi-tenant Slack applications.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Bolt for Python is a framework for building Slack apps that handle events, commands, actions, and shortcuts through a decorator-based listener pattern, with support for both synchronous and asynchronous execution.
Yes. Bolt for Python is actively maintained, has no known vulnerabilities, installs with minimal friction, and is permissively licensed. It is the official Slack framework for Python and substantially reduces boilerplate for building Slack apps. Install it if you are building any Slack application.
Install
slack-bolt on PyPI
pip
pip install slack-boltuv
uv add slack-boltpoetry
poetry add slack-boltInstalling slack-bolt
Before you install
Low install friction with a single runtime dependency (slack_sdk). The package is actively maintained with a recent release (30 days ago) and has been in development since 2020, with 1322 repository stars indicating stable community adoption.
License in practice
MIT license is permissive, allowing commercial and private use with minimal restrictions—you may use, modify, and distribute this package freely as long as you include the original license notice.
Quickstart
pip install slack_bolt
from slack_bolt import App
app = App(token="xoxb-...", signing_secret="***")
@app.event("app_mention")
def handle_mention(event, say):
say("Hello!")
app.start(3000)
Requires Python 3.7 or later; SLACK_BOT_TOKEN and SLACK_SIGNING_SECRET environment variables (or constructor parameters) are needed to authenticate with Slack.
Verify before relying
- Whether the package supports all Slack API features or only a subset of the platform's capabilities.
- Performance characteristics and scalability limits for high-volume event processing.
- Whether Socket Mode is suitable for production workloads or primarily for development.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — slack_sdk |
| Maintenance | actively maintained — 30 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 15,072,103/month — #1,200 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: slack_bolt-1.30.0-py2.py3-none-any.whl
Tags
More Application Frameworks packages
FastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
textualTextual is a Python framework for building…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
mcpBuild and connect to Model Context Protocol…
permissive · top 1,000 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
bar-raiserBar-Raiser creates GitHub checks with inline…
permissive · top 15,000 on PyPI
pyblock-builderPyBlock Builder provides Python classes and…
permissive · top 15,000 on PyPI
slackeventsapiReceives and parses events from Slack's Events…
permissive · top 15,000 on PyPI
slack-sdkProvides Python bindings for Slack's Web API,…
permissive · top 1,000 on PyPI
slackclientProvides Python interfaces to Slack's Web API…
permissive · top 5,000 on PyPI
blockkitBlockKit builds Slack UI blocks…
permissive · top 15,000 on PyPI
slackA dependency injection container that registers…
permissive · top 15,000 on PyPI
slackblocksBuilds Slack Block Kit messages…
permissive · top 15,000 on PyPI
slackwebSends messages to Slack channels via incoming…
permissive · top 15,000 on PyPI