关于 agent-slack
agent-slack 是用于通过命令行读取、搜索和管理 Slack 消息、频道、用户及工作流的技能,适合以 Shell 命令自动处理 Slack 事务。
主要功能
- 01读取消息与讨论串
- 02搜索消息和文件
- 03发送、编辑、删除消息并添加反应
- 04管理频道、用户和工作流
- 05下载消息附件
适用场景
- 01查找近期相关消息
- 02在频道发送或更新消息
- 03创建频道并邀请成员
- 04查看 Slack 工作流定义
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ letta-ai/ skills --skill agent-slack安装后在 Claude Code 中输入/agent-slack确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEassets/slack-small.svgreferences/commands.mdoutput.mdtargets.md详细介绍
使用 agent-slack 自动化 Slack
agent-slack 是一个位于 $PATH 中的 CLI 二进制文件。可直接调用(例如 agent-slack user list)。
设置
1. 安装 CLI
如果在 $PATH 中找不到 agent-slack,请安装:
curl -fsSL https://raw.githubusercontent.com/stablyai/agent-slack/main/install.sh | sh
其他方式:npm i -g agent-slack(需要 Node >= 22.5)或 nix run github:stablyai/agent-slack。
2. 使用 Slack 进行身份验证
如果已安装并登录 Slack Desktop,身份验证会自动完成,无需设置。运行以下命令进行验证:
agent-slack auth test
如果失败(或未安装 Slack Desktop),请尝试从浏览器导入凭据:
# Try Chrome first, then Firefox
agent-slack auth import-chrome
agent-slack auth test
agent-slack auth import-firefox
agent-slack auth test
如果两种方式都不奏效,可以通过环境变量手动设置令牌:
export SLACK_TOKEN="xoxc-..." # browser token
export SLACK_COOKIE_D="xoxd-..." # browser cookie
agent-slack auth test
3. 验证
检查已配置的工作区:
agent-slack auth whoami
如果有多个工作区,请在命令中传入 --workspace "myteam" 以消除歧义。
标准工作流(已知 Slack 消息 URL)
- 获取单条消息(以及线程摘要,如有):
agent-slack message get "https://workspace.slack.com/archives/C123/p1700000000000000"
- 如需获取完整线程:
agent-slack message list "https://workspace.slack.com/archives/C123/p1700000000000000"
浏览频道近期消息
查看频道中近期发布的内容(频道历史记录):
agent-slack message list "general" --limit 20
agent-slack message list "C0123ABC" --limit 10
agent-slack message list "general" --with-reaction eyes --oldest "1770165109.000000" --limit 20
agent-slack message list "general" --without-reaction dart --oldest "1770165109.000000" --limit 20
这会按时间顺序返回最近的消息。使用 --limit 控制返回数量(默认值为 25)。
使用 --with-reaction 或 --without-reaction 时,还必须传入 --oldest 以限定扫描范围。
附件(片段/图片/文件)
message get/list 和 search 会自动将附件下载到 ~/.agent-slack/tmp/downloads/,并在 message.files[] 中返回元数据(包括 name 和 path)。下载失败时会包含 message.files[].error 字段。
撰写消息草稿(浏览器编辑器)
在浏览器中打开类似 Slack 的富文本编辑器,用于撰写带格式的消息。编辑器提供格式工具栏(粗体、斜体、删除线、链接、列表、引用、代码、代码块)。发送后会显示一个“View in Slack”链接。
agent-slack message draft "general"
agent-slack message draft "general" "initial text"
agent-slack message draft "https://workspace.slack.com/archives/C123/p1700000000000000"
发送、编辑、删除或添加反应
agent-slack message send "https://workspace.slack.com/archives/C123/p1700000000000000" "I can take this."
agent-slack message send "alerts-staging" "here's the report" --attach ./report.md
agent-slack message edit "https://workspace.slack.com/archives/C123/p1700000000000000" "I can take this today."
agent-slack message delete "https://workspace.slack.com/archives/C123/p1700000000000000"
agent-slack message send "general" "Here's the plan:
- Step 1: do the thing
- Step 2: verify it worked
- Sub-step: check logs"
agent-slack message react add "https://workspace.slack.com/archives/C123/p1700000000000000" "eyes"
agent-slack message react remove "https://workspace.slack.com/archives/C123/p1700000000000000" "eyes"
频道模式下编辑/删除需要使用 --ts:
agent-slack message edit "general" "Updated text" --workspace "myteam" --ts "1770165109.628379"
agent-slack message delete "general" --workspace "myteam" --ts "1770165109.628379"
message send 的附件选项:
--attach <path>上传本地文件(可重复使用)
列出频道+创建/邀请用户
agent-slack channel list
agent-slack channel list --user "@alice" --limit 50
agent-slack channel list --all --limit 100
agent-slack channel new --name "incident-war-room"
agent-slack channel new --name "incident-leads" --private
agent-slack channel invite --channel "incident-war-room" --users "U01AAAA,@alice,[email protected]"
agent-slack channel invite --channel "incident-war-room" --users "[email protected]" --external
agent-slack channel invite --channel "incident-war-room" --users "[email protected]" --external --allow-external-user-invites
对于 --external,邀请对象必须是电子邮件地址。默认情况下,被邀请者受到外部用户限制;添加
--allow-external-user-invites 可允许他们邀请其他用户。
搜索(消息+文件)
为确保可靠性,优先使用限定频道的搜索:
agent-slack search all "smoke tests failed" --channel "alerts" --after 2026-01-01 --before 2026-02-01
agent-slack search messages "stably test" --user "@alice" --channel general
agent-slack search files "testing" --content-type snippet --limit 10
多工作区防护措施(重要)
如果配置了多个工作区,并且使用频道名称(例如 general),请传入 --workspace(或设置 SLACK_WORKSPACE_URL)以避免歧义:
agent-slack message get "general" --workspace "https://myteam.slack.com" --ts "1770165109.628379"
agent-slack message get "general" --workspace "myteam" --ts "1770165109.628379"
DM/群组 DM 频道
获取 DM 或群组 DM 的频道 ID,适用于向一组用户发送消息:
agent-slack user dm-open @alice @bob
agent-slack user dm-open U01AAAA U02BBBB U03CCCC
标记为已读
将频道、DM 或群组 DM 标记为已读,直到指定消息为止:
agent-slack channel mark "https://workspace.slack.com/archives/C123/p1700000000000000"
agent-slack channel mark "general" --workspace "myteam" --ts "1770165109.628379"
agent-slack channel mark "D0A04PB2QBW" --workspace "myteam" --ts "1770165109.628379"
若要将特定消息标记为未读,请将 --ts 设置为该消息之前的时间戳(减去 0.000001)。这会移动已读游标,使该消息及其后的所有内容显示为新消息:
agent-slack channel mark "general" --workspace "myteam" --ts "1770165109.628378"
工作流
发现并运行在频道中加入书签的 Slack 工作流:
# List workflows in a channel
agent-slack workflow list "#ops"
# Preview trigger metadata (no side effects)
agent-slack workflow preview "Ft123ABC"
# Get workflow definition including form fields and steps
agent-slack workflow get "Ft123ABC"
agent-slack workflow get "Wf456DEF"
# Trip a workflow trigger
agent-slack workflow run "Ft123ABC" --channel "#ops"
Canvas+用户
agent-slack canvas get "https://workspace.slack.com/docs/T123/F456"
agent-slack user list --workspace "https://workspace.slack.com" --limit 100
agent-slack user get "@alice" --workspace "https://workspace.slack.com"
参考资料
- references/commands.md:完整命令列表及所有标志
- references/targets.md:URL 与
#channel目标的使用规则 - references/output.md:JSON 输出结构及下载路径