Skip to main content
skill CX Codex

slack-messaging · slackapi — Claude Code skill: what it does, how to install

Guides AI agents when drafting, formatting, and scheduling messages sent through Slack MCP tools. Prevents broken formatting in channels and threads.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add slackapi/slack-skills-plugin --skill slack-messaging -a claude-code
Open on GitHub

What slack-messaging does

This skill guides models composing text for Slack MCP tools, including slack_send_message, slack_send_message_draft, and slack_schedule_message. The tools accept standard markdown like bold syntax, tables, and fenced code blocks, converting everything on send. Using Slack's legacy mrkdwn syntax will break formatting, so the agent writes standard markdown instead.

Text elements carry a ceiling of roughly 5000 characters. Inline images specified with ![alt](url) do not embed in messages and degrade into plain links. If you need rich interactive cards or buttons, you must use the slack:block-kit skill; for documents with embedded images, use slack_create_canvas.

Scheduling via slack_schedule_message enforces a post_at Unix timestamp between 2 minutes and 120 days ahead. Once scheduled, Slack's API cannot update the message, forcing you to make any edits directly inside the Slack client's Drafts & sent section.

What it helps with

  • Draft clean Slack announcements formatted in standard markdown
  • Schedule future channel alerts via slack_schedule_message
  • Keep channel discussions clean by directing replies into message threads
  • Replace clutter responses with emoji reactions using slack_add_reaction

Example prompts for the agent

  • Draft an announcement for #general with key dates in bold and bullet points.
  • Prepare a threaded reply with a status table using slack_send_message_draft.
  • Schedule a reminder for tomorrow afternoon using slack_schedule_message.

How to install slack-messaging

1Skills CLI (Vercel)

npx skills add slackapi/slack-skills-plugin --skill slack-messaging -a claude-code

2Manually: put the files in place

~/.claude/skills/slack-messaging/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/slack-messaging/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about slack-messaging

How to install slack-messaging in Claude Code?

Run npx skills add slackapi/slack-skills-plugin --skill slack-messaging -a claude-code. The file will be placed in ~/.claude/skills/slack-messaging/SKILL.md.

What does slack-messaging do?

It teaches coding agents formatting conventions and etiquette for Slack MCP message tools. It enforces standard markdown, thread discipline, and scheduling limits.

Can slack-messaging send interactive buttons or images?

No, inline image markdown renders only as plain links in standard messages. Interactive elements like buttons and modals require the slack:block-kit skill instead.

Source text

SKILL.md · MIT
---
name: slack-messaging
description: "Use when writing, drafting, scheduling, or improving a Slack message, announcement, or reply sent via the Slack MCP tools (slack_send_message, slack_send_message_draft, slack_schedule_message). Covers Slack markdown formatting, message structure, thread etiquette, reactions, and scheduling, and points to the right dialect for canvases and Block Kit."
---

# Slack Messaging Best Practices

This skill provides guidance for composing well-formatted, effective Slack messages.

## When to Use

Apply this skill whenever composing, drafting, or helping the user write a Slack message, including when using `slack_send_message`, `slack_send_message_draft`, or `slack_schedule_message`. The formatting rules below cover these message tools. `slack_create_canvas` uses a different, richer markdown dialect — see the Canvas note below.

## Formatting

The message tools (`slack_send_message`, `slack_send_message_draft`, `slack_schedule_message`) accept **standard markdown** and convert it to Slack formatting on send. Write normal markdown. Do **not** use Slack's legacy `mrkdwn` syntax (`*bold*`, `~strike~`); those single-character forms mean something different in standard markdown. Each text element is limited to ~5000 characters.

| Format        | Syntax                 |
| ------------- | ---------------------- |
| Bold          | `**text**`             |
| Italic        | `_text_` (or `*text*`) |
| Strikethrough | `~~text~~`             |
| Code (inline) | `` `code` ``           |
| Quote         | `> text`               |
| Link          | `[display text](url)`  |
| Bulleted list | `- item`               |
| Numbered list | `1. item`              |

Block elements also work. Write them as literal markdown:

- **Code block** with an optional language for syntax highlighting:

  ````text
  ```python
  print("hello")
  ```
  ````

- **Table** with `|` delimiters (escape a literal pipe inside a cell as `\|`):

  ```text
  | Feature | Status |
  |---------|--------|
  | Tables  | works  |
  ```

- **Headers** with `#` / `##` / `###`:

  ```text
  ## Section title
  ```

The one thing that does **not** embed in a message: inline images (`![alt](url)`) typically render as a plain link rather than an inline image. For rich embedded layouts (buttons, images, structured cards) you need Block Kit; for a document-style surface where images do embed, use a canvas. See the Notes below.

## Message Structure Guidelines

- **Lead with the point.** Put the most important information in the first line. Many people read Slack on mobile or in notifications where only the first line shows.
- **Keep it short.** Aim for 1-3 short paragraphs (the ~5000-character limit is a ceiling, not a target). If the message is long or structured, consider a Canvas instead.
- **Use line breaks generously.** Walls of text are hard to read. Separate distinct thoughts with blank lines.
- **Use bullet points for lists.** Anything with 3+ items should be a list, not a run-on sentence.
- **Bold key information.** Use `**bold**` for names, dates, deadlines, and action items so they stand out when scanning.

## Thread vs. Channel Etiquette

- **Reply in threads** when responding to a specific message to keep the main channel clean.
- **Use `reply_broadcast`** (also post to channel) only when the reply contains information everyone needs to see.
- **Post in the channel** (not a thread) when starting a new topic, making an announcement, or asking a question to the whole group.
- **Don't start a new thread** to continue an existing conversation; find and reply to the original message.

## Tone and Audience

- Match the tone to the channel: `#general` is usually more formal than `#random`.
- For simple acknowledgments, add an emoji reaction with `slack_add_reaction` instead of a reply message (use `slack_get_reactions` to read existing reactions).
- When writing announcements, use a clear structure: context, key info, call to action.

## Scheduling

- Use `slack_schedule_message` to post later. `post_at` is a Unix timestamp that must be at least 2 minutes in the future and at most 120 days out; the message body uses the same standard markdown as above.
- Scheduled messages can't be edited via the API once set — the user manages them from **Drafts & sent** in Slack.

## Notes

- **Canvas formatting is different.** `slack_create_canvas` uses Canvas-flavored Markdown, a richer dialect than the message tools: headers, tables, checklists, and inline images (`![alt](url)`) all embed, and it also supports user/channel reference cards, callouts, and columns. Do **not** assume the message rules above apply — follow the `slack_create_canvas` tool's own formatting guidance when composing a canvas.
- **Scope:** this skill owns composing and formatting the _text_ of messages sent through the Slack MCP message tools. For interactive layouts (buttons, menus, modals, Home tabs, or any Block Kit JSON), use the `slack:block-kit` skill, which composes and validates the block payload. For calling the Slack Web API directly (`chat.postMessage` and friends) rather than the MCP tools, use the `slack:slack-api` skill.

© slackapi · MIT · slackapi/slack-skills-plugin

Similar skills

All skills for Agent setup: memory, context, orchestration →

slack-messaging by other authors comes first.

From the same set4

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor