You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Slack Block Kit UI framework for building rich message layouts, modals, and App Home views. Use when constructing blocks arrays, creating modals or App Home views, adding interactive elements, implementing link unfurling with Work Objects, or designing rich message layouts. Covers all 15 block types, 20 interactive elements, composition objects, surfaces, and Work Objects.
67
+
Slack Block Kit UI framework for building rich message layouts, modals, App Home views, and AI agent responses. Use when constructing blocks arrays, creating modals or App Home views, adding interactive elements, implementing link unfurling with Work Objects, streaming agent output, or designing rich message layouts. Covers all 18 block types, 20 interactive elements, composition objects, surfaces, and Work Objects.
@@ -138,6 +142,54 @@ Interactive elements: buttons, select menus, overflow menus, date pickers. Max 2
138
142
139
143
Button styles: `primary` (green), `danger` (red), or omit for default. Use `primary` sparingly — one per set. Action IDs must be unique within the message.
140
144
145
+
### alert
146
+
147
+
Callout for status, risk, confirmation, or urgency. Text accepts `plain_text` or `mrkdwn`. `level`: `default`, `info`, `warning`, `error`, or `success` (defaults to `default`).
Compact, scannable preview for entities, summaries, records, or agent results. At least one of `hero_image`, `title`, `actions`, or `body` is required. There is currently no size attribute.
Fields: `icon` and `hero_image` are image objects; `title`, `subtitle`, and `body` are text objects; `actions` is an array of button elements. Title/subtitle max 150 chars. Body max 200 chars.
178
+
179
+
### carousel
180
+
181
+
Horizontal, scrollable group of card blocks for options, recommendations, search results, or next steps. Must contain 1-10 cards.
Supports: bold, italic, strikethrough, links, headers, ordered/unordered lists, inline code, code blocks, block quotes. Does NOT support: syntax highlighting, horizontal rules, tables, task lists. Cumulative 12,000 char limit per payload. `block_id` is ignored.
273
+
Supports: bold, italic, strikethrough, links, headers, ordered/unordered lists, inline code, code blocks with optional syntax highlighting, block quotes, horizontal rules/dividers, tables, task lists, and character escaping. Images render as hyperlink text. Cumulative 12,000 char limit per payload. `block_id` is ignored. A single markdown block may translate into multiple Slack blocks.
222
274
223
275
### context_actions
224
276
@@ -249,6 +301,22 @@ Container for sequential task cards, designed for AI agent output. Messages only
249
301
250
302
Task status values: `pending`, `in_progress`, `complete`, `error`. Each task is a `task_card` block with optional `details`, `output` (rich_text), and `sources` (url elements).
251
303
304
+
### streaming agent output
305
+
306
+
Use `chat.startStream`, `chat.appendStream`, and `chat.stopStream` for live AI responses. Streamed messages should be replies to a user request (`thread_ts` required on start) and require `chat:write`.
307
+
308
+
`chunks` can include:
309
+
-`markdown_text` chunks for standard Markdown text
310
+
-`task_update` chunks for timeline-style task progress
311
+
-`plan_update` chunks for updating a plan title
312
+
-`blocks` chunks for arrays of Block Kit blocks
313
+
314
+
Set `task_display_mode` on `chat.startStream`:
315
+
-`timeline` (default): tasks appear individually in sequence
316
+
-`plan`: tasks appear grouped in one plan, with the first task placement determining the plan placement
317
+
318
+
`chat.stopStream` can add final `blocks` rendered after streamed `chunks` or `markdown_text`. It has a separate 50-block limit from streamed `blocks` chunks, allowing up to 100 total finalized blocks.
319
+
252
320
### file
253
321
254
322
Remote file reference. Read-only. Cannot be directly added to messages by apps.
@@ -303,6 +371,10 @@ See [references/COMPOSITION.md](references/COMPOSITION.md) for full property tab
@@ -328,6 +400,7 @@ See [references/COMPOSITION.md](references/COMPOSITION.md) for full property tab
328
400
|`text` and `blocks` diverge | Confusing: notification says one thing, chat shows another | Keep semantically aligned |
329
401
| Blocks for simple replies | Visual noise for short responses | Use `text` only for simple replies |
330
402
| 2+ tables in one message |`invalid_attachments` error | One table per message |
403
+
| Using blog-nested `card`/`alert` payloads | Invalid against current reference docs | Put `title`, `body`, `text`, and `level` directly on the block |
331
404
|`mrkdwn` in header text | Ignored — headers only accept `plain_text`| Use `plain_text` type |
332
405
| Long header text | Silently truncated at 150 chars | Keep under 150 |
333
406
| Missing `alt_text` on images | Accessibility failure, API may reject | Always include alt_text |
@@ -387,7 +460,7 @@ Work Objects use `chat.unfurl` with a `metadata` parameter containing entity typ
387
460
| File | Purpose |
388
461
|------|---------|
389
462
|[references/CHEATSHEET.md](references/CHEATSHEET.md)| Quick reference: all blocks, elements, limits at a glance |
390
-
|[references/BLOCKS.md](references/BLOCKS.md)| All 15 block types with full property tables and constraints |
463
+
|[references/BLOCKS.md](references/BLOCKS.md)| All 18 block types with full property tables and constraints |
391
464
|[references/ELEMENTS.md](references/ELEMENTS.md)| All 20 interactive elements with properties and constraints |
0 commit comments