跳转到内容

搜索和展示结果

sivtr search 查询捕获到的终端记录和受支持的 AI workspace sessions。sivtr filter 缩小已有 WorkSet。sivtr nav 在 parent / child / sibling / session 结构中移动 anchors。sivtr show 打印 ref 或 WorkSet 背后的内容。

当交互式 picker 太重,而你需要给人类工作流、Agent prompt 或其他工具提供脚本友好的记忆时,把这些命令组合使用。它们也是 skill 最安全的基础能力,因为可以非交互运行,并返回精确 ref 或 WorkSet JSON。

例如,“解决终端报错” skill 可以这样开始:

Terminal window
sivtr search terminal --status failure --latest 1 --json

“最近工作 timeline” skill 可以直接使用 timeline renderer:

Terminal window
sivtr search agent --since today --sort oldest --format timeline
sivtr search terminal --since today --sort oldest --format timeline

Search 现在是 target-first:

Terminal window
sivtr search terminal
sivtr search agent
sivtr search codex
sivtr search claude
sivtr search hermes
sivtr search opencode
sivtr search pi

Target 可以继续缩小到 session、record/turn 和 line:

Terminal window
sivtr search pi/019e5941 --match "cargo test"
sivtr search terminal/session_13104/3/12 --format workset
sivtr search pi/019e5941/3-5,7 --match "cargo test"
sivtr search pi/019e5941/3/5-7,10 --format workset

record/turn 和 line segment 都是 1-based,支持 33-53,73-5,7* 表示 wildcard segment。Search selector 只用于缩小输入范围;search 输出仍然返回具体 ref。

使用 agent 搜索所有受支持 AI provider,或使用 provider 名只搜一个 provider。

Terminal window
sivtr search terminal --match "panic|failed"
sivtr search agent --match "TODO|next step|decision"
sivtr search pi --match "workspace picker" --in title

--match 是大小写不敏感正则。--in 选择搜索字段:

Field搜索范围
content合并后的 record content,默认值
titlerecord / dialogue 标题
sessionsession id / title
input用户输入 / 命令输入
output助手输出 / 命令输出
command终端命令文本
all所有可搜索文本
Terminal window
sivtr search agent --since today --format timeline
sivtr search terminal --since yesterday --until today --format md
sivtr search pi --last 2h --format compact

时间过滤支持 RFC3339 时间戳、Unix 秒/毫秒、30m2h7d 这样的相对时间,以及 todayyesterdaytomorrowthis morningthis afternoonthis eveningtonightnow 等别名。

Terminal window
sivtr search terminal --status failure --latest 1 --json
sivtr search terminal --exit-code 101 --format timeline
sivtr search terminal --min-duration 500ms --sort duration --format compact

常用排序:

  • newest
  • oldest
  • duration
  • duration-asc
  • exit-code
  • exit-code-asc

--latest <N> 会先保留最新 N 条匹配记录;--sort 再控制最终展示顺序。

Terminal window
sivtr search agent --since today --format timeline
sivtr search agent --since today --format compact
sivtr search agent --since today --format md
sivtr search agent --since today --format workset

格式只是同一组搜索结果的不同视图,不是“人类格式”和“Agent 格式”的硬切分。按下一步要做什么来选:

Format适合场景
timeline按时间扫读、重建交接、发现 gap。人和 Agent 都容易读。
compact想要低噪声的 time/source/title 列表。
md复制进笔记、报告、prompt 或 handoff 草稿。
workset需要让下一条命令或另一个程序解析 refs 和 materialized records。
refs逐行 plain refs,适合快速查看或复制。

Terminal stdout 默认 full;piped stdout 默认 workset--json--format workset 的便捷别名。当任务是理解、回顾、总结时,Agent 也可以直接读 timelinecompactmd

已有 WorkSet 后,用 filter 继续缩小范围,避免重复跑宽泛搜索:

Terminal window
sivtr search terminal --status failure --latest 20 --save failures --refs
sivtr filter @failures --match "panic|compile" --save focused --refs
sivtr filter @focused --parts --io output --kind tool_output --refs

在 shell pipeline 里,@ 从 stdin 读取 WorkSet JSON:

Terminal window
sivtr search terminal --json | sivtr filter @ -m error --refs

不要把 --refs 输出管给 @@ 需要 WorkSet JSON。

当精确移动路径很重要时,用 nav。Motion 是确定性的,不会默认展开 child。

Motion含义
<父级。part/line 到 record;record 到所属 session records。
>N第 N 个 child,1-based。record 的 children 是 parts。
+N当前层级向后移动 N 个 sibling。
-N当前层级向前移动 N 个 sibling。
[A..B]当前层级 sibling window。
~所属 session records。

示例:

Terminal window
sivtr nav @focused[1] '<' --refs
sivtr nav @focused[1] '<+1>1' --refs
sivtr nav @focused[1] '<[-2..+2]' --refs
sivtr nav @focused[1] '~' --refs

只想围绕命中补 record 上下文时用 zoom

需要把 WorkSet 作为命名本地记忆保留下来时,用 var

Terminal window
sivtr var set ctx @last
sivtr var list
sivtr var merge ctx @focused @last[1]
sivtr var drop ctx @noise
sivtr show @ctx --full

Ref/selector 形状如下:

source/session[/record-or-turn[/line]]
source/session/record/<i|o>/<part>

具体 ref 指向单个 record、单行或单个 part。作为命令输入时,record/turn 和 line segment 也可以是 3-5,7 这样的 selector;输出 ref 仍然是具体锚点。Part ref 使用 i(输入)或 o(输出)加上 1-based part 索引。

打印一个 record 或 turn:

Terminal window
sivtr show pi/<session>/<turn>
sivtr show terminal/<session>/<record>

打印某条 1-based line:

Terminal window
sivtr show claude/<session>/<turn>/<line>
sivtr show terminal/<session>/<record>/<line>

打印特定的 input 或 output part:

Terminal window
sivtr show codex/<session>/<turn>/o/1
sivtr show terminal/<session>/<record>/i/2

用 selector 语法打印多个 record 或 line:

Terminal window
sivtr show pi/<session>/3-5,7
sivtr show pi/<session>/3/5-7,10

机器可读 WorkSet 输出:

Terminal window
sivtr show @ctx --json
  1. 先用足够窄的搜索拿证据:

    Terminal window
    sivtr search terminal --status failure --latest 1 --refs
    sivtr search agent --match "current task|failed|TODO" --since today --format timeline
  2. 保存并缩小可复用结果集:

    Terminal window
    sivtr search agent --match "decision|TODO" --latest 20 --save hits --refs
    sivtr filter @hits --match "workspace|nav|filter" --save focused --refs
  3. 需要时移动或扩展 anchors:

    Terminal window
    sivtr nav @focused[1] '<[-1..+1]' --refs
    sivtr zoom @focused[1] -C 2 --save ctx --refs
  4. 打印精确内容:

    Terminal window
    sivtr show @ctx --full
    sivtr show <source/session/record-or-turn>
  5. 需要紧凑引用、脚本输入或后续 Agent 的上下文句柄时,再使用精确 part/line ref。