Quickstart: Creating a Slack app | Slack Developer Docs
https://docs.slack.dev/quickstart/ • 53 KB fetched Open original page
Quickstart: Creating a Slack app | Slack Developer Docs
guide
Skip to main content
Guides Reference Samples Tools
Changelog Dev Program
MANAGE APPS
* Welcome!
* Quickstart
* Resources
*
* Slack platform concepts
* AI in Slack
* APIs
* App management
* App manifests
* Admin resources
* Authentication
* Block Kit
* Enterprise
* Enterprise Search for apps
* GovSlack
* Interactivity
* Messaging
* Slack Marketplace
* Surfaces
* Workflows
*
* Legacy
*
* 日本語版ページ
*
* Quickstart Copy as markdown
On this page
Quickstart: Creating a Slack app
This quickstart guide covers how to create a Slack app using the Slack CLI and the Bolt frameworks, in either Python or JavaScript .
By the end, you'll have a local environment configured with a running customized app to modify and make your own.
Prerequisites
Before you begin building, grab the required tools by following the three steps below. If you don't have a Slack workspace already, we recommend also setting up a developer sandbox .
MacOS/Linux Windows
1
Install the Slack CLI
Download the command-line tool for developing Slack apps.
curl -fsSL https://downloads.slack-edge.com/slack-cli/install.sh | bash
2
Connect to your workspace
Log in and authenticate with your Slack workspace.
slack login
3
Use our preconfigured template
Create a project by selecting "Starter App", then either "Bolt for Python" or "Bolt for JavaScript".
slack create first-slack-app
Now you've got everything you need to start developing on the Slack platform!
Creating a project
The slack create Slack CLI command created a new Bolt project on your system. This contains the code that handles logic for your app. Navigate into that project:
$ cd first-slack-app
and open the project in an editor of your choice.
Running the app
The starter app is ready to run from the start. By using the slack run command, and selecting "Create a new app", you'll install the app to the team you choose. The details of the app shown are found in the manifest.json file.
$ slack run
...
INFO:slack_bolt.App:⚡️ Bolt app is running!
...
With the app running, test it out with the following steps in the Slack workspace your app is running in:
* Open a direct message with your app or invite the bot @first-slack-app (local) to a public channel.
* Send "hello" to the current conversation and wait for a response.
* Click the attached button labeled "Click Me" to post another reply.
After confirming the app responds, celebrate! But now it's time to add on.
Updating the app
You may have a running Slack app, but the defaults included leave opportunities abound. Let's personalize this app by editing this code to respond with a kind farewell.
* Python
* JavaScript Open the app.py file. Add the following import to the top of the file and a message listener after the "hello" handler: app.py
import random
@app . message ( "goodbye" )
def message_goodbye ( say ) :
responses = [ "Adios" , "Au revoir" , "Farewell" ]
parting = random . choice ( responses )
say ( f" { parting } !" )
Open the app.js file. Add the following message listener after the "hello" handler: app.js
app . message ( 'goodbye' , async ( { say } ) => {
const responses = [ 'Adios' , 'Au revoir' , 'Farewell' ] ;
const parting = responses [ Math . floor ( Math . random ( ) * responses . length ) ] ;
await say ( ` ${ parting } ! ` ) ;
} ) ;
Once the file is updated, save the changes. You should notice the app restarting in your terminal.
Open Slack to perform these steps:
* Return to the direct message or public channel with your bot.
* Send "goodbye" to the conversation.
* Receive a parting response from before and repeat "goodbye" to find another one.
Your app can be stopped by pressing CTRL+C in the terminal to end these chats.
Customizing app settings
The created app will have some placeholder values and a small set of scopes to start, but we recommend exploring the customizations possible on app settings.
Open app settings for your app with the following command:
$ slack app settings
This will open the following page in a web browser:
On these pages you're free to make changes such as updating your app icon, configuring app features, and perhaps even distributing your app!
Next steps
You can now continue customizing your app with various features to make it right for whatever job's at hand. Here are some ideas about what to explore next:
* Check out the Agent quickstart to get up and running with an agent.
* Browse our curated catalog of samples for more apps to use as a starting point for development.
* Try using the Slack MCP Plugin to aid in agent-assisted development.
Previous
Welcome!
Next
Developer support
Copy as markdown
* Prerequisites
* Creating a project
* Running the app
* Updating the app
* Next steps
.
*
Tools
* Slack CLI
* Bolt frameworks
* Slack SDKs
* Block Kit Builder
* Developer program
* Code samples & tutorials
* LLM? Read llms.txt
* All tools
Learn
* Learning paths
* Workshops
* Slack certifications
* Trailhead
* Resource library
* All learning resources
Community
* Slack community
* Slack events
Resources
* Docs
* Blog
* Slack marketplace
* Developer newsletter
Manage Apps
* Your apps
* Status
* Privacy
* Terms
* Cookie Preferences
* Support
* Changelog
* Your Privacy Choices
© 2026 Slack Technologies, LLC, a Salesforce company. All rights reserved. Various trademarks held by their respective owners.
*
*
*
Links found on this page
- Skip to main content [direct]
- Guides [direct]
- Reference [direct]
- Samples [direct]
- Tools [direct]
- Changelog [direct]
- Dev Program [direct]
- MANAGE APPS [direct]
- Quickstart [direct]
- Resources [direct]
- Slack platform concepts [direct]
- AI in Slack [direct]
- APIs [direct]
- App management [direct]
- App manifests [direct]
- Admin resources [direct]
- Authentication [direct]
- Block Kit [direct]
- Enterprise [direct]
- Enterprise Search for apps [direct]
- GovSlack [direct]
- Interactivity [direct]
- Messaging [direct]
- Slack Marketplace [direct]
- Surfaces [direct]
- Workflows [direct]
- Legacy [direct]
- 日本語版ページ [direct]
- Slack CLI [direct]
- Python [direct]
- JavaScript [direct]
- developer sandbox [direct]
- slack create [direct]
- slack run [direct]
- scopes [direct]
- Agent quickstart [direct]
- Slack MCP Plugin [direct]
- Slack CLI [direct]
- Bolt frameworks [direct]
- Block Kit Builder [direct]
- Code samples & tutorials [direct]
- LLM? Read llms.txt [direct]
- Learning paths [direct]
- Workshops [direct]
- Slack certifications [direct]
- Trailhead [direct]
- Resource library [direct]
- All learning resources [direct]
- Slack community [direct]
- Slack events [direct]
- Blog [direct]
- Slack marketplace [direct]
- Developer newsletter [direct]
- Status [direct]
- Privacy [direct]
- Terms [direct]
- Your Privacy Choices [direct]
|
|