slack-personal

💬 零配置 Slack 终端管家

开源 macOS 专属 Slack CLI 工具,自动提取桌面应用凭证实现无令牌认证,支持消息读写、搜索、草稿管理等完整工作流。

收藏
878
安装
363
版本
v0.1.7
CLS 安全性认证2026-05-18
点击查看完整报告 >

使用说明

核心用法

slk(slack-personal)是一款专为 macOS 设计的会话型 Slack 命令行工具,通过自动提取 Slack 桌面应用的 LevelDB 存储和 macOS Keychain 中的加密凭证,实现无需手动配置令牌或 OAuth 的即开即用体验。用户可通过简洁的命令完成频道/DM 读取、消息发送、线程追踪、全局搜索、未读提醒检查、草稿管理、表情回应等完整 Slack 交互操作。

核心工作流包括:使用 slk channels//slk dms 浏览会话列表,,slk read 配合 --threads 或日期过滤获取上下文,,slk search 快速定位历史信息,,slk activity//slk unread 监控工作动态,,slk draft 系列命令实现人机协作的审核发送机制。特别适合构建定时心跳检查、日报/周报自动生成、关键线程监控等自动化场景。

显著优点

1. 零配置认证:自动从 Slack 桌面应用提取 xoxc- 会话令牌,省去繁琐的 Slack App 创建和权限申请流程
2. 完整功能覆盖:涵盖读取、发送、搜索、草稿、回应、置顶、收藏等 20+ 项 Slack 核心操作

3. 人机协作设计slk draft 将消息推入 Slack 官方编辑器 UI,支持人工审核后再发送,降低自动化风险

4. 零依赖架构:纯 Node.js 内置模块实现,无第三方依赖包,部署轻量、审计简单

5. 开源透明:MIT 协议,代码完全公开,功能与实现一致,无隐藏行为

潜在缺点与局限性

1. 平台锁定:仅支持 macOS,依赖 Keychain 和 Electron 存储路径,Windows/Linux 用户无法使用
2. 会话脆弱性:基于用户会话令牌,Slack 登出或令牌轮换即失效,需重新认证

3. 草稿冲突:若 Slack 客户端保持某对话窗口打开,,slk draft drop 可能因 draft_has_conflict 失败

4. 功能边界:作为用户代理而非 Bot,无法使用 Slack 应用特有的交互组件(如按钮、模态框)

5. 外部依赖:依赖系统预装的 securitysqlite3opensslcurlpython3 等命令

适合的目标群体

  • macOS 重度 Slack 用户:需要高频、批量处理 Slack 信息的开发者、产品经理、团队负责人
  • 自动化工作流构建者:希望将 Slack 集成到定时任务、日报生成、信息聚合脚本中的工程师
  • 隐私敏感型用户:不愿授权第三方云服务访问 Slack,偏好本地凭证管理的场景
  • CLI 爱好者:习惯终端操作,追求效率最大化的技术从业者

使用风险

1. 凭证暴露风险:Token 明文缓存在 ~/.local/slk/token-cache.json,系统入侵时可能被窃取
2. Keychain 权限过度:选择 "Always Allow" 后,任何用户进程均可静默提取 Slack 凭证

3. 子进程注入:依赖 execSync//spawnSync` 执行系统命令,若 PATH 被篡改可能执行恶意程序

4. 网络稳定性:Slack API 限流或网络波动可能影响自动化脚本的可靠性

5. 版本兼容性:Slack 桌面应用更新可能改变存储格式,导致认证提取失效

安全解读

核心用法

slk 是一款面向 macOS 的 Slack 命令行工具,允许用户以自身身份(xoxc- 会话令牌)直接读写 Slack 消息、频道和私信。核心特性包括:

零配置认证:自动从 Slack 桌面应用的 LevelDB 数据库和 macOS 钥匙串提取会话令牌,无需手动创建 Slack App、OAuth 流程或长期令牌。

完整消息操作:支持读取频道/私信、发送消息、添加反应、搜索、查看未读消息、管理草稿、浏览收藏和置顶内容。频道标识灵活,支持名称、ID、@username 或用户 ID。

线程与日期过滤:可展开线程查看完整对话,支持按日期范围筛选消息,便于回溯历史讨论。

显著优点

极致简洁:单条命令即可发送消息或检查未读,适合自动化工作流(如定时摘要、心跳检查)。

零依赖安全架构:package.json 零依赖,完全基于 Node.js 内置模块,从根本上消除供应链攻击风险。

草稿同步:草稿功能与 Slack 编辑器 UI 同步,支持人工审核后再发送。

隐私合规:数据最小化,仅调用官方 Slack API,凭证本地缓存不外传。

潜在局限

macOS 独占:依赖 Keychain 和 Slack 桌面应用的 Electron 存储路径,无法跨平台使用。

会话绑定:令牌随 Slack 桌面应用登录状态失效,若 Slack 退出登录需重新认证。

用户身份风险:以真实用户身份操作,发送的消息不可区分于人工发送,需审慎使用。

Keychain 授权:首次运行需授权访问 "Slack Safe Storage",选择 "Always Allow" 后任何以该用户运行的进程均可静默提取凭证。

适合人群

  • macOS 重度用户,需高效 CLI 工作流
  • 需要自动化 Slack 交互的开发者/运维人员
  • 希望避免 OAuth 繁琐配置的轻量级使用者

常规风险

  • 会话令牌存储于 ~/.local/slk/token-cache.json,需保护该文件权限
  • slk draft drop 可能在 Slack 客户端打开对话时失败(draft_has_conflict
  • 个人维护项目,长期更新依赖社区贡献

slack-personal 内容

bin文件夹
src文件夹
手动下载zip · 22.2 kB
slk.jstext/javascript
请选择文件