Our future generation platform is in closed beta. During the beta, expect some rough edges, broken windows overlooking blue sky vistas, and regularly scheduled changes.

Already signed up? Great! You can ignore this.
Need to sign up? Apply to join the beta.

Configuring an app

An apps manifest is where you can configure its name, scopes, and declare the functions that your app will use, among other things.

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
  // Note that the outgoing domains are only restricted if the workspace 
  // has Admin approved apps on.
  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"],
});

The minimum required properties in the Manifest are:

Property Type Description
name string Your app's name.
description string A short sentence describing your application.
icon string A relative path to an image asset to use for the app's icon.
botScopes Array A list of scopes, or permissions, the app's functions require.

You may also see some function definitions before the Manifest block. We'll talk about that more next on 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.

Messages tab

By default, apps created with slack create will include a read-only Messages tab alongside an About tab.

In the next release, we'll include support for using built-in functions to send users a direct message from your app—which will appear for them in the app's Messages tab.

For now, you can disable and hide the Messages tab completely by adding 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"],
});