slack-cli-read 是一个用于通过全局 slack 命令行工具读取 Slack 内容的技能,定位为只读工作流。
用途 该技能适用于需要查看 Slack 会话、私信、消息历史、线程和用户信息的场景。它明确限定为只读操作,写入、发送或回复功能尚未实现。如果用户要求写入,应说明该功能暂不可用,并仅提供起草消息文本的帮助。
主要能力 技能覆盖以下只读命令:
- 登录引导(交互式):slack auth login <workspace>
- 认证诊断:slack auth status
- 验证认证/工作区:slack me
- 列出所有会话:slack chat list
- 列出未读会话:slack chat list --unread
- 列出私信收件箱:slack dm list
- 列出未读私信:slack dm list --unread
- 读取会话历史:slack chat history "<chat>" --limit 30
- 读取私信历史:slack dm history <user_or_dm_id> --limit 30
- 读取完整线程:slack thread show <chat_or_dm> <thread_ts>
- 读取单条完整消息:slack chat message <chat_or_dm> <ts>
- 搜索用户:slack users list --query <text>
- 原始 API 调用(专家模式):slack api call <endpoint> -p key=value
- 原始 API curl 包装(专家模式):slack api curl <endpoint> -- [curl args]
使用方式 环境方面,假定 slack 作为全局命令可用,Slack 凭据预期位于 ~/.config/slack/slack.env,必需变量包括 SLACK_WORKSPACE、TOKEN、D_COOKIE。如果认证失败或环境变量缺失,应帮助用户填充该文件。
工作风格建议:意图不明确时,先通过 chat list 或 dm list 进行宽泛查找;使用有界的 --limit 缩小历史范围;当内联回复被截断时,通过 thread show 展开父线程;需要完整文本时,用 chat message 获取精确消息。
命令规范:以 # 开头的名称在 shell 命令中需加引号,例如 slack chat history "#general";名称有歧义时优先使用 ID;除非用户要求更多,否则用 --limit 保持命令有界;人类阅读时使用美化输出;结构化解析时使用 --format json 或 --format jsonl;仅当类型化命令无法覆盖所需端点行为时,才使用 slack api call 或 slack api curl;如果认证失败,先运行 slack auth status 再重试读取命令。
响应指导:总结关键发现,而不是直接倾倒原始命令输出;在有助于用户深入查看时,保留时间戳和 ID;将附件行(📎 ...)视为消息上下文。
适用场景 适用于需要读取 Slack 会话列表、私信、消息历史、线程详情、单条消息全文以及搜索用户的只读任务。
限制 仅支持只读命令,写入、发送、回复功能尚未实现。需要预先配置好全局 slack 命令和凭据文件。原始 API 调用和 curl 包装属于专家模式,仅在类型化命令无法满足时使用。