Paste this manifest (JSON tab recommended):
{
"display_information": {
"name": "Slack Chat API"
},
"features": {
"bot_user": {
"display_name": "Slack Chat API",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"channels:history",
"channels:manage",
"channels:read",
"chat:write",
"emoji:read",
"files:read",
"groups:history",
"groups:read",
"reactions:write",
"team:read",
"users:read"
],
"user": [
"search:read"
]
}
},
"settings": {
"org_deploy_enabled": false,
"socket_mode_enabled": false
}
}
YAML alternative (if you prefer)
display_information:
name: Slack Chat API
features:
bot_user:
display_name: Slack Chat API
always_online: false
oauth_config:
scopes:
bot:
- "channels:history"
- "channels:manage"
- "channels:read"
- "chat:write"
- "emoji:read"
- "files:read"
- "groups:history"
- "groups:read"
- "reactions:write"
- "team:read"
- "users:read"
user:
- "search:read"
settings:
org_deploy_enabled: false
socket_mode_enabled: false
Extended manifest — every read scope slck can use, plus all writes (DMs, group DMs, file uploads, canvas CRUD, etc.)
Use this if you want maximum capability out of the box — reading DMs and group DMs, uploading file attachments to any channel/DM/group-DM, creating/editing/deleting canvases, resolving @subteam mentions, extended user profile data, etc. Every scope here is either needed by an existing slck command or unlocks a capability that commonly extends one (e.g. im:history so slck messages thread works on DMs, files:write for slck messages send --file, canvases:write for slck canvas create).
{
"display_information": {
"name": "Slack Chat API"
},
"features": {
"bot_user": {
"display_name": "Slack Chat API",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"app_mentions:read",
"bookmarks:read",
"calls:read",
"canvases:read",
"canvases:write",
"channels:history",
"channels:manage",
"channels:read",
"chat:write",
"chat:write.public",
"dnd:read",
"emoji:read",
"files:read",
"files:write",
"groups:history",
"groups:read",
"groups:write",
"im:history",
"im:read",
"im:write",
"links:read",
"lists:read",
"metadata.message:read",
"mpim:history",
"mpim:read",
"mpim:write",
"pins:read",
"reactions:read",
"reactions:write",
"reminders:read",
"remote_files:read",
"search:read.files",
"search:read.mpim",
"search:read.public",
"search:read.users",
"team:read",
"usergroups:read",
"users.profile:read",
"users:read",
"users:read.email"
],
"user": [
"bookmarks:read",
"calls:read",
"canvases:read",
"canvases:write",
"channels:history",
"channels:read",
"channels:write",
"channels:write.invites",
"channels:write.topic",
"chat:write",
"dnd:read",
"emoji:read",
"files:read",
"files:write",
"groups:history",
"groups:read",
"groups:write",
"im:history",
"im:read",
"im:write",
"links:read",
"lists:read",
"mpim:history",
"mpim:read",
"mpim:write",
"pins:read",
"reactions:read",
"reactions:write",
"reminders:read",
"remote_files:read",
"search:read",
"search:read.files",
"search:read.im",
"search:read.mpim",
"search:read.private",
"search:read.public",
"search:read.users",
"team:read",
"usergroups:read",
"users.profile:read",
"users:read",
"users:read.email"
]
},
"pkce_enabled": false
},
"settings": {
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false,
"is_mcp_enabled": false
}
}
Upgrading an existing install? Paste the full manifest above into your app's Features → App Manifest tab (replacing the previous manifest), click Save Changes, then click Install App → Reinstall to Workspace to grant the new scopes. Copy both refreshed tokens and run slck init, or store them separately with slck set-credential --key bot_token --stdin and slck set-credential --key user_token --stdin.