ClawSkills logoClawSkills

Slk

通过 slk CLI 读取、发送、搜索和管理 Slack 消息及私信。当用户要求检查 Slack、阅读频道或私信、发送 Slack 消息、搜索时使用

介绍

# slk — Slack CLI

适用于 macOS 的基于会话的 Slack CLI。从 Slack 桌面应用自动进行身份验证 —— 无需令牌,无需 OAuth,无需应用安装。以您的用户身份(`xoxc-` 会话令牌)操作。

## 命令

```bash # Auth slk auth # Test authentication, show user/team

# Read slk channels # List channels (alias: ch) slk dms # List DM conversations with IDs (alias: dm) slk read <channel> [count] # Read recent messages, default 20 (alias: r) slk read @username [count] # Read DMs by username slk read <channel> --threads # Auto-expand all threads slk read <channel> --from 2026-02-01 # Date range filter slk thread <channel> <ts> [count] # Read thread replies, default 50 (alias: t) slk search <query> [count] # Search messages across workspace slk users # List workspace users (alias: u)

# Activity slk activity # All channels with unread/mention counts (alias: a) slk unread # Only unreads, excludes muted (alias: ur) slk starred # VIP users + starred items (alias: star) slk saved [count] [--all] # Saved for later items (alias: sv) slk pins <channel> # Pinned items in a channel (alias: pin)

# Write slk send <channel> <message> # Send a message (alias: s) slk react <channel> <ts> <emoji> # React to a message

# Drafts (synced to Slack editor UI) slk draft <channel> <message> # Draft a channel message slk draft thread <ch> <ts> <message> # Draft a thread reply slk draft user <user_id> <message> # Draft a DM slk drafts # List active drafts slk draft drop <draft_id> # Delete a draft ```

频道接受名称(`general`)、ID(`C08A8AQ2AFP`)、用于私信的 `@username`,或用户 ID(`U07RQTFCLUC`)。

## 身份验证

自动化 —— 从 Slack 桌面应用的 LevelDB 中提取会话令牌,并从 macOS 钥匙串中解密 Cookie。

**首次运行:** macOS 会显示一个钥匙串对话框,请求允许访问“Slack Safe Storage”: - **允许** —— 一次性访问,下次会再次提示 - **始终允许** —— 永久授权,今后不再提示(方便,但任何以您的用户身份运行的进程都可以静默提取凭据) - **拒绝** —— 阻止访问,slk 无法进行身份验证

**令牌缓存:** `~/.local/slk/token-cache.json` —— 自动验证,在遇到 `invalid_auth` 时自动刷新。

如果身份验证失败(令牌轮换,Slack 登出): ```bash rm ~/.local/slk/token-cache.json slk auth ```

必须安装并登录 Slack 桌面应用。如果令牌已缓存,则无需运行该应用。

## 阅读主题串

主题串需要 Slack 时间戳。使用 `--ts` 获取它,然后阅读主题串:

```bash slk read general 10 --ts # Output: [1/30/2026, 11:41 AM ts:1769753479.788949] User [3 replies]: ...

slk thread general 1769753479.788949 ```

## Agent 工作流示例

- **心跳/cron 未读检查** —— `slk unread` → 对需要关注的频道执行 `slk read <channel>` - **保存与后续处理** —— 人工在 Slack 中保存主题串(“稍后保存”)。Agent 在心跳期间运行 `slk saved`,使用 `slk thread` 阅读完整主题串,进行摘要或提取行动项 - **每日频道摘要** —— 对关键频道执行 `slk read <channel> 100` → 汇总决策、待解问题、行动项 → `slk send daily-digest "📋 ..."` - **每周私信摘要** —— `slk read @boss 200 --from 2026-02-01 --threads` → 提取行动项、决策、上下文 - **主题串监控** —— 监控特定主题串的新回复(事故、PR 审查、决策) - **人工审核草稿** —— `slk draft <channel> "..."` 发布到 Slack 的编辑器 UI,供人工审核后再发送 - **搜索驱动的上下文** —— 在回答问题之前使用 `slk search "deployment process"` 或 `slk pins <channel>` 获取上下文

## 限制

- **仅限 macOS** —— 使用钥匙串 + Electron 存储路径 - **基于会话** —— 以您的用户身份操作,而非机器人。请注意您发送的内容 - **草稿投递** 如果 Slack 已打开该对话,可能会因 `draft_has_conflict` 而失败 - **会话令牌** 在登出时过期 —— 保持 Slack 应用运行或依赖缓存的令牌

## 缺失的功能与问题

请通过以下链接创建 PR 或报告问题:https://github.com/therohitdas/slkcli

更多产品