[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-DonDebonair--slack-machine":3,"tool-DonDebonair--slack-machine":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":82,"owner_website":83,"owner_url":84,"languages":85,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":23,"env_os":94,"env_gpu":95,"env_ram":95,"env_deps":96,"category_tags":100,"github_topics":101,"view_count":23,"oss_zip_url":82,"oss_zip_packed_at":82,"status":16,"created_at":112,"updated_at":113,"faqs":114,"releases":145},1365,"DonDebonair\u002Fslack-machine","slack-machine","A simple, yet powerful and extendable Slack bot","slack-machine 是一款用 Python 写的 Slack 机器人框架，几行代码就能让 Slack 变成“聊天运维”中心。它自带插件体系，你只需写正则表达式，就能监听消息、执行指令、发私信、弹模态框、存数据、定时任务等，完全不用管网络暴露或底层协议。\n\n它解决了传统 Slack bot 开发门槛高、代码分散、难维护的问题：内置 Socket Mode，无需公网服务器；提供高阶 API 快速上手，也保留低阶 API 给需要深度定制的场景；支持 Redis、DynamoDB、SQLite 等多种存储，方便持久化数据。\n\n适合会用 Python 的开发者、运维工程师或 DevOps 团队，想把日常部署、监控、查询等操作搬进 Slack 对话里，让同事“@机器人”就能完成工作。对研究人员来说，也能轻松做出交互式实验助手。\n\n亮点：完全异步（AsyncIO）保证高并发性能；插件即 Python 类，逻辑清晰易扩展；支持 Slack 最新的 Block Kit、交互组件和模态窗口，界面体验丰富。","# Slack Machine\n\n[![Join the chat at Slack](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fchat-slack-green?logo=slack&logoColor=white)](https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fslack-machine-chat\u002Fshared_invite\u002Fzt-398eow0ok-mqXTOMVGlSKAcMtR53UZMQ)\n[![image](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fslack-machine.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fslack-machine)\n[![image](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fl\u002Fslack-machine.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fslack-machine)\n[![image](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fslack-machine.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fslack-machine)\n[![CI Status](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Factions\u002Fworkflows\u002Fci.yml)\n[![image](https:\u002F\u002Fcodecov.io\u002Fgh\u002FDonDebonair\u002Fslack-machine\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002FDonDebonair\u002Fslack-machine)\n\nSlack Machine is a simple, yet powerful and extendable Slack bot framework. More than just a bot, Slack\nMachine is a framework that helps you develop your Slack workspace into a ChatOps powerhouse. Slack Machine is built\nwith an intuitive plugin system that lets you build bots quickly, but also allows for easy code organization. A\nplugin can look as simple as this:\n\n```python\nfrom machine.plugins.base import MachineBasePlugin\nfrom machine.plugins.message import Message\nfrom machine.plugins.decorators import respond_to\n\n\nclass DeploymentPlugin(MachineBasePlugin):\n    \"\"\"Deployments\"\"\"\n\n    @respond_to(r\"deploy (?P\u003Capplication>\\w+) to (?P\u003Cenvironment>\\w+)\")\n    async def deploy(self, msg: Message, application, environment):\n        \"\"\"deploy \u003Capplication> \u003Cenvironment>: deploy application to target environment\"\"\"\n        await msg.say(f\"Deploying {application} to {environment}\")\n```\n\n## _Breaking Changes_\n\n**Dropped support for Python 3.8** (v0.38.0)\n\nAs of [v0.38.0](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Freleases\u002Ftag\u002Fv0.38.0), support for Python 3.8 has been\ndropped. Python 3.8 has reached end-of-life on 2024-10-07.\n\n## Features\n\n- Get started with mininal configuration\n- Built on top of the [Slack Events API](https:\u002F\u002Fapi.slack.com\u002Fapis\u002Fconnections\u002Fevents-api) for smoothly responding\n  to events in semi real-time. Uses [Socket Mode](https:\u002F\u002Fapi.slack.com\u002Fapis\u002Fconnections\u002Fsocket) so your bot doesn't\n  need to be exposed to the internet!\n- Support for rich interactions using the [Slack Web API](https:\u002F\u002Fapi.slack.com\u002Fweb)\n- High-level API for maximum convenience when building plugins\n- Low-level API for maximum flexibility\n- Built on top of [AsyncIO](https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Fasyncio.html) to ensure good performance by handling\n  communication with Slack concurrently\n\n### Plugin API features:\n\n- Listen and respond to any regular expression\n- Respond to Slash Commands\n- Capture parts of messages to use as variables in your functions\n- Respond to messages in channels, groups and direct message conversations\n- Respond with reactions\n- Respond in threads\n- Respond with ephemeral messages\n- Send DMs to any user\n- Support for [blocks](https:\u002F\u002Fapi.slack.com\u002Freference\u002Fblock-kit\u002Fblocks)\n- Support for [message attachments](https:\u002F\u002Fapi.slack.com\u002Fdocs\u002Fmessage-attachments) [Legacy 🏚]\n- Support for [interactive elements](https:\u002F\u002Fapi.slack.com\u002Fblock-kit)\n- Support for [modals](https:\u002F\u002Fapi.slack.com\u002Fsurfaces\u002Fmodals)\n- Listen and respond to any [Slack event](https:\u002F\u002Fapi.slack.com\u002Fevents) supported by the Events API\n- Store and retrieve any kind of data in persistent storage (currently Redis, DynamoDB, SQLite and in-memory storage are\n  supported)\n- Schedule actions and messages\n- Emit and listen for events\n- Help texts for Plugins\n\n### Coming Soon\n\n- Support for shortcuts\n- ... and much more\n\n## Installation\n\nYou can add Slack Machine to your uv project by running:\n\n```bash\nuv add slack-machine\n```\n\nor add it to your [Poetry](https:\u002F\u002Fpython-poetry.org\u002F) project:\n\n```bash\npoetry add slack-machine\n```\n\nLastly, you can install it using pip (not recommended):\n\n``` bash\n$ pip install slack-machine\n```\n\nIt is **strongly recommended** that you install `slack-machine` inside a\n[virtual environment](https:\u002F\u002Fdocs.python.org\u002F3\u002Ftutorial\u002Fvenv.html)!\n\n## Usage\n\n1. Create a directory for your Slack Machine bot: `mkdir my-slack-bot && cd my-slack-bot`\n2. Add a `local_settings.py` file to your bot directory: `touch local_settings.py`\n3. Create a new app in Slack: \u003Chttps:\u002F\u002Fapi.slack.com\u002Fapps>\n4. Choose to create an app from an _App manifest_\n5. Copy\u002Fpaste the following manifest: [`manifest.yaml`](docs\u002Fextra\u002Fmanifest.yaml)\n6. Add the Slack App and Bot tokens to your `local_settings.py` like this:\n\n    ``` title=\"local_settings.py\"\n    SLACK_APP_TOKEN = \"xapp-my-app-token\"\n    SLACK_BOT_TOKEN = \"xoxb-my-bot-token\"\n    ```\n\n7. Start the bot with `slack-machine`\n8. ...\n9. Profit!\n\n## Documentation\n\nYou can find the documentation for Slack Machine here: https:\u002F\u002Fdondebonair.github.io\u002Fslack-machine\u002F\n\nGo read it to learn how to properly configure Slack Machine, write plugins, and more!\n\nThere is also an example plugin that shows off many of the features of Slack Machine:\n[Slack Machine Kitchensink Plugin](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fsm-kitchensink-plugin)\n","# Slack 机器\n\n[![加入 Slack 聊天](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fchat-slack-green?logo=slack&logoColor=white)](https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fslack-machine-chat\u002Fshared_invite\u002Fzt-398eow0ok-mqXTOMVGlSKAcMtR53UZMQ)\n[![图片](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fslack-machine.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fslack-machine)\n[![图片](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fl\u002Fslack-machine.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fslack-machine)\n[![图片](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fslack-machine.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fslack-machine)\n[![CI 状态](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Factions\u002Fworkflows\u002Fci.yml)\n[![图片](https:\u002F\u002Fcodecov.io\u002Fgh\u002FDonDebonair\u002Fslack-machine\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002FDonDebonair\u002Fslack-machine)\n\nSlack 机器是一个简单却强大、且可扩展的 Slack 机器人框架。它不仅仅是一款机器人，更是一个能助您将 Slack 工作区打造成为 ChatOps 强国的框架。Slack 机器采用直观的插件系统，让您能够快速构建机器人，同时还能轻松实现代码的高效组织。一个插件可能看起来如下所示：\n\n```python\nfrom machine.plugins.base import MachineBasePlugin\nfrom machine.plugins.message import Message\nfrom machine.plugins.decorators import respond_to\n\n\nclass DeploymentPlugin(MachineBasePlugin):\n    \"\"\"部署\"\"\"\n\n    @respond_to(r\"deploy (?P\u003Capplication>\\w+) to (?P\u003Cenvironment>\\w+)\")\n    async def deploy(self, msg: Message, application, environment):\n        \"\"\"部署 \u003Capplication> \u003Cenvironment>: 将应用部署到目标环境\"\"\"\n        await msg.say(f\"正在将 {application} 部署到 {environment}\")\n```\n\n## _重大变更_\n\n**已弃用对 Python 3.8 的支持**（v0.38.0）\n\n自 [v0.38.0](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Freleases\u002Ftag\u002Fv0.38.0) 起，我们已不再支持 Python 3.8。Python 3.8 于 2024 年 10 月 7 日正式停止维护。\n\n## 功能特性\n\n- 通过极简配置即可上手使用\n- 基于 [Slack 事件 API](https:\u002F\u002Fapi.slack.com\u002Fapis\u002Fconnections\u002Fevents-api) 构建，可流畅地响应半实时事件。采用 [Socket 模式](https:\u002F\u002Fapi.slack.com\u002Fapis\u002Fconnections\u002Fsocket)，因此您的机器人无需暴露在互联网中！\n- 支持通过 [Slack Web API](https:\u002F\u002Fapi.slack.com\u002Fweb) 进行丰富的交互操作\n- 提供高阶 API，让插件开发更加便捷\n- 提供低阶 API，以实现更高的灵活性\n- 基于 [AsyncIO](https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Fasyncio.html) 构建，确保通过并发处理与 Slack 的通信，从而获得卓越的性能\n\n### 插件 API 特性：\n\n- 可监听并响应任意正则表达式\n- 可响应斜杠命令\n- 可捕获消息中的特定部分，并将其作为变量用于函数中\n- 可响应频道、群组以及私信对话中的消息\n- 可通过反应进行回复\n- 可在讨论串中作出回应\n- 可发送临时消息\n- 可向任意用户发送私信\n- 支持 [块](https:\u002F\u002Fapi.slack.com\u002Freference\u002Fblock-kit\u002Fblocks)\n- 支持 [消息附件](https:\u002F\u002Fapi.slack.com\u002Fdocs\u002Fmessage-attachments) [旧版 🏚]\n- 支持 [互动元素](https:\u002F\u002Fapi.slack.com\u002Fblock-kit)\n- 支持 [模态框](https:\u002F\u002Fapi.slack.com\u002Fsurfaces\u002Fmodals)\n- 可监听并响应任何由事件 API 所支持的 [Slack 事件](https:\u002F\u002Fapi.slack.com\u002Fevents)\n- 可在持久化存储中存储和检索各类数据（目前支持 Redis、DynamoDB、SQLite 以及内存存储）\n- 可安排任务与消息执行\n- 可发出并监听事件\n- 提供插件帮助文本\n\n### 即将推出\n\n- 支持快捷键\n- ... 以及更多功能\n\n## 安装\n\n您可以通过运行以下命令，将 Slack 机器添加到您的 uv 项目中：\n\n```bash\nuv add slack-machine\n```\n\n或者将其添加到您的 [Poetry](https:\u002F\u002Fpython-poetry.org\u002F) 项目中：\n\n```bash\npoetry add slack-machine\n```\n\n最后，您也可以使用 pip 进行安装（不推荐）：\n\n``` bash\n$ pip install slack-machine\n```\n\n强烈建议您在 **虚拟环境** 中安装 `slack-machine`！（请参阅 [Python 文档](https:\u002F\u002Fdocs.python.org\u002F3\u002Ftutorial\u002Fvenv.html) 了解如何创建虚拟环境）\n\n## 使用方法\n\n1. 在您的 Slack 机器机器人目录中创建一个文件夹：`mkdir my-slack-bot && cd my-slack-bot`\n2. 在机器人目录中添加一个 `local_settings.py` 文件：`touch local_settings.py`\n3. 在 Slack 中创建一个新的应用：\u003Chttps:\u002F\u002Fapi.slack.com\u002Fapps>\n4. 选择从“应用清单”中创建应用\n5. 复制并粘贴以下应用清单：[`manifest.yaml`](docs\u002Fextra\u002Fmanifest.yaml)\n6. 将 Slack 应用和机器人令牌添加到您的 `local_settings.py` 中，如下所示：\n\n    ``` title=\"local_settings.py\"\n    SLACK_APP_TOKEN = \"xapp-my-app-token\"\n    SLACK_BOT_TOKEN = \"xoxb-my-bot-token\"\n    ```\n\n7. 使用 `slack-machine` 启动机器人\n8. ...\n9. 享受乐趣吧！\n\n## 文档\n\n您可以在此处查看 Slack 机器的官方文档：https:\u002F\u002Fdondebonair.github.io\u002Fslack-machine\u002F\n\n快去阅读一下，学习如何正确配置 Slack 机器、编写插件，以及更多实用技巧！\n\n此外，还有一个示例插件，充分展示了 Slack 机器的诸多功能：\n[Slack 机器厨房插件](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fsm-kitchensink-plugin)","## Slack Machine 快速上手指南\n\n### 环境准备\n- **Python 版本**：≥ 3.9（不再支持 3.8）\n- **系统**：Linux \u002F macOS \u002F Windows WSL\n- **网络**：可访问 Slack API（无需公网 IP，使用 Socket Mode）\n\n### 安装步骤\n1. 创建虚拟环境（推荐）\n   ```bash\n   python -m venv venv\n   source venv\u002Fbin\u002Factivate  # Windows: venv\\Scripts\\activate\n   ```\n\n2. 安装 slack-machine  \n   使用 uv（最快）  \n   ```bash\n   uv add slack-machine\n   ```\n   或使用 Poetry  \n   ```bash\n   poetry add slack-machine\n   ```\n   或使用 pip  \n   ```bash\n   pip install slack-machine\n   ```\n\n### 基本使用\n1. 新建项目目录  \n   ```bash\n   mkdir my-slack-bot && cd my-slack-bot\n   ```\n\n2. 创建配置文件  \n   ```bash\n   touch local_settings.py\n   ```\n\n3. 在 [Slack API 控制台](https:\u002F\u002Fapi.slack.com\u002Fapps) 创建 App  \n   - 选择「From an app manifest」  \n   - 粘贴 [manifest.yaml](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fblob\u002Fmain\u002Fdocs\u002Fextra\u002Fmanifest.yaml)\n\n4. 获取并写入 Token  \n   在 `local_settings.py` 中填入：  \n   ```python\n   SLACK_APP_TOKEN = \"xapp-1-...\"\n   SLACK_BOT_TOKEN = \"xoxb-...\"\n   ```\n\n5. 启动机器人  \n   ```bash\n   slack-machine\n   ```\n\n6. 在 Slack 中 @机器人 发送  \n   ```\n   deploy myapp to prod\n   ```\n   机器人将回复  \n   ```\n   Deploying myapp to prod\n   ```\n\n完成！更多插件开发示例见 [官方文档](https:\u002F\u002Fdondebonair.github.io\u002Fslack-machine\u002F)。","一家 30 人的 SaaS 初创公司，运维和开发混用同一个 Slack 工作区，每天要在 5 套环境（dev \u002F test \u002F staging \u002F prod \u002F hotfix）里做 20+ 次微服务发布。\n\n### 没有 slack-machine 时\n- 发布流程全靠人：工程师在 #deploy 频道手动贴命令，格式五花八门，经常漏掉镜像 tag 或环境名。  \n- 权限难管控：谁都能贴命令，新人误把 prod 打成 prdo，一次回滚损失 30 分钟。  \n- 状态不透明：发布进度分散在 5 个线程里，产品经理得不停 @ 人问“上线好了吗？”  \n- 事后难追溯：回滚时找不到当时的镜像版本，只能去 Jenkins 翻 200 条构建记录。  \n\n### 使用 slack-machine 后\n- 一条消息完成发布：在任意频道输入 `@bot deploy auth-service to staging`，slack-machine 的插件自动校验参数、调用 Argo CD API，并实时回传 rollout 状态。  \n- 权限即代码：插件读取 Slack 用户组，只有 @sre-team 成员能操作 prod，其余环境开放给开发，误操作直接拒绝并提示正确格式。  \n- 进度聚合推送：bot 在父消息下持续更新线程，把每个 Pod 的 readiness 探针结果以 Block Kit 表格形式展示，产品经理订阅线程即可“静默围观”。  \n- 一键溯源：发布完成后，bot 把镜像 tag、Git commit、Jenkins build URL 自动写进 #deploy-log 频道，并同步到 Redis，回滚时输入 `@bot rollback auth-service` 即可 10 秒内定位上一版本。  \n\nslack-machine 把零散的聊天指令变成了可审计、可扩展的 ChatOps 流水线，让发布像发消息一样简单可靠。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDonDebonair_slack-machine_b4d38619.png","DonDebonair","Daan Debie","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FDonDebonair_5dceafe0.jpg","Fractional\u002FInterim CTO\u002FTechnology Leader","Fractology.tech","Zandvoort, The Netherlands","daan@dv.email",null,"https:\u002F\u002Fwww.daan.fyi","https:\u002F\u002Fgithub.com\u002FDonDebonair",[86],{"name":87,"color":88,"percentage":89},"Python","#3572A5",100,769,55,"2026-03-30T05:51:07","MIT","Linux, macOS, Windows","未说明",{"notes":97,"python":98,"dependencies":99},"强烈建议在虚拟环境中安装；需先在 Slack 创建 App 并获取 SLACK_APP_TOKEN 与 SLACK_BOT_TOKEN；支持 Redis、DynamoDB、SQLite 或内存作为持久化存储；使用 Socket Mode 无需公网暴露即可接收事件；基于 AsyncIO 实现并发处理","3.9+（已放弃对 3.8 的支持）",[67],[54,13,14,15,26,53],[102,103,104,105,106,107,108,109,110,111],"slack","slack-bot","slackbot","slack-api","slackapi","python","ai","bot","bot-framework","chatbot","2026-03-27T02:49:30.150509","2026-04-06T05:36:40.952363",[115,120,125,130,135,140],{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},6258,"Bot 每隔几天就掉线，如何排查？","升级到 v0.19.2 及以上版本后，大部分掉线问题已解决。若仍出现，请检查：\n1. 确认已升级到最新版 `pip install -U slack-machine`\n2. 若使用 bottle 作为 Web 框架，注意 #292 中提到的兼容性问题\n3. 观察日志是否出现 `websocket_safe_read` 相关异常，必要时重启进程并配合 supervisor\u002Fsystemd 自动拉起","https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fissues\u002F54",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},6259,"启动时报 `AttributeError: 'NoneType' object has no attribute 'recv'` 怎么办？","该错误通常表示 Slack Token 无效或网络连接失败。请按以下步骤排查：\n1. 确认 `SLACK_BOT_TOKEN` 以 `xoxb-` 开头且未过期\n2. 检查防火墙或代理是否阻止 WebSocket 连接\n3. 在本地用 curl 测试 `https:\u002F\u002Fslack.com\u002Fapi\u002Frtm.connect?token=YOUR_TOKEN` 看是否返回正常 JSON\n4. 若使用 Python 3.6+，建议升级到最新 slack-machine 版本以获得更好的错误提示","https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fissues\u002F1",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},6260,"在 2000+ 用户的大型 Slack 工作区里收不到事件，如何调试？","大型工作区常见原因是被 Slack 限流：\n1. 先确认 Bot 已加入目标频道，并拥有 `channels:history`、`chat:write` 等必要权限\n2. 检查日志是否出现 `rate_limited` 关键字\n3. 临时解决方案：新建一个 Bot 用户，使用完全相同的 OAuth Scope 重新授权，通常可立即恢复\n4. 长期方案：在代码里增加指数退避重试，或迁移到 Events API 以降低 RTM 连接压力","https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fissues\u002F1178",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},6261,"如何把 slack-machine 作为库嵌入到我的主程序里，而不是单独进程？","已支持以库方式调用：\n```python\nfrom machine.core import Machine\n\nbot = Machine(settings='local_settings.py')  # 或传入 dict\nbot.run()  # 会阻塞，可在 Thread 中运行\n```\n如需更细粒度控制，可直接实例化 `machine.asyncio.Machine` 并使用 `asyncio.create_task(bot.start())` 在事件循环中运行。官方文档已补充相关示例。","https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fissues\u002F31",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},6262,"现在支持异步插件吗？","从 v0.26.0 开始全面支持 async\u002Fawait：\n1. 使用 `from machine.asyncio import Machine` 创建异步实例\n2. 插件方法可直接声明为 `async def` 并使用 `await`\n3. 装饰器 `@process`、`@respond_to` 等均已兼容异步\n4. 官方已将所有核心代码迁移到 `machine.asyncio` 包，并通过了 MyPy 类型检查","https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fissues\u002F591",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},6263,"如何接收 Slack Slash Commands？","v0.33.0 起内置支持：\n1. 在 Slack App 配置页面添加 Slash Command，并设置请求 URL 为 `https:\u002F\u002Fyour-bot.com\u002Fslack\u002Fcommands`\n2. 在插件里使用装饰器：\n```python\nfrom machine.plugins.decorators import command\n\n@command('\u002Fhello')\ndef hello_command(self, command):\n    return {'text': f'Hello {command[\"user_name\"]}!'}  # 同步\n\n@command('\u002Fstats')\nasync def stats_command(self, command):\n    return {'text': await self.build_stats()}  # 异步\n```\n3. 确保 `local_settings.py` 中 `HTTP_SERVER_ENABLED = True` 并正确配置 `HTTP_HOST` \u002F `HTTP_PORT`","https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fissues\u002F35",[146,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241],{"id":147,"version":148,"summary_zh":149,"released_at":150},105825,"v0.40.1","### Changed\r\n\r\n- Bumped various dependencies\r\n\r\n### Fixed\r\n\r\n- Update `enterprise` model type to adhere to the Slack API (#1260 by @AlexanderOtavka)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.40.0...v0.40.1","2025-08-20T18:36:05",{"id":152,"version":153,"summary_zh":154,"released_at":155},105826,"v0.40.0","### Changed\r\n\r\n- Replace Poetry with [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F) (#1218)\r\n- Replace Tox with [Nox](https:\u002F\u002Fnox.thea.codes) (#1218)\r\n- Replace Dependabot with [Renovate](https:\u002F\u002Fwww.mend.io\u002Frenovate\u002F) (#1220)\r\n- Bump `pydantic` from 2.10.0 to 2.10.1\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.39.0...v0.40.0","2024-11-24T14:34:09",{"id":157,"version":158,"summary_zh":159,"released_at":160},105827,"v0.39.0","### Added\r\n\r\n- Add support for [modals](https:\u002F\u002Fapi.slack.com\u002Fsurfaces\u002Fmodals) (#1052, fixes #1036)\r\n\r\n### Changed\r\n\r\n- Bump `slack-sdk` from 3.33.3 to 3.33.4 (fixes incompatibility with newer versions of `aiohttp`)\r\n- Bump `pydantic` from 2.9.2 to 2.10.0\r\n- Bump `aiohttp` from 3.10.11 to 3.11.7\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.38.1...v0.39.0","2024-11-22T16:31:06",{"id":162,"version":163,"summary_zh":164,"released_at":165},105828,"v0.38.1","### Fixed\r\n\r\n- `aiohttp` versions 3.11.0 and higher were causing issues, so `aiohttp` is temporarily restricted to versions \u003C 3.11\r\n  ([#1201](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F1201))\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.38.0...v0.38.1","2024-11-17T12:14:33",{"id":167,"version":168,"summary_zh":169,"released_at":170},105829,"v0.38.0","### Added\r\n\r\n- Add Python 3.13 support (#1199)\r\n\r\n### Changed\r\n\r\n- Bump `slack-sdk` from 3.27.2 to 3.33.3\r\n- Bump `pydantic` from 2.7.1 to 2.9.2\r\n- Bump `structlog` from 24.1.0 to 24.4.0\r\n- Bump `redis` from 5.0.4 to 5.2.0\r\n- Bump `hiredis` from 2.3.2 to 3.0.0\r\n- Bump `aioboto3` from 12.4.0 to 13.2.0\r\n- Bump `urllib3` from 1.26.18 to 1.26.19\r\n- Bump `httpx` from 0.27.0 to 0.27.2\r\n- Bump `multidict` from 6.0.5 to 6.1.0\r\n- Bump `cryptography` from 42.0.4 to 43.0.1\r\n- Bump `aiohttp` from 3.9.5 to 3.10.11\r\n- Bump `tzdata` from 2024.1 to 2024.2\r\n- Bump `dill` from 0.3.8 to 0.3.9\r\n\r\n### Fixed\r\n\r\n- Add rate limit handling to Slack client to improve Slack Machine's resilience when interacting with Slack's API,\r\n  especially when working with large workspaces (#1194 by @sprutner and @jasonwbarnett)\r\n\r\n### Removed\r\n\r\n- **Breaking:** Remove Python 3.8 support (#1199)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.37.0...v0.38.0","2024-11-16T15:50:34",{"id":172,"version":173,"summary_zh":174,"released_at":175},105830,"v0.37.0","### Added\r\n\r\n- Support for **Block actions**, coming from interactive elements from [Block Kit](https:\u002F\u002Fapi.slack.com\u002Fblock-kit)\r\n  ([#1034](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F1034) with help from @pawelros)\r\n\r\n### Changed\r\n\r\n- Bump `slack-sdk` from 3.27.1 to 3.27.2\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.36.0...v0.37.0","2024-05-26T13:52:20",{"id":177,"version":178,"summary_zh":179,"released_at":180},105831,"v0.36.0","### Added\r\n\r\n- Replace `flake8`, `isort` and `black` with `ruff` ([#1027](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F1027))\r\n- Add Python 3.12 ([#1028](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F1028))\r\n\r\n### Changed\r\n\r\n- Update Github Actions ([#1008](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F1008))\r\n- Bump `slack-sdk` from 3.21.3 to 3.27.1\r\n- Bump `httpx` from 0.24.1 to 0.27.0\r\n- Bump `pydantic` from 2.3.0 to 2.7.1\r\n- Bump `cryptography` from 41.0.3 to 42.0.4\r\n- Bump `aiohttp` from 3.8.5 to 3.9.5\r\n- Bump `urllib3` from 1.26.16 1.26.18\r\n- Bump `structlog` from 23.1.0 to 24.1.0\r\n- Bump `redis` from 5.0.0 to 5.0.4\r\n- Bump `pyee` from 11.0.0 to 11.1.0\r\n- Bump `aioboto3` from 11.3.0 to 12.4.0\r\n- Bump `tzdata` from 2023.3 to 2024.1\r\n- Bump `aiosqlite` from 0.19.0 to 0.20.0\r\n- Bump `hiredis` from 2.2.3 to 2.3.2\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.35.0...v0.36.0","2024-05-04T21:22:01",{"id":182,"version":183,"summary_zh":184,"released_at":185},105832,"v0.35.0","### Added\r\n\r\n- Incoming requests\u002Fevents from Slack that the Slack App is subscribed to, will be logged when `LOGLEVEL` is set to\r\n  `DEBUG` ([#876](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F876))\r\n\r\n### Changed\r\n\r\n- **Breaking:** the optional `init()` method of plugins is now expected to be `async`. This allows plugin authors to\r\n  interact with Slack during plugin initialization through Slack Machine's plugin API.\r\n  ([#868](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F868))\r\n- Standard app manifest for Slack Machine now also enables listening for the `app_home_opened` event\r\n- Bump `aiosqlite` from 0.18.0 to 0.19.0\r\n- Bump `apscheduler` from 3.10.1 to 3.10.4\r\n- Bump `redis` from 4.6.0 to 5.0.0\r\n- Bump `pyee` from 10.0.2 to 11.0.0\r\n- Bump `pydantic` from 2.2.1 to 2.3.0\r\n\r\n### Fixed\r\n\r\n- Use conversations_setTopic instead of channels_setTopic for setting channel topic\r\n  ([#869](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F869) by @jogendra)\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.34.2...v0.35.0","2023-09-03T16:57:35",{"id":187,"version":188,"summary_zh":189,"released_at":190},105833,"v0.34.2","### Fixed\r\n\r\n- Users indexed by email and related functions are now exposed through the plugin interface\r\n  ([#852](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F852))\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.34.1...v0.34.2","2023-08-13T21:06:07",{"id":192,"version":193,"summary_zh":194,"released_at":195},105834,"v0.34.1","### Added\r\n\r\n- Slack users are now indexed by their email as well, allowing fast lookups by email\r\n  ([#849](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F849))\r\n\r\n### Fixed\r\n\r\n- All logging in Slack Machine is now done through structlog instead of the Python stdlib logger\r\n  ([#850](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F850))\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.34.0...v0.34.1","2023-08-13T20:43:26",{"id":197,"version":198,"summary_zh":199,"released_at":200},105835,"v0.34.0","### Added\r\n\r\n- Add support to set topic on channels ([#839](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F839) by @jogendra)\r\n- Add SQLite storage backend ([#844](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F844) by @cp-richard)\r\n\r\n### Changed\r\n\r\n- Bump `httpx` from 0.24.0 to 0.24.1\r\n- Bump `aiohttp` from 3.8.4 to 3.8.5\r\n- Bump `certifi` from 2022.12.7 to 2023.7.22\r\n- Bump `pyee` from 9.1.0 to 10.0.2\r\n- Bump `pydantic` from 1.10.7 to 2.1.1 ([#840](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F840))\r\n\r\n### Removed\r\n\r\n- **Breaking:** Remove Python 3.7 support ([#846](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F846))\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.33.0...v0.34.0","2023-08-13T15:51:35",{"id":202,"version":203,"summary_zh":204,"released_at":205},105836,"v0.33.0","### Added\r\n\r\n- Add support for [slash commands](https:\u002F\u002Fapi.slack.com\u002Finteractivity\u002Fslash-commands) ([#787](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F787))\r\n\r\n### Changed\r\n\r\n- **Breaking:** move `Message` class from `machine.plugins.base` to `machine.plugins.message`\r\n- Use dots only for referencing the fully-qualified name of classes and functions instead of using a colon before\r\n  the class name\r\n- Bump `tzdata` from 2022.6 to 2023.3\r\n- Bump `slack-sdk` from 3.19.4 to 3.21.3\r\n- Bump `aioboto3` from 10.1.0 to 11.2.0\r\n- Bump `aiohttp` from 3.8.3 to 3.8.4\r\n- Bump `redis` from 4.3.5 to 4.5.5\r\n- Bump `hiredis` from 2.0.0 to 2.2.3\r\n- Bump `pydantic` from 1.10.2 to 1.10.7\r\n- Bump `httpx` from 0.23.1 to 0.24.0\r\n- Bump `apscheduler` from 3.9.1.post1 to 3.10.1\r\n- Bump `structlog` from 22.3.0 to 23.1.0\r\n- Bump `pyee` from 9.0.4 to 9.1.0\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.32.0...v0.33.0","2023-05-15T21:18:39",{"id":207,"version":208,"summary_zh":209,"released_at":210},105837,"v0.32.0","### Added\r\n\r\n- Add Python 3.11 support ([#676](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F676))\r\n- Expose web client of Slack SDK ([#677](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F677))\r\n\r\n### Changed\r\n\r\n- Bump `dill` from 0.3.5.1 to 0.3.6\r\n- Bump `slack-sdk` from 3.19.1 to 3.19.4\r\n- Bump `tzdata` from 2022.5 to 2022.6\r\n- Bump `apscheduler` from 3.9.1 to 3.9.1.post1\r\n- Bump `httpx` from 0.23.0 to 0.23.1\r\n- Bump `redis` from 4.3.4 to 4.3.5\r\n- Bump `structlog` from 22.1.0 to 22.3.0\r\n\r\n### Fixed\r\n\r\n- Fix documentation typos ([#665](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F665) by @bennylu2)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.31.0...v0.32.0","2022-11-27T17:18:21",{"id":212,"version":213,"summary_zh":214,"released_at":215},105838,"v0.31.0","### Changed\r\n\r\n- Moved Slack Machine community chat to [Slack](https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fslack-machine-chat\u002Fshared_invite\u002Fzt-1g87tzvlf-8bV_WnY3JZyaYNnRFwRd~w)\r\n- Type-hint coverage is now 100% so mypy is happy ([#633](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F633))\r\n- Update _pyproject.toml_ to conform to Poetry 1.2 dependency specification ([#657](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F657))\r\n- Replace `dacite` with `pydantic` to create models for Slack API interactions ([#659](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F659))\r\n- Bump `aiohttp` from 3.8.1 to 3.8.3\r\n- Bump `slack-sdk` from 3.18.3 to 3.19.1\r\n- Bump `tzdata` from 2022.4 to 2022.5\r\n- Bump `aioboto3` from 10.0.0 to 10.1.0\r\n- Add changelog to keep track of updates\r\n- Move to [structlog](https:\u002F\u002Fwww.structlog.org) for logging, fixes [#599](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fissues\u002F599) ([#663](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F663))\r\n\r\n### Removed\r\n\r\n- Remove unused settings: `DISABLE_HTTP`, `HTTP_SERVER_HOST`, `HTTP_SERVER_PORT`, `HTTP_SERVER_BACKEND`, `HTTPS_PROXY`, `KEEP_ALIVE`\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.30.0...v0.31.0","2022-10-21T15:17:16",{"id":217,"version":218,"summary_zh":219,"released_at":220},105839,"v0.30.0","### Changed\r\n\r\n- Bump `slack-sdk` from 3.18.1 to 3.18.3 ([#619](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F619))\r\n\r\n### Removed\r\n\r\n- **Breaking:** Remove sync version, it's all async now baby! :dancing_men: \r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.28.2...v0.30.0","2022-10-19T22:09:30",{"id":222,"version":223,"summary_zh":224,"released_at":225},105840,"v0.28.2","## [0.28.2] - 2022-08-30\r\n\r\n### Changed\r\n\r\n- Make handling changed message configurable in async mode ([#613](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F613))\r\n- Add tests for slack client ([#614](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F614))\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.28.1...v0.28.2","2022-10-19T22:05:27",{"id":227,"version":228,"summary_zh":229,"released_at":230},105841,"v0.28.1","### Added\r\n\r\n- Add support for pinning\u002Funpinning of messages ([#611](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F611))\r\n\r\n### Changed\r\n\r\n- Add support for listening to message change events ([#594](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F594) with help from @cchadowitz-pf)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.28.0...v0.28.1","2022-10-19T22:03:21",{"id":232,"version":233,"summary_zh":234,"released_at":235},105842,"v0.28.0","### Added\r\n\r\n- Add support to async version for scheduling messages and running plugin functions on a schedule ([#610](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F610))\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.27.2...v0.28.0","2022-10-19T21:55:36",{"id":237,"version":238,"summary_zh":239,"released_at":240},105843,"v0.27.2","### Fixed\r\n\r\n- `aioboto3` types are only relevant for type checking, so move imports inside type checking guard\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.27.1...v0.27.2","2022-10-19T21:52:48",{"id":242,"version":243,"summary_zh":244,"released_at":245},105844,"v0.27.1","### Changed\r\n\r\n- Add documentation for DynamoDB storage backend ([#603](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F603))\r\n\r\n### Fixed\r\n\r\n- Add `aioboto3` as optional dependency so extras can be satisfied ([#604](https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fpull\u002F604))\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FDonDebonair\u002Fslack-machine\u002Fcompare\u002Fv0.27.0...v0.27.1","2022-10-19T21:47:45"]