← ClaudeAtlas

supsub-unreadlisted

SupSub 未读管理(工作流)—— 一条命令看全所有订阅源与关注点的未读数(supsub unread),钻取未读文章列表(sub contents / focus contents,支持 --page 翻页),并把某个订阅源 / 某个关注点**整体**标记已读(sub mark-read --all / focus mark-read --all)。匹配「我还有什么没读 / 没看的」「有多少未读」「未读概览」「哪些号还有没读的」「帮我清未读」「这个号我读完了」「这个关注点全部标记已读」「全部已读」。⚠️ 标记已读**只有整源 / 整个关注点一档**,不支持单篇:文章没有「详情 / 阅读」这一步,产生不了自然的单篇已读事件。⚠️ `--all` 标记已读**不可逆**(无 mark-as-unread 命令),执行前必须向用户二次确认。只是浏览某个源 / 关注点的文章列表走 supsub-sub / supsub-focus;分组维度的未读数走 supsub-group(group subs)。
SupSub-AI/supsub-cli · ★ 5 · AI & Automation · score 75
Install: claude install-skill SupSub-AI/supsub-cli
# supsub-unread Skill 未读工作流的**入口 skill**:回答「我有哪些未读」,并完成「概览 → 钻取 → 整体已读」的闭环。涉及的命令跨 `unread` / `sub` / `focus` 三个命令树,本文档按工作流组织。 ## Prerequisites - 安装:`curl -fsSL https://raw.githubusercontent.com/SupSub-AI/supsub-cli/master/scripts/install.sh | bash`(native 安装,装到 `~/.local`、支持后台自动更新);或包管理器 `npm i -g @supsub/cli` / `pnpm add -g @supsub/cli` - 已登录:`supsub auth status` 显示 Authenticated(首次使用先 `supsub auth login`) - **未授权(exit 2 / UNAUTHORIZED)时不要止步于「你未登录」**:直接运行 `supsub auth login` 为用户打开浏览器授权(命令会自动打开浏览器并阻塞等待授权,请用足够长的超时,如 10 分钟;用户只需在浏览器点确认,无需在终端输入任何内容),授权成功后重试原命令。无浏览器 / 无头环境再回退为提示用户 `SUPSUB_NO_BROWSER=1 supsub auth login`。 ## 已读模型:只有「整体已读」,没有「单篇已读」 这是本 skill 最容易踩错的一点,先记住: - **CLI 能做的只有两件事**:`sub mark-read --all`(这个号我读完了)、`focus mark-read --all`(这个关注点我看完了)。 - **没有单篇已读**。原因是产品侧的:文章在 SupSub 里没有「详情 / 阅读」这一步,也就不存在「用户读完了这一篇」的自然事件,所以 CLI 只保留用户**明确表达**的整体已读意图。 - 用户说「把这篇标为已读���时:**如实说明不支持**,再问是否要把整个源 / 整个关注点标为已读。不要试图用 `--content-id` 绕过(会抛 `INVALID_ARGS`),也不要靠循环调用伪造逐篇已读。 - 也没有分组级已读命令。用户要「清空某个分组」时:先 `group subs` 列出组内源,逐个源确认后再逐个 `sub mark-read --all`,**每个源都要在确认范围内**。 ## Workflow(三步闭环) 1. **概览**:`supsub unread -o json` → 一次拿到所有 `unreadCount > 0` 的订阅源与关注点。 2. **钻取**:对用户关心的源/关注点拉未读列表(默认就是未读): - 订阅源 → `supsub sub contents --source-id <sid> --type <t> -o json` - 关注点 → `supsub focus contents --id <fid> -o json` > 这里用默认(未读)是对的——本 skill 的语境本来就是「我有什么没读」。但若用户中途转成**按时间浏览** > (「那 X 最近都讲了什么」),要改用 `--all` 并把 `isRead` 当标注,详见 `supsub-sub` / `supsub-focus`。 3. **整体已读**(仅当用户明确表达「读完了 / 清掉」时):`