swobdocs
浏览五章

SWOB CLI

用命令查找、继续或整理会话。

CLI 适合重复操作和 Agent 工作流。第一次使用 Swob 不需要安装 CLI;需要脚本化时,再从下面的任务选择命令。

按任务选择支持 JSON / JSONL完整参考在页尾

Swob CLI 的四类工作流:找回并继续、读取并交接、安全整理、诊断修复

先确认 CLI 可用

桌面端进入“设置 → CLI & Agent”查看 CLI 文件、swob 命令和 Agent Skill 三项状态。缺少时点击安装;若系统不允许自动创建命令入口,设置页会给出需要人工执行的最小命令。

安装后在终端验证:

swob --version
swob --help
swob doctor library --json

成功状态: 三条命令均返回;带 --json 的命令在 stdout 只输出合法 JSON。若终端提示 command not found,先重新打开终端并检查设置页给出的 CLI 路径,不要复制或编辑 Library 文件来绕过安装问题。

本页按当前 v1.4 源码编写。若本机 swob --help 没有某条命令,以安装版本为准。

按任务选择命令

你要完成的任务 首选命令 得到什么
用一句原文找回会话 grepshow 命中上下文与完整会话
按项目或来源列出会话 list / search 会话摘要数组
定位真实文件与新鲜度 resolvewhere / transcript status 路径、可用性与更新时间
继续一条会话 resume / resume-audit 经来源校验的恢复命令或审计
给脚本或 Agent 读取 show --full --format=jsonl 稳定的逐事件 JSONL
安全批量整理 foldersmove/rename --stdinundo 原子事务与可撤销结果
查看本地用量 insights / active 聚合统计或活跃会话
诊断 Library doctortranscript status 只读健康证据
重建派生 transcript transcript rebuild --dry-runrebuild 单会话或受控批量重建结果

从一句原文找回并继续

先搜正文,再核对完整内容,最后才生成 Resume 命令:

swob grep "permission denied" --project swob --limit 10
swob show <session-id> --full
swob resume <session-id>
  1. grep 结果取得精确 session ID,不要仅凭标题判断。
  2. show --full 核对来源、项目、消息和工具调用。
  3. resume 返回 { "command": "..." };它生成命令,不把“命令已生成”当成“目标会话已恢复”。
  4. 执行返回的命令后,在目标工具中核对上一轮内容。

把完整会话交给 Agent

Agent 应通过 CLI 读取受控、结构化输出,不直接遍历或修改 Library:

swob install
swob grep "writer-blocked" --project swob --limit 5
swob show <session-id> --full --format=jsonl

show --format=jsonl 每行是一个独立事件,适合流式处理;--full 会包含正文、thinking、工具参数和结果,可能带有敏感内容。只把完成任务所需的最小结果交给下游工具。

批量整理,并保留撤销入口

先读取文件夹 ID,再把整批计划通过 stdin 一次提交:

swob folders
printf '{"sessionId":"<id>","folderId":"work"}\n' | swob move --stdin
swob undo
  • move --stdinrename --stdin 先验证整批输入,再提交事务。
  • 不要把界面显示名称猜成 folder ID;先运行 folders
  • undo 只撤销最近一次组织事务,不能代替备份,也不会覆盖后来占据原位置的内容。

先诊断,再重建一条 transcript

swob doctor library --json
swob transcript status <session-id> --json
swob transcript rebuild <session-id> --dry-run
swob transcript rebuild <session-id>

只有 doctorstatus 证明问题在派生 transcript 时才进入重建。优先修一条,不要直接运行全库重建;不要手动删除 writer 锁或编辑 transcript。

写脚本前再看这些约定

  • --json 时 stdout 只包含合法 JSON,诊断写 stderr。
  • show --format=jsonl 每行一个独立 JSON 事件。
  • 批量 move/rename 整批先校验再提交;undo 只撤销最近一次组织事务。
  • token 汇总的 input_plus_output 不包含 cache creation/read。
  • wheredoctortranscript status 是只读控制面,不依赖读取会话正文。
退出码 含义
0 成功
1 参数、输入或执行错误
2 标识符歧义
3 目标不存在

完整命令参考(29 条)

swob search <query> [--limit N]

按标题、项目、文件夹等元数据搜索会话

输出
JSON 会话数组
示例
swob search "认证失败" --limit 10

swob list [--folder ID|NAME] [--source SOURCE] [--project TEXT] [--limit N]

