Skip to content

Repository files navigation

AgentWatch

跨平台桌面监控工具 — 监控 Claude Code 和 OpenAI Codex 进程的资源使用情况。

支持 macOS / Windows / Linux 三平台,提供 CLI、Web 仪表盘、Electron 桌面应用三种使用形态。

功能

进程监控

自动发现所有 Claude Code / Codex 进程及其完整子进程树,包括 bash、node 子进程。

CPU / 内存监控

  • 进程级:每个进程的 RSS(物理内存)、VSZ(虚拟内存)、CPU 使用率
  • 系统级:整体 CPU 使用率、RAM 使用量/总量、负载均值

磁盘统计

监控 Claude/Codex 相关目录的磁盘占用(~/.claude/~/.codex/、缓存目录等)。

僵尸/孤儿检测

三类异常进程自动识别:

类型 说明 处理方式
defunct 内核 Z 状态僵尸进程 杀掉父进程让 init 回收
orphan 父进程已死亡 直接杀掉孤儿进程
suspected PPID=1 的 node 进程(疑似残留) deep 模式可清理

一键清理

  • CLI:agentwatch cleanup [--yes] [--deep]
  • Web 仪表盘:红色脉冲按钮,一键清理
  • Electron:托盘菜单 → 原生确认弹窗 → 清理

三种仪表盘形态

形态 命令 说明
ANSI TUI agentwatch watch 终端实时刷新面板
Web 仪表盘 agentwatch web 浏览器访问 localhost:9741
桌面应用 npm run dev Electron 窗口 + 系统托盘

安装

开发运行

cd agentwatch
npm install

三种启动方式:

# CLI 模式
node src/index.js status

# 全局安装 CLI
npm link
agentwatch status

# Electron 桌面应用
npm run dev

构建独立安装包

npm run build:linux    # AppImage / deb
npm run build:mac      # dmg / zip
npm run build:win      # NSIS 安装包 / portable
npm run build:all      # 三平台全部构建

构建产物在 dist/ 目录。

使用方法

CLI 命令

命令 说明 选项
agentwatchstatus 一次性状态快照(默认) --json
agentwatch watch 实时 ANSI 面板 -n <秒> 刷新间隔
agentwatch zombie 列出异常进程 -d, --deep 含疑似孤儿
agentwatch cleanup 清理异常进程 -y, --yes 跳过确认 -d, --deep
agentwatch disk 仅看磁盘 --json
agentwatch branch [path] 只读审计本地与远程分支 --refresh 刷新远程并读取 PR 元数据
agentwatch web 启动 Web 仪表盘 -p <端口> -n <秒>

全局选项:--json(JSON 输出)、--no-color(无彩色)、-V(版本)、-h(帮助)

Web 仪表盘

agentwatch web              # 默认端口 9741
agentwatch web -p 8080      # 自定义端口

浏览器打开 http://localhost:9741,实时 WebSocket 推送数据。

Electron 桌面应用

npm run dev                 # 开发模式
  • 系统托盘图标实时显示 CPU/内存/进程数
  • 右键托盘菜单:打开面板 / 一键清理 / 开机自启 / 刷新间隔 / 退出
  • 关闭窗口最小化到托盘(不退出)
  • Ctrl+D 切换 Deep 清理模式

输出示例

  AgentWatch  —  Mon Jul 06 15:30:00 2026

  State: R=运行  S=睡眠  D=等待IO  T=停止  Z=僵尸

  CLAUDE       2 实例, 0 zombies    RSS: 884.21 MiB    VSZ: 143.79 GiB
  ├─ claude [20647]  S     RSS 430.55 MiB  claude
  └─ claude [528637]  S     RSS 398.54 MiB  claude
    └─ bash [537984]  S     RSS   3.52 MiB  /bin/bash -c source ...

  CODEX        1 实例, 0 zombies     RSS: 174.31 MiB    VSZ: 675.24 MiB
  └─ codex [354559]  T     RSS 174.31 MiB  codex

  ORPHANS     0 疑似遗留进程

  DISK
  claude    ~/.claude/                      269.86 MB
  codex     ~/.codex/                       2.02 GB

技术架构

agentwatch/
├── bin/agentwatch.js              # CLI shebang 入口
├── src/
│   ├── index.js                   # Commander CLI 路由(不变)
│   ├── main.js                    # Electron 主进程
│   ├── preload.js                 # contextBridge IPC 桥接
│   ├── lib/
│   │   ├── discovery.js           # 进程树构建 + 匹配 + 孤儿分类
│   │   ├── zombie.js              # 僵尸检测 + 清理
│   │   ├── disk.js                # 磁盘测量(Linux du / macOS du / Win PS)
│   │   ├── web.js                 # Express + WebSocket 服务器
│   │   ├── system.js              # systeminformation 封装(CPU/内存)
│   │   ├── tui.js                 # ANSI 实时 TUI 面板
│   │   ├── formatter.js           # 彩色输出 + JSON
│   │   ├── utils.js               # 工具函数
│   │   └── platform/              # 平台抽象层
│   │       ├── index.js           # 按 process.platform 分发
│   │       ├── linux.js           # /proc 后端
│   │       ├── darwin.js          # ps 后端
│   │       └── win32.js           # PowerShell/WMIC 后端
│   └── renderer/                  # Electron 渲染进程
│       ├── index.html             # 仪表盘 HTML
│       ├── style.css              # 样式
│       ├── app.js                 # 渲染逻辑
│       └── data-provider.js       # IPC / WebSocket 抽象
├── assets/                        # 图标资源
├── build/                         # 构建配置(macOS 权限等)
├── electron-builder.yml           # electron-builder 配置
└── package.json

核心依赖

用途
commander CLI 命令框架
chalk 终端彩色输出
express + ws Web 仪表盘(HTTP + WebSocket)
systeminformation 跨平台系统 CPU/内存信息
electron 桌面应用壳
electron-builder 三平台构建打包

平台抽象

src/lib/platform/process.platform 自动选择后端:

平台 进程枚举 进程终止 磁盘测量
Linux /proc 文件系统 SIGTERM → SIGKILL du -sb
macOS ps -A -eo SIGTERM → SIGKILL du -sk
Windows PowerShell Get-CimInstance taskkill/F PowerShell Get-ChildItem

系统要求

  • 操作系统:macOS / Windows / Linux
  • Node.js:>= 18.0.0
  • 构建桌面应用需要联网下载 Electron 二进制文件

About

Monitor Claude Code and OpenAI Codex resource usage on Linux — memory, disk, processes, zombie cleanup

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages