核心用法
slk 是一款面向 macOS 的 Slack 命令行工具,主打零配置自动认证:直接从 Slack 桌面应用的 LevelDB 提取会话 Token,并从 macOS Keychain 解密 Cookie,无需创建 Slack App 或手动管理 OAuth Token。
典型工作流:
- 快速扫读:
slk unread→ 筛选有未读消息的频道(自动排除静音频道)→slk read <channel>查看详情 - 心跳检查:配合
slk activity或slk unread实现定时 Slack 状态监控 - 消息操作:
slk send发送消息、slk react添加表情回复、slk draft系列命令管理草稿(与 Slack 官方编辑器同步) - 搜索与整理:
slk search全局搜索、slk saved查看稍后阅读、slk starred快速访问标星内容
频道支持名称(如 ai-coding)或 ID(如 C08A8AQ2AFP)两种形式。
显著优点
1. 无缝认证体验:首次运行仅需点击 macOS Keychain 授权对话框,后续全自动续期
2. 功能覆盖完整:读/写/搜索/草稿管理/反应/置顶消息等核心 Slack 操作一应俱全
3. 草稿双向同步:草稿数据与 Slack 云端编辑器实时同步,移动端可接力编辑
4. 精准过滤:unread 命令自动过滤静音频道,减少噪音干扰
潜在局限
- macOS 独占:依赖 Keychain API 和 Electron 应用存储路径,无法跨平台
- 会话依赖性:Token 在 Slack 桌面端登出时失效,需保持官方应用运行
- 草稿冲突风险:若 Slack 桌面端正打开目标对话,
draft drop可能触发draft_has_conflict错误 - 安全假设:缓存 Token 存储于
~/.local/slk/token-cache.json,虽依赖 macOS 文件权限保护,但仍属本地明文敏感数据
适合人群
- macOS 重度终端用户,习惯 CLI 工作流
- 需要快速批量处理 Slack 消息的开发/运维人员
- 希望减少 Slack 桌面端上下文切换、专注编码的工程师
常规风险
| 场景 | 风险 | 缓解建议 |
|------|------|----------|
| Token 缓存 | 本地文件泄露可导致会话劫持 | 定期清理缓存、使用 FileVault 全盘加密 |
| 自动认证 | Keychain 授权"Always Allow"降低安全门槛 | 敏感环境改用"Allow Once",或定期审计 Keychain 条目 |
| 命令注入 | `send`/`draft` 等命令接收用户输入 | 避免管道未清洗数据直接传入,对特殊字符做转义 |