Slack Bot Builder
davila7/claude-code-templates
Build Slack apps using the Bolt framework across Python, JavaScript, and Java.
A skill your agent uses when a developer wants to create, scaffold, or bootstrap a new Slack app or agent from scratch with the Slack CLI.
$ npx skills add slackapi/slack-skills-plugin --skill create-slack-app -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install slackapi/slack-skills-plugin create-slack-app --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/slackapi/slack-skills-plugin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/create-slack-app .claude/skills/create-slack-app && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "create-slack-app" agent skill from https://github.com/slackapi/slack-skills-plugin/tree/main/skills/create-slack-app into .claude/skills/create-slack-app/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-slack-app", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/slackapi/slack-skills-plugin/tree/main/skills/create-slack-appType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add slackapi/slack-skills-plugin --skill create-slack-app -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install slackapi/slack-skills-plugin create-slack-app --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/slackapi/slack-skills-plugin.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/create-slack-app .agents/skills/create-slack-app && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "create-slack-app" agent skill from https://github.com/slackapi/slack-skills-plugin/tree/main/skills/create-slack-app into .agents/skills/create-slack-app/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-slack-app", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add slackapi/slack-skills-plugin --skill create-slack-app -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install slackapi/slack-skills-plugin create-slack-app --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/slackapi/slack-skills-plugin.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/create-slack-app .cursor/skills/create-slack-app && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "create-slack-app" agent skill from https://github.com/slackapi/slack-skills-plugin/tree/main/skills/create-slack-app into .cursor/skills/create-slack-app/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-slack-app", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/slackapi/slack-skills-plugin.git --path skills/create-slack-app--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add slackapi/slack-skills-plugin --skill create-slack-app -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install slackapi/slack-skills-plugin create-slack-app --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/slackapi/slack-skills-plugin.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/create-slack-app .gemini/skills/create-slack-app && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "create-slack-app" agent skill from https://github.com/slackapi/slack-skills-plugin/tree/main/skills/create-slack-app into .gemini/skills/create-slack-app/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-slack-app", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install slackapi/slack-skills-plugin create-slack-appInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add slackapi/slack-skills-plugin --skill create-slack-app -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/slackapi/slack-skills-plugin.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/create-slack-app .github/skills/create-slack-app && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "create-slack-app" agent skill from https://github.com/slackapi/slack-skills-plugin/tree/main/skills/create-slack-app into .github/skills/create-slack-app/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-slack-app", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add slackapi/slack-skills-plugin --skill create-slack-app -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install slackapi/slack-skills-plugin create-slack-app --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/slackapi/slack-skills-plugin.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/create-slack-app .opencode/skills/create-slack-app && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "create-slack-app" agent skill from https://github.com/slackapi/slack-skills-plugin/tree/main/skills/create-slack-app into .opencode/skills/create-slack-app/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-slack-app", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
create-slack-appA skill your agent uses when a developer wants to create, scaffold, or bootstrap a new Slack app or agent from scratch with the Slack CLI.
Create Slack App is an agent skill from slackapi/slack-skills-plugin, published by the product's own GitHub organization. Use when a developer wants to create, scaffold, or bootstrap a new Slack app or agent from scratch with the Slack CLI. Covers prerequisites, authentication, choosing a workspace to install into, and creating a project from a Bolt (JS or Python) template locally. Trigger on "create a Slack app", "new Bolt app", "start a Slack agent".
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs. It works with Slack and Python. The repository describes itself as: Claude Code, Codex, Cursor, and npx skills plugin that enables your AI tools with a Slack MCP Server and Slack Developer Skills. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 64c3f33. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
brewnodepython3From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
api.slack.comnodejs.orgpython.orgslack.comdocs.slack.devFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ANTHROPIC_API_KEYOPENAI_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Create Slack App loads about 3.1k tokens when it runs. Until then it costs about 88 tokens; SKILL.md has 1,583 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from slackapi/slack-skills-plugin at commit 64c3f33, republished under its MIT licence (© slackapi). 1,583 words, ~3,123 tokens.
.claude/skills/create-slack-app/SKILL.md (or your agent's skills folder).Help the developer create a Slack app or agent using Bolt for $0.
This skill walks through the full setup: prerequisites, authentication, choosing a workspace to install into, project scaffolding from a template, and running the app locally.
Use the slack:slack-cli skill — Step 1: Detect the Slack CLI — to check whether the public Slack CLI is installed and resolve its command name. The fingerprint check, alias fallback, and install instructions all live there; do not duplicate them here.
Once resolved, use the detected command name for all CLI commands throughout the rest of this skill. We refer to it as SLACK_CMD below — substitute the actual resolved command name everywhere you see SLACK_CMD.
Run SLACK_CMD version and print the version to confirm everything is working before continuing.
$0 is bolt-js: Run node --version to verify Node.js is installed (v18+ required). If not installed, suggest brew install node or point to https://nodejs.org.$0 is bolt-python: Run python3 --version to verify Python is installed (3.6+ required). If not installed, suggest brew install python3 or point to https://python.org.Use the slack:slack-cli skill — Step 5: Authentication (slack auth) — to check the developer's auth status and walk them through SLACK_CMD login if they're not already authenticated.
Wait for confirmation that authentication succeeded before proceeding.
The app needs a Slack workspace to install into. Three targets work and they are not equivalent. Use AskUserQuestion to let the developer pick, presenting them in this order:
| Target | Best for | Cost of entry |
|---|---|---|
| Developer sandbox (recommended) | Anything the developer plans to keep building on. A free Enterprise Grid org isolated from real users, so org-level features are testable. | Needs a Slack Developer Program account, which is free to join. |
| Free Team (second choice) | Starting right now, when Developer Program signup is the thing in the way. A free workspace the developer creates and owns. | Capped at 10 apps per workspace, and no Enterprise Grid org features. |
| Existing production workspace (last resort) | Only when the app must reach real data or real coworkers. | Usually gated by admin approval, and the developer may not be the admin. |
Then follow the matching sub-step below. Whichever target they pick, authentication is the same Step 2 flow: the /slackauthticket command works in any workspace the developer belongs to, so there is no sandbox-specific login.
Whichever sub-step you follow, wait for confirmation that a target workspace exists and is authenticated before proceeding.
List existing sandboxes. Pass --team so the CLI does not stop to ask which authentication to use (get the team ID from SLACK_CMD auth list):
SLACK_CMD sandbox list --team <team_id>If the developer has no Developer Program account, sandbox list returns nothing useful, because sandboxes belong to the developer program account whose email matches the authenticated user rather than to the workspace. Point them at https://api.slack.com/developer-program/join, and offer the Free Team path in 3b as a way to start building now rather than waiting on signup.
If a sandbox exists: Show it and confirm they want to use it.
If no sandbox exists: Create one. Ask the developer for a name and a password with AskUserQuestion, then run:
SLACK_CMD sandbox create --team <team_id> --name <sandbox-name> --password <password>Important: the password is a credential. Do NOT echo it, restate it, or write it into a summary. Pass it straight to the command, the same rule Step 4c applies to API keys.
Sandboxes can also be created in the browser at https://api.slack.com/developer-program/sandboxes.
Once the sandbox exists, have the developer log into it with the Step 2 flow before continuing.
A Free Team is an ordinary Slack workspace on the free plan. The developer creates one at https://slack.com/get-started, then logs into it with the Step 2 flow.
What to tell them:
service_limits_exceeded.admin.* API methods (which need Business+ or Enterprise Grid), and multi-workspace behaviour generally. If the app targets those, use a sandbox instead.Only when the app genuinely needs real data or real users. Warn the developer before they log in:
SLACK_AUTO_REQUEST_AAA=1 in the environment. It is an environment variable, not a CLI flag.Ask the developer what kind of app they want to build. Present the available templates based on their chosen framework ($0):
| Template | Repo | Description |
|---|---|---|
| Starter Template | slack-samples/bolt-js-starter-template | Basic Bolt JS app — great starting point |
| Starter Agent | slack-samples/bolt-js-starter-agent | Minimal AI agent using Claude/OpenAI |
| Support Agent | slack-samples/bolt-js-support-agent | AI-powered IT helpdesk agent |
| Getting Started | slack-samples/bolt-js-getting-started-app | Official getting started tutorial app |
| Examples | slack-samples/bolt-js-examples | Unified showcase of Slack features |
| Template | Repo | Description |
|---|---|---|
| Starter Template | slack-samples/bolt-python-starter-template | Basic Bolt Python app — great starting point |
| Starter Agent | slack-samples/bolt-python-starter-agent | Minimal AI agent using Claude/OpenAI/Pydantic AI |
| Support Agent | slack-samples/bolt-python-support-agent | AI-powered IT helpdesk agent |
| Assistant Template | slack-samples/bolt-python-assistant-template | Agents & Assistants template |
| Examples | slack-samples/bolt-python-examples | Unified showcase of Slack features |
Use AskUserQuestion to let the developer pick a template. Recommend the Starter Template for first-timers or the Starter Agent if they want to build an AI agent.
If the developer picks Starter Agent or Support Agent, these templates contain subdirectories for different AI providers. Ask the developer which provider they want to use via AskUserQuestion:
bolt-js subdirectories:
| Subdir | Description |
|---|---|
claude-agent-sdk | Uses Anthropic's Claude Agent SDK |
openai-agents-sdk | Uses OpenAI's Agents SDK |
bolt-python subdirectories:
| Subdir | Description |
|---|---|
claude-agent-sdk | Uses Anthropic's Claude Agent SDK |
openai-agents-sdk | Uses OpenAI's Agents SDK |
pydantic-ai | Uses Pydantic AI (supports multiple LLM backends) |
Recommend Claude Agent SDK as the default option.
Ask what they want to name their project (suggest a default like my-slack-app), then run:
For templates WITHOUT subdirectories (Starter Template, Getting Started, Assistant Template, Examples):
SLACK_CMD create <project-name> -t <template-repo>For agent templates WITH subdirectories (Starter Agent, Support Agent):
SLACK_CMD create <project-name> -t <template-repo> --subdir <chosen-subdir>For example:
# Non-agent template
SLACK_CMD create my-slack-app -t slack-samples/bolt-js-starter-template
# Agent template with provider subdir
SLACK_CMD create my-slack-agent -t slack-samples/bolt-js-starter-agent --subdir claude-agent-sdkConfirm the project was created successfully by checking that the directory exists and listing its contents.
If the developer chose an agent template (Starter Agent or Support Agent), they need to set the required API key for their chosen AI provider. Ask for the key value using AskUserQuestion, then set it using the Slack CLI from within the project directory.
Required environment variables by provider:
| Provider | Env Variable | Description |
|---|---|---|
claude-agent-sdk | ANTHROPIC_API_KEY | Anthropic API key |
openai-agents-sdk | OPENAI_API_KEY | OpenAI API key |
pydantic-ai | OPENAI_API_KEY | OpenAI API key (required). Optionally also ANTHROPIC_API_KEY if using Anthropic as the backend — if both are set, Anthropic is used by default. |
Use AskUserQuestion to ask the developer for their API key value(s). Then set each one:
cd <project-name> && SLACK_CMD env set <ENV_VAR_NAME> <value>For example:
cd my-slack-agent && SLACK_CMD env set ANTHROPIC_API_KEY sk-ant-...Important: Do NOT store or echo API key values in logs or output. Only pass them directly to SLACK_CMD env set.
Use the slack:slack-cli skill — Step 6: Running an App Locally (slack run) — to resolve the app or team target and start the dev server in the background.
Tell the developer their app is now running and installed in the workspace they chose in Step 3, and that file changes will auto-reload it.
If the install stops on an admin approval request, they picked a workspace with AAA turned on: see Step 3c for the options.
After the app is running, suggest next steps:
SLACK_CMD is a placeholder — always substitute the actual command name resolved in Step 1a (typically slack, but may be an alias).slack deploy (hosted deployment).SLACK_CMD sandbox create prompts for a name and password only when those flags are missing. Supply --team, --name, and --password and it runs non-interactively, so you can run it yourself rather than handing it to the developer. SLACK_CMD sandbox list needs --team for the same reason: without it the CLI prompts for which authentication to use.free_team_not_allowed error is scoped to low-code workflow and function apps, which this skill does not create.SLACK_CMD doctor to diagnose their setup.© slackapi, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/create-slack-app of slackapi/slack-skills-plugin.
Open the folder on GitHubat commit 64c3f33
Create Slack App next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Create Slack App this skillslackapi/slack-skills-plugin | 145 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Slack Bot Builderdavila7/claude-code-templates | 32k | 5 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Slack Bot Buildersickn33/agentic-awesome-skills | 47k | 2 repos | ~426 | Automated safety check: Pass | MIT | |
| Cao Pluginawslabs/cli-agent-orchestrator | 1.4k | — | ~3.1k | Automated safety check: Notes | Apache-2.0 | |
| Soul Interviewldbumble/taskuary | 137 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Taskuary Setupldbumble/taskuary | 137 | — | ~1.5k | Automated safety check: Pass | MIT |
davila7/claude-code-templates
Build Slack apps using the Bolt framework across Python, JavaScript, and Java.
sickn33/agentic-awesome-skills
Build Slack apps using the Bolt framework across Python, JavaScript, and Java.
awslabs/cli-agent-orchestrator
Create a new CAO (CLI Agent Orchestrator) plugin. An agent skill from awslabs/cli-agent-orchestrator.
ldbumble/taskuary
Conduct a seven-question adaptive interview and turn the answers into Taskuary's SOUL.md.
ldbumble/taskuary
Walk the owner through setting Taskuary up - the AI brain, where work arrives, the operator documents, reports and workflows - by reading the install's real state and using the screens that already…
anthropics/skills
Provides Slack size and frame limits, Python animation helpers and validators for building animated GIFs sized for emoji and messages.
slackapi/slack-skills-plugin
A skill your agent uses when a developer wants to build or validate Block Kit layouts for Slack messages, modals, or Home tabs: message layouts, modals/forms/dialogs, Home tab interfaces…
slackapi/slack-skills-plugin
A skill your agent uses when a developer asks which Slack Web API method does something, needs a method's OAuth scopes or token type, wants to call or test a family.method endpoint…
slackapi/slack-skills-plugin
A skill your agent uses when answering a conceptual or how-to question about Slack platform features, or when asked to look up, fetch, or summarize a docs.slack.dev page, including a pasted…
slackapi/slack-skills-plugin
A skill your agent uses when writing, drafting, scheduling, or improving a Slack message, announcement, or reply sent via the Slack MCP tools (slacksendmessage, slacksendmessagedraft…
slackapi/slack-skills-plugin
A skill your agent uses when locating messages, files, channels, or people across Slack, or gathering context before answering, with the search MCP tools (slacksearchpublic…
slackapi/slack-skills-plugin
A skill your agent uses when a developer wants to test, try out, smoke-test, verify, or confirm that a Slack app built with the Slack CLI (or a plain Bolt app) actually works, by running it in a…
Categories
A skill your agent uses when a developer wants to create, scaffold, or bootstrap a new Slack app or agent from scratch with the Slack CLI. Create Slack App is an agent skill from slackapi/slack-skills-plugin, published by the product's own GitHub organization. Use when a developer wants to create, scaffold, or bootstrap a new Slack app or agent from scratch with the Slack CLI.
Create Slack App fits situations like: A developer wants to create; bootstrap a new Slack app; agent from scratch with the Slack CLI; create a Slack app.
Run `npx skills add slackapi/slack-skills-plugin --skill create-slack-app -a claude-code`. Or copy the skill folder (skills/create-slack-app in slackapi/slack-skills-plugin) into .claude/skills/create-slack-app in your project. Claude Code loads it when a task matches its description.
Run `npx skills add slackapi/slack-skills-plugin --skill create-slack-app -a codex`. Or copy the skill folder (skills/create-slack-app in slackapi/slack-skills-plugin) into .agents/skills/create-slack-app in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add slackapi/slack-skills-plugin --skill create-slack-app -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-slack-app, .gemini/skills/create-slack-app, .github/skills/create-slack-app and .opencode/skills/create-slack-app in your project.
Going by SKILL.md and its folder, Create Slack App needs the command-line tools its instructions call (brew, node and python3) and credentials named ANTHROPIC_API_KEY and OPENAI_API_KEY. Our summary lists: Python 3; Node.js; A credential in ANTHROPIC_API_KEY; A credential in OPENAI_API_KEY.
SKILL.md names 5 domains. As links in the text: api.slack.com, nodejs.org, python.org, slack.com and docs.slack.dev. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Create Slack App is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Create Slack App: Slack Bot Builder (davila7/claude-code-templates, 32k stars), Slack Bot Builder (sickn33/agentic-awesome-skills, 47k stars), Cao Plugin (awslabs/cli-agent-orchestrator, 1.4k stars) and Soul Interview (ldbumble/taskuary, 137 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
slackapi (a GitHub organization, an official publisher) maintains it in slackapi/slack-skills-plugin, which has 145 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.
Source: slackapi/slack-skills-plugin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.