Download Latest Version v3.42.0 source code.tar.gz (4.8 MB)
Email in envelope

Get an email when there's a new version of Python Slack SDK

Home / v3.40.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-02-10 7.8 kB
v3.40.0 source code.tar.gz 2026-02-10 4.8 MB
v3.40.0 source code.zip 2026-02-10 5.4 MB
Totals: 3 Items   10.2 MB 0

Agent Thinking Steps: Display Tasks/Tools, Plans, and Markdown Text

🍿 Preview: Display as Plan

https://github.com/user-attachments/assets/85219072-66ac-4d86-a18b-dd92689036ea

🍿 Preview: Display as Timeline

https://github.com/user-attachments/assets/4cb0bb5f-c70f-4304-b875-4dc262640a67

πŸ“Ί Chat Stream with 2 Display Mode

  • Plan Display Mode
  • Timeline Display Mode

πŸ‘Ύ Chat Stream Structured Content

Now, you can display a mixture of structured content called "chunks":

  • πŸ”  Markdown Text Block to format your text with standard markdown
  • β˜‘οΈ Task Card Block to display a single task, representing an AI Tool Call or general action
  • πŸ—’οΈ Plan Block to display a collection of related tasks
  • πŸ“š URL Sources Element to display references within a task card block

Available in:

  • πŸ”Œ API Methods: chat_startStream, chat_appendStream, and chat_stopStream
  • πŸ›Ÿ Chat Stream Helper: streamer = client.chat_stream(...), streamer.append(...)

πŸ“– Documentation

🍿 Getting Started

:::bash
$ slack create

# β†’ AI Agent App
#     Bolt for JavaScript
#   β†’ Bolt for Python

πŸ•ΉοΈ Example

:::python
streamer = client.chat_stream(
    channel=channel_id,
    recipient_team_id=team_id,
    recipient_user_id=user_id,
    thread_ts=thread_ts,
    task_display_mode="plan",
)

streamer.append(
    chunks=[
        MarkdownTextChunk(
            text="Hello.\nI have received the task. ",
        ),
        MarkdownTextChunk(
            text="This task appears manageable.\nThat is good.",
        ),
        TaskUpdateChunk(
            id="001",
            title="Understanding the task...",
            status="in_progress",
            details="- Identifying the goal\n- Identifying constraints",
        ),
        TaskUpdateChunk(
            id="002",
            title="Performing acrobatics...",
            status="pending",
        ),
    ],
)

time.sleep(4)

streamer.append(
    chunks=[
        PlanUpdateChunk(
            title="Adding the final pieces...",
        ),
        TaskUpdateChunk(
            id="001",
            title="Understanding the task...",
            status="complete",
            details="\n- Pretending this was obvious",
            output="We'll continue to ramble now",
        ),
        TaskUpdateChunk(
            id="002",
            title="Performing acrobatics...",
            status="in_progress",
        ),
    ],
)

time.sleep(4)

streamer.stop(
    chunks=[
        PlanUpdateChunk(
            title="Decided to put on a show",
        ),
        TaskUpdateChunk(
            id="002",
            title="Performing acrobatics...",
            status="complete",
            details="- Jumped atop ropes\n- Juggled bowling pins\n- Rode a single wheel too",
        ),
        MarkdownTextChunk(
            text="The crowd appears to be astounded and applauds :popcorn:"
        ),
    ],
    blocks=create_feedback_block(),
)

What's Changed

πŸš€ Enhancements

πŸ› Bug Fixes

πŸ“š Documentation

πŸ“¦ Dependencies

🧰 Maintenance

Full Changelog: https://github.com/slackapi/python-slack-sdk/compare/v3.39.0...v3.40.0 Milestone: https://github.com/slackapi/python-slack-sdk/milestone/115

Source: README.md, updated 2026-02-10