abtop --json深度解析AI Agent会话状态一键转JSON快照接入自动化脚本【免费下载链接】abtopLike htop, but for AI coding agents. Monitor Claude Code Codex CLI sessions, tokens, context window, rate limits, and ports in real-time.项目地址: https://gitcode.com/gh_mirrors/ab/abtopabtop 是一款面向 AI 编程 Agent 的终端监控工具像 htop 一样但监控的是 AI Agent。它的--json参数可以把本机所有 Claude Code、Codex CLI 和 OpenCode 会话的实时状态——token 用量、上下文窗口占用、速率限制、子进程与端口——一键导出为机器可读的 JSON 快照是构建自动化脚本、告警钩子和自定义面板的标准数据接口。abtop --json 是什么为什么脚本需要 JSON 快照abtop 提供三种工作模式模式命令输出TUI 界面abtop交互式终端面板供人查看一次性文本快照abtop --once人类可读的会话列表一次性 JSON 快照abtop --json单个格式化 JSON 对象打印后退出--json模式专为脚本设计入口逻辑见 src/lib.rs单次 tick 即退出只做一次数据采样不进入轮询循环适合放进 cron 或 shell 管道零额外开销内部调用tick_no_summaries()不会派生claude --print子进程因此不消耗你的 Claude 配额纯读取快照生成函数to_snapshot()不触发任何写操作或外部调用可安全重复调用。快速上手安装 abtop 并输出第一个 JSON 快照macOS / Linux 安装curl --proto https --tlsv1.2 -LsSf https://raw.githubusercontent.com/graykode/abtop/main/install.sh | sh或者更简单cargo install abtop 提示在 Linux 上监控 OpenCode 会话需要安装sqlite3。输出第一个快照abtop --json如果你还没跑任何 Agent也可以用演示数据预览快照结构方便先写脚本abtop --demo --json | head -40逐字段拆解JSON 快照里有哪些数据顶层结构定义在 src/snapshot.rs 的Snapshot结构中完整包含 8 个部分字段含义generated_at_ms快照生成的 Unix 毫秒时间戳host主机 CPU / 内存 / 1 分钟负载src/host_info.rsaggregate全部会话汇总总内存、平均上下文占用、活跃会话数token_rate最近一次采样的活跃 token 速率tokens/次interval_ms采样间隔毫秒数一次性模式固定为 2000sessions核心所有实时会话数组与 TUI 顺序一致rate_limits账号级速率限制Claude 5 小时 / 7 天窗口orphan_ports孤儿端口一次性快照中为空需长驻监控才填充mcp_servers检测到的 MCP 服务器进程、内存、活跃度sessions 数组每个会话 40 个字段sessions中的每个元素SessionView是脚本能拿到的全部弹药重点字段身份agent_cliclaude/codex/opencode、pid、session_id、project_name、cwd、git_branch状态status序列化为 6 种稳定字符串——Thinking、Executing、Waiting、Unknown、RateLimited、Done定义于 src/model/session.rs属于对外契约不会随意改名Tokentotal_tokens、input_tokens、output_tokens、cache_read_tokens、cache_create_tokens、turn_count、token_history最多 64 个点的每轮趋势上下文context_percent0–100、context_window如 200000、compaction_count压缩事件次数进程mem_mb、children子进程及各自监听端口详情summary、current_task、subagents、tool_calls最近 24 次、chat_messages脱敏后的对话尾部⚠️ 小坑token_rate只统计活跃 tokeninput output cache_create不含cache_read因此它不等于相邻两次total_tokens之差换算成每秒速率时请用token_rate / (interval_ms / 1000)。3 个自动化配方用 jq 监控 token、上下文与限流下面的配方覆盖最常见的运维诉求。① 上下文占用超 90% 的会话告警abtop --json | jq -r .sessions[] | select(.context_percent 90) | \(.project_name) \(.context_percent)%② 当前活跃思考/执行中的 Agent 数量abtop --json | jq [.sessions[] | select(.status Thinking or .status Executing)] | length③ 查看账号级速率限制提前预知限流abtop --json | jq .rate_limits返回中five_hour_pct/seven_day_pct是窗口使用百分比resets_at是重置时间戳。如果你还没配置 Claude 的限流采集可以先运行abtop --setup它会安装 scripts/abtop-statusline.sh 对应的钩子来落地限流数据。放进 cron 即可实现上下文快满了就发通知*/5 * * * * abtop --json | jq -r .sessions[] | select(.context_percent 90) | .project_name | xargs -I{} notify-send abtop: {} 上下文告警隐私提醒JSON 快照应视为本地私有数据TUI 模式下只显示工具名和文件路径但 JSON 快照更丰富包含summary、chat_messages、cwd、工具调用预览等。虽然采集器对文本做了截断与脱敏内容仍来自本地转录、可能含敏感项目信息。建议不要把abtop --json的输出写入共享日志、CI 产物或公开面板除非你自行做了访问控制。进阶用 abtop 库构建长驻 JSON 服务如果一次性快照不够例如要做一个 Web 面板abtop 同时是一个 Rust 库 crate——数据收集层可以进程内复用无需反复启动子进程扫描let mut app /* 用 config 构造 App */; loop { app.tick_no_summaries(); // 刷新状态不产生摘要 API 调用 let json serde_json::to_string(app.to_snapshot(2_000))?; // 把 json 字符串发给 Web 层休眠 interval 后循环 }注意App不是Send采集循环请固定在一个线程只把序列化后的 JSON 字符串传递到其他线程。库的稳定 API 与线程模型在 src/lib.rs 顶部有完整说明。总结abtop --json用一条命令把AI Agent 现在在干什么、烧了多少 token、离限流还有多远全部变成结构化数据✅ 单次采样、打印即退出天然适配 shell / cron / 管道✅ 状态字符串是稳定契约脚本可以放心match✅ 不消耗 Claude 配额不调用摘要生成✅ 需要长驻监控时直接升级为 Rust 库内循环监控 AI Agent从此不需要盯着屏幕。【免费下载链接】abtopLike htop, but for AI coding agents. Monitor Claude Code Codex CLI sessions, tokens, context window, rate limits, and ports in real-time.项目地址: https://gitcode.com/gh_mirrors/ab/abtop创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
