Devotd Github
新发现AI 智能体

kevin-liu-01/headroom 2.2 — 代理会话留下的进程列表与 Kill 按钮

这是一项变更:在 macOS 上 Claude、Codex 代理会话结束之后被 launchd 收养而残留的进程,会以列表形式显示出来,用户可以亲自确认并将其终止。

仓库信息kevin-liu-01/headroom ↗

这是一项变更:在 macOS 上 Claude、Codex 代理会话结束之后被 launchd 收养而残留的进程,会以列表形式显示出来,用户可以亲自确认并将其终止。

GitHub 项目说明: Memory alerts for Macs that run AI coding agents: which Claude session owns the memory, alerts before macOS runs out, and advice relayed to agents through a CLI, HTTP API, Claude Code hook and MCP server.

星标
★ 11
复刻
0
语言
Swift
许可证
MIT
查看原始来源 ↗在 GitHub 查看 ↗

kevin-liu-01/headroom 在 2026-10-28 的提交(3c27f73)为其 macOS 应用添加了“剩余进程(leftovers)”列表和 Kill 按钮。该应用汇总 Claude 和 Codex 桌面应用、它们的代理会话以及会话所启动的进程占用了多少内存,并显示在菜单栏中。该提交将这项变更标注为 2.2。

目标是那些会话、shell 或脚本已经结束却依然存活的进程。在 macOS 上,这类进程的父进程会变为 launchd(pid 1),因此从代理的进程树中消失,也不会出现在其他行中。Headroom 读取内核所保留的原始父进程的 pid 版本信息(proc_pidinfo 的 PROC_PIDUNIQIDENTIFIERINFO),只挑出被收养的进程,而不是 launchd 自行启动的应用。同一进程组中在 2 秒内启动的东西会被归为一项任务,因此 shell 遗留的 tail -F | grep 管道或测试浏览器的崩溃处理器会整个显示出来。窗口中并排列出种类、命令、文件夹、可复制的 pid、年龄、内存,以及 CPU 时间的最后一次采样(增加了核心的 1%);并按内存由大到小排序,与分组标题(“5 leftovers, 4.3 GB”)一起放在较重的工作之下。CLI 中新增了 headroom leftovers 表、--json,以及 headroom status 中的一行计数;实现则以新文件 Sources/HeadroomCore/Leftovers.swift 和测试文件 LeftoverTests.swift 的形式加入。

终止由用户亲自执行。Kill 按钮需要在 5 秒内再按一次才会执行:它会先向所有仍指向同一进程的 pid 发送 SIGTERM,5 秒之后对仍然残留的进程发送 SIGKILL。Headroom 自身从不杀进程。年龄基准是一个设置项,默认值为 30 分钟,设置文件保存在 ~/Library/Application Support/Headroom/settings.json。不过,判定仅限于在 home 文件夹、/opt/homebrew、/usr/local 中运行,或属于测试浏览器、搜索、shell 的情况,因此其他路径下残留的进程可能无法被捕获。这是 macOS 专属功能,提交消息中的运行案例仅以作者在自己开发的应用所运行的 Mac 上的个人经验提出,并没有单独的基准测试。如果你的 macOS 环境让代理长时间滞留,这是值得一看的变更。