用途
ctop 是一款终端下的交互式进程查看器,定位为“AI 编程智能体的 htop”。它用于在单一终端窗格中监控 Claude Code、Codex CLI、OpenCode 和 Devin 等 AI 编程智能体会话,帮助用户实时掌握各会话的资源占用与运行状态。
主要能力
- 多智能体监控:支持 Claude Code、Codex CLI、OpenCode、Devin,实时显示 CPU、内存和状态。
- 上下文窗口跟踪:以可视化条形展示输入、缓存、输出和空闲部分。
- 费用估算:按会话及汇总估算 API 成本(基于 Claude 与 OpenAI 定价)。
- 令牌波形:实时火花线显示令牌活动脉冲。
- 两种视图模式:列表视图(表格)与窗格视图(卡片网格),按 P 切换。
- 实时日志跟踪:在分割窗格中流式查看对话(L)。
- 排序、过滤、搜索:可按 CPU、内存、上下文、分支、模型或全文(F)进行。
- 仪表盘与历史:聚合统计(d)、24 小时用量图表(H)。
- 进程控制:终止会话(优雅或强制)、批量多选关闭、快速跳转到项目目录。
- 桌面通知:会话完成时收到通知。
- 5 种颜色主题:default、minimal、dracula、solarized、monokai(支持自定义)。
- 插件系统:通过 ~/.ctop/plugins/ 以自定义列进行扩展。
- 压缩与速率限制检测:标记压缩事件和配额使用情况。
- 面向智能体的 CLI 模式:ctop ls、ctop whoami、ctop alerts 等。
使用方式
运行 ctop 即可启动。若没有正在运行的智能体,会显示空状态;启动一个 Claude Code、Codex、OpenCode 或 Devin 会话后,它会在下次刷新时出现。
键盘快捷键与鼠标操作:鼠标可点击选择、滚动导航、点击 ★ 栏固定/取消固定,Shift+点击可标记(尽力而为)。
固定会话:按 p(或点击行内 ★ 栏,或 Pin 底部按钮)固定光标下的会话,它将跳转到顶部的黄色 ★ Pinned 区域,并在排序或过滤时保持可见。固定适用于列表、分组和窗格视图。固定以会话身份(而非 pid)为键,因此可在刷新、会话重启和退出 ctop 后保留,持久化于 ~/.ctop/pins.json。再次按 p 取消固定。
批量标记与操作:按 Space 标记光标下的会话,或按住 Shift 同时按 ↑/↓ 扩展范围;按 V 进入 vim 风格范围模式(然后移动以扩展),按 a 选择所有可见项。标记后可一次对整组执行 x/X 关闭,需确认提示;Esc 清除选择。适用于列表、窗格和分组视图。
关于 Shift+点击:许多终端(Terminal.app、iTerm2、GNOME Terminal 等)会保留 Shift+点击用于自身文本选择,不会转发给应用,因此 Shift+点击标记是尽力而为。键盘路径(Space / Shift+↑/↓ / V)在所有环境可用。
ctop 技能:本仓库自带一个自包含的 ctop 技能,可放入 Claude Code,使任何智能体学会何时以及如何调用 ctop。安装后,可向任意 Claude Code 会话询问“what other agents am I running”“how much have my sessions cost”“is my context about to compact”等问题,智能体会自动使用 ctop。技能包含 SKILL.md(触发表与常见模式)、reference.md(完整的逐命令规范)、examples.md(可复制粘贴的示例)。
CLI 模式(面向智能体和脚本):ctop 不带参数启动交互式 TUI;ctop <subcommand> 运行一次性查询后退出,因此 AI 智能体可从另一个终端内省自身会话和同伴会话。whoami 通过 $CTOP_PID → 父 PID 遍历 → $PWD 匹配来检测调用会话,并带有 matchConfidence 标签(exact | ppid | cwd-guess | none),使智能体了解答案的可信程度。读取工具展示用户本可从磁盘读取的数据。kill 在发送信号前会强制检查 uid 归属和智能体会话,不存在 kill-all。
CLI 标志(TUI 模式)与配置文件(~/.ctoprc):CLI 标志会覆盖配置文件值。
数据来源:从 ps(Windows 上为 PowerShell)读取进程信息,通过 lsof 解析工作目录,并用本地 JSONL 文件(Claude 的 ~/.claude/projects/,Codex 的 ~/.codex/sessions/)和 SQLite 数据库(OpenCode 的 ~/.local/share/opencode/,Devin 的 ~/.local/share/devin/cli/)中的会话元数据丰富每个进程。无网络调用,无外部依赖。
插件扩展:在 ~/.ctop/plugins/ 中创建 .js 文件以添加自定义列。更多示例见 examples/plugins/。
适用场景
适合同时运行多个 AI 编程智能体会话的开发者,用于在一个终端界面内监控资源使用、上下文窗口、费用和会话状态;也适合 AI 智能体或脚本通过 CLI 模式自省会话信息。
限制
支持 macOS、Linux 或 Windows;Windows 使用 PowerShell 进行进程检测,工作目录解析比 macOS/Linux 更有限。需要运行 Claude Code、Codex CLI、OpenCode 和/或 Devin(终端)会话。读取 OpenCode 和 Devin 会话需要 PATH 上有 sqlite3(macOS 内置;Linux 可通过 apt/brew 安装)。kill 不存在 kill-all 操作,且受 uid 归属与智能体会话检查约束。Shift+点击标记在部分终端中可能不生效。