核心功能
slk 是一款专为macOS设计的Slack命令行工具,最大的特色是零配置认证——无需创建Slack App、无需OAuth流程、无需手动获取token,直接读取本地Slack桌面应用的会话令牌(xoxc-)和Keychain中的加密cookie即可模拟用户操作。
主要能力覆盖
| 场景 | 命令 |
|------|------|
| 快速浏览未读 | `slk unread` / `slk activity` |
| 阅读频道/DM | `slk read <channel>` / `slk read @username` |
| 完整线程展开 | `slk thread <channel> <ts>` 或 `--threads` 自动展开 |
| 工作区搜索 | `slk search <query>` |
| 发送消息 | `slk send <channel> "消息"` |
| 草稿同步 | `slk draft` 系列命令,与Slack编辑器UI双向同步 |
| 收藏/固定内容 | `slk saved` / `slk pins` |
显著优点
1. 无缝集成体验:对于已使用Slack桌面版的用户, literally 零门槛上手
2. 草稿工作流独特:支持将消息草稿推送到Slack官方编辑器,实现"AI拟稿→人工复核→发送"的安全流程
3. 轻量级自动化友好:适合cron心跳检测、日报汇总、线程监控等场景
4. 线程处理完善:支持timestamp提取、深度回复阅读
潜在局限与风险
| 局限 | 说明 |
|------|------|
| 平台锁定 | **仅macOS**,依赖特定Electron存储路径和Keychain |
| 会话脆弱性 | 令牌随Slack桌面应用登录状态变化,logout即失效 |
| Keychain权限权衡 | "Always Allow"虽便利,但意味着任何用户态进程都可静默提取凭证 |
| 非官方集成 | 逆向提取session token的方式可能被Slack ToS限制 |
| 冲突处理 | 草稿删除可能因`draft_has_conflict`失败 |
适合人群
- macOS重度终端用户,希望在不切换上下文的情况下处理Slack
- 需要构建"Slack未读监控→自动摘要→人工确认发送"工作流的自动化团队
- 对OAuth App创建流程感到繁琐的个人开发者
安全注意事项
- 工具以真实用户身份行动,非bot角色,消息发送无法区分是人还是脚本
- 缓存令牌存储于
~/.local/slk/token-cache.json,需确保该目录权限正确 - 首次Keychain授权决策影响后续安全边界,建议生产环境使用专用macOS账户隔离