The new Slack platform and the features described below are in beta and under active development.

App manifest

An app's manifest is where you can configure its name and scopes, declare the functions your app will use, and more.

At the root of your app project's folder, locate the file named manifest.ts.

Inside the manifest file, you will find an export default Manifest block that defines the app's configuration:

// manifest.ts

export default Manifest({
  // This is the internal name for your app. 
  // It can contain spaces (e.g., "My App")
  name: "my-app",
  
  // A description of your app that will help users decide whether to use it.
  description: "Reverse a string",
  
  // Your app's profile picture that will appear in the Slack client.
  icon: "assets/icon.png",
  
  // A list of all functions your app will use.
  functions: [ReverseFunction],

  // If your app communicates to any external domains, list them here.
  outgoingDomains: [], // e.g., myapp.tld

  // Bot scopes can be declared here.
  // For the beta, you can keep these as-is.
  botScopes: ["commands", "chat:write", "chat:write.public"],
});

Manifest Properties

The properties in the manifest are:

Property Type Description
name String This is the internal name for your app. It can contain spaces (e.g., "My App")
description String A short sentence describing your application. A description of your app that will help users decide whether to use it
displayName String (Optional) Allows a custom name for the app to be displayed that's different from the name
longDescription String (Optional) A more detailed description of your application
icon String A relative path to an image asset to use for the app's icon. Your app's profile picture that will appear in the Slack client
backgroundColor String (Optional) A six digit combination of numbers and letters (the hexadecimal color code) that make up the color of your app background e.g., "#000000" is the color black
botScopes Array A list of scopes, or permissions, the app's functions require
functions Array (Optional) A list of all functions your app will use
workflows Array (Optional) A list of all workflows your app will use
outgoingDomains Array
As of v1.15.0, any domain your app communicates with except slack.com needs to be listed here.
(Optional) If your app communicates to any external domains, list them here. If you make API calls to slack.com, it does not need to be explicitly listed. e.g., myapp.tld
events Array (Optional) A list of all event structures that the app is expecting to be passed via Message Metadata
types Array (Optional) A list of all custom types your app will use
datastores Array (Optional) A list of all Datastores your app will use
features Object (Optional) A configuration object of your app features

You may also see some function definitions before the manifest block. We'll delve into that more within the Creating functions page. You will come back to the manifest every time you create a new function, since each function your app uses must be declared in the manifest.

To keep building your new app, head to the next section: Creating functions.

The Messages tab

By default, apps created with slack create will include both a read-only Messages tab and an About tab within Slack.

You can use the built-in function SendDm to send users direct messages from your app—which will appear for them in the app's Messages tab.

Your app's Messages tab will be enabled and read-only by default. If you'd like to disable read-only mode and/or disable the Messages tab completely, add the optional features property to your manifest definition like this:

export default Manifest({
  name: "My App",
  description: "Reverse a string",
  icon: "assets/icon.png",
  functions: [ReverseFunction],
  outgoingDomains: [],
  // Add this ------
  features: {
    appHome: {
      messagesTabEnabled: false,
      messagesTabReadOnlyEnabled: false,
    },
  },
  // ---------------
  botScopes: ["commands", "chat:write", "chat:write.public"],
});

Have 2 minutes to provide some feedback?

We'd love to hear about your experience with the new Slack platform. Please complete our short survey so we can use your feedback to improve.