列出并筛选会话

输出
JSON 会话数组
示例
swob list --project swob --source codex

swob show <sessionId> [--full] [--format=jsonl]

查看会话;--full 保留全文、thinking、工具参数和结果

输出
JSON 对象;jsonl 模式每行一个 session/message 事件
示例
swob show <id> --full
swob show <id> --full --format=jsonl

swob grep <query> [--source SOURCE] [--folder ID|NAME] [--after DATE] [--before DATE] [--project TEXT] [--limit N]

用 SQLite FTS 搜索完整 transcript,并返回命中消息上下文 ±1

输出
JSON 搜索结果
示例
swob grep "permission denied" --project swob --after 2026-07-01

swob resume <sessionId> [--cwd PATH] [--skip-permissions]

生成恢复会话的命令

输出
JSON { command }
示例
swob resume <id>

swob resume-audit [--json]

只读审计全部会话的恢复可信度

输出
文本报告;--json 时为 JSON
示例
swob resume-audit --json

swob resolve <id-or-prefix> [--json]

用 manifest + lineage 把完整或短 ID 解析为最新完整 ID

输出
默认一行 ID;--json 时含稳定错误码与最小候选摘要
示例
swob resolve <short-id> --json

swob where <id-or-prefix> [--json]

定位会话包、manifest、transcript、backup 与 source

输出
JSON 路径、可用性与 freshness;不读取会话正文
示例
swob where <id> --json

swob lineage [--dry-run]

重建会话血统注册表

输出
JSON 注册表
示例
swob lineage --dry-run

swob folders

列出 Vault 文件夹树

输出
JSON 文件夹树
示例
swob folders

swob folder create <name> [--parent ID]

创建文件夹

输出
JSON 结果
示例
swob folder create "swob"

swob folder rename <id> <name>

重命名文件夹

输出
JSON 结果
示例
swob folder rename work "工作"

swob folder delete <id>

删除空的受管文件夹

输出
JSON 结果
示例
swob folder delete archive

swob move <sessionId> <folderId>

事务式移动一个会话

输出
JSON 结果
示例
swob move <id> work

swob move --stdin

从 stdin 读取 JSONL 或 JSON 数组,原子提交批量移动

输出
JSON 事务结果
示例
printf '{"sessionId":"<id>","folderId":"work"}\n' | swob move --stdin

swob rename <sessionId> <title>

事务式重命名一个会话

输出
JSON 结果
示例
swob rename <id> "CLI 设计"

swob rename --stdin

从 stdin 读取 JSONL 或 JSON 数组,原子提交批量重命名

输出
JSON 事务结果
示例
printf '{"sessionId":"<id>","title":"CLI 设计"}\n' | swob rename --stdin

swob undo

撤销最近一次 move/rename 组织事务

输出
JSON 事务结果
示例
swob undo

swob insights [--json] [--summary]

查看会话统计;token 汇总明确标注 input_plus_output

输出
JSON 统计
示例
swob insights --summary

swob config get [key]

读取设置

输出
JSON
示例
swob config get terminalApp

swob config set <key> <value>

修改设置

输出
JSON
示例
swob config set terminalApp iTerm2

swob active

列出活跃会话

输出
JSON
示例
swob active

swob transcript status <id-or-prefix> [--json]

查看 source/transcript/backup/manifest 四时间戳、lag 与阻塞原因

输出
JSON freshness 状态
示例
swob transcript status <id> --json

swob transcript rebuild <id-or-prefix> [--dry-run]

只重建一个会话包的 transcript

输出
JSON 单会话重建结果
示例
swob transcript rebuild <id> --dry-run

swob transcript rebuild --all [--dry-run] [--missing-only]

重建全部 Library transcript(高成本)

输出
JSON
示例
swob transcript rebuild --all --missing-only

swob doctor locks [--json]

只读检查 writer 锁、owner 存活性与显式恢复可用性

输出
JSON 锁诊断与证据哈希;不输出设备标识
示例
swob doctor locks --json

swob doctor library [--json]

只读检查 Library 写状态、identity issue 与 stale 数量

输出
JSON Library 健康摘要
示例
swob doctor library --json

swob redact [--dry-run]

对派生 transcript 回填脱敏

输出
JSON
示例
swob redact --dry-run

swob install

安装或更新 CLI wrapper 和本 Skill

输出
JSON 安装结果
示例
swob install