@assertlabs/cli

中文文档
0.1.22发布于 2026/08/02MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 8480

logo
显示

从任何编码代理共享会话数据 .

中文使用文档
文档目录11 节
  1. 关于
  2. 如何运作
  3. 安装
  4. 初始化钩子
  5. 所需资源
  6. 会话格式
  7. 支助代理人
  8. 图标
  9. 控制捕获
  10. 代理追踪
  11. 许可证

logo
显示

从任何编码代理共享会话数据 .
关于 • 妇女 安装 • 妇女 会话格式 • 妇女 支助代理人 • 妇女 文档

npm version license ci release discord

关于

从任何代理编码工具中捕获 AI 代理会话, 作为您仓库历史的一部分, 并在代码审查时引用它们 .

如何运作

  1. 全球钩子 在每个代理配置目录中初始化.
  2. 随着代理工作,每个事件(快感,工具呼叫,响应)都被捕获 到你的货柜外的一家中央商店.
  3. 在每一个转弯边界, 转弯的事件被写成 .sessions/ 作为 新JSONL文件——每转一圈,在一个会话目录内. 文件已经 所以捕捉只会增加你的工作树.
  4. Repo 在代理更改其中的文件和会话之前一无所获 横跨数个重担的字写在它所碰到的每个重担上.

安装

[注] 现在,只支持MacOS/Linux操作系统.

原生安装( 建议 ):

curl https://assert.dev/install -fsS | bash

乡人:

brew install assert-labs/tap/assert

国家预防机制:

npm install -g @assertlabs/cli

资料来源:

git clone https://github.com/Assert-Labs/cli.git
cd cli
pnpm install
pnpm build
npm install -g .

初始化钩子

# Initialize hooks for all supported agents
assert init

恢复您的代理( 或重新装入其插件) assert init 所以它会恢复 新安装的钩子.

安装命令不重要. assert init 安装钩子 支持的特工——包括你尚未安装的特工——进入该特工的 标准插件目录。 您安装的代理 待会 自动发现钩子 在它的第一跑步, 不需要再动。 你还可以重新运行 assert init 任意 刷新钩子的时间(例如升级后坚持,或拾取代理 ),或 assert init <agent> 只能装一个.

所需资源

  • macOS 或 Linux, x64 或 arm64( 尚未建立 Windows 或 Alpine/ musl )
  • git 可用在您的路径上 —— CLI 弹壳在运行时显示
  • 如果通过国家预防机制或从来源安装: Node.js 18 or later

会话格式

会话是JSONL:每行一次JSON事件,无论哪个都用一个计划 特工制造出来的 每个事件都带有 type页:1 sessionId,以及一个ISO timestamp。 。 。 .

Claude Code读过一个文件 Read {file_path}打开代码 read {filePath},皮带 read {path},以及 编码器编辑方式, 将整个补丁块通过下面 command。每个代理的适配器 确定在捕捉时间, 所以每一个 tool_call 带克南克 action 与工具的自有名称并列 :

{
  "type": "tool_call",
  "timestamp": "2026-07-20T10:00:03.000Z",
  "sessionId": "…",
  "turnId": "…",
  "toolCallId": "…",
  "toolName": "apply_patch", // the agent's name for the tool
  "action": {
    // the canonical, cross-agent view
    "kind": "edit",
    "paths": ["src/a.ts"], // repo-relative, POSIX
  },
  "input": { "command": "*** Begin Patch…" }, // the agent's raw payload
}

action.kind 这是其中之一 read, (中文(简体) ), edit, (中文(简体) ), write, (中文(简体) ), delete, (中文(简体) ), search, (中文(简体) ), web, (中文(简体) ), command, (中文(简体) ), task, (中文(简体) ), todo,或 other,与 paths, (中文(简体) ), command, (中文(简体) ), query,以及 url 携带细节。 适配器无法识别的工具(新工具) 内置, MCP 工具)报告为 other 而不是猜测.

读取 action; 处理 toolName 作为显示标签和 input 作为调试 细节. @assertlabs/cli/core 曝光情况 parseSession(),该返回 有链接的转折和提示的模型(并填写) action 用于记录 在它存在之前).

支助代理人

探员 插件位置
Claude Code 克劳德代码 ~/.claude/skills/assert/
Codex 代码 ~/.codex/config.toml
Cursor 光标 ~/.cursor/plugins/local/assert/
OpenCode 打开代码 ~/.config/opencode/plugins/assert.ts
Pi Pi ~/.pi/agent/extensions/assert.ts
  • 代码支持需要 现代代码 CLI (用钩子搭建的锈; 遗产) @openai/codex (单位:千美元)0.1.x没有钩子支撑,而且 assert init 当它只找到这个版本时警告.
  • 如果您想要为特定代理添加支持,请查看 捐款额 并看看是否很快会增加这个代理 问题 财务报告和审定财务报表 拖动请求。 。 。 .

图标

assert init [agent]         # Initialize hooks globally (all agents if none specified)
assert sessions             # List sessions in current directory (--all for central storage)
assert show <session-id>    # Show session details
assert blame <file>         # Show line-by-line agent attribution (like git blame)
                            #   [--json | --ndjson] [--range <start>:<end>]
assert blame --diff <a>..<b> # Attribute only a diff's added lines (PR review)
assert trace [ref]          # Export agent-trace attribution for a revision (default HEAD)
assert status               # Show current status
assert private              # Keep capturing, but stop writing sessions into this repo
assert public               # Resume writing sessions into this repo (default)
assert sync                 # Publish local-only sessions into the repo + rebuild blame index
assert cleanup              # Mark stale still-open sessions ended (default idle > 24h; --hours <n>)
assert redact <target>      # Redact current-turn, last-tool-input, or last-tool-output
assert disable              # Pause capture (hooks stay installed)
assert enable               # Resume capture
assert help                 # Show help

控制捕获

会话数据被写入 repo 中 .sessions/ 当代理工作,所以它 出现于 git status 像任何其他文件一样,你亲自表演并投入.

  • 跳过文件 : 添加一个 .assertignore 到 repo 根( gitignore 样式) 模式,例如:. dist/, (中文(简体) ), *.log) (中文(简体) ). 只触摸被忽略路径的更改不会 触发抓取或出现在会话数据中.
  • 持续关闭 : assert disable 暂停抓取( 停止) )直到运行 assert enable。 。 。 . assert status 显示当前 状态.
  • 关闭一个会话 : 设定 ASSERT_DISABLE=1 在环境中,你 探员进来了.
  • 保留本地会话 : assert private 继续捕捉到中央商店 但是不要写到这回波 .sessions/· ; assert public (默认) 简历. assert sync 将任何本地会话发布到 repo 和 重建指责索引——在切换分行后或公开后方便.

代理追踪

抓取会话可导出为 代理追踪 记录——AI代码归属的开放标准 (单位:千美元)光谱参考) (中文(简体) ). assert trace 产生符合性 TraceRecord 从您承诺的届会开始的修订 数据(将行划入贡献模型),因此,任何工具都可以消耗 属性 :

assert trace            # agent-trace record for HEAD
assert trace <ref>      # for a specific commit

许可证

此寄存器根据 MIT 许可证

版本与发布记录

@assertlabs/cli 共发布 19 个版本,首次发布于 2026/06/26;过去 12 个月发布了 19 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.22latest2026/08/023 个月前
0.1.212026/08/023 个月前
0.1.202026/08/023 个月前
0.1.192026/08/023 个月前
0.1.182026/07/313 个月前
0.1.172026/07/313 个月前

关于 @assertlabs/cli 的常见问题

@assertlabs/cli 是什么?

显示 从任何编码代理共享会话数据 .

如何安装 @assertlabs/cli?

在项目目录运行 npm install @assertlabs/cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 assert,可以用 npx assert 直接运行。

@assertlabs/cli 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@assertlabs/cli 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@assertlabs/cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@assertlabs/cli 可以商用吗?

@assertlabs/cli 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@assertlabs/cli 的下载量有多少?

根据 npm 官方下载统计,@assertlabs/cli 在 2026/10/07 – 2026/11/05 这 30 天内被下载 8,480 次,日均约 283 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@assertlabs/cli 还在维护吗?

最新版本 0.1.22 发布于 2026/08/02(3 个月前);至今共发布 19 个版本,其中过去 12 个月发布了 19 个;首次发布于 2026/06/26。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。