Codync
免费开源的 1:1 Grok Bot 与 Muse 替代方案。可在 iPhone、Mac 或 Linux 桌面上将 Claude 代码、Codex、Cursor 以及 40 多个编码代理作为持久机器人使用。支持群组聊天、线程、应用。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
See which agent session, tmux pane or app is eating your Mac's memory, and let your coding agent ask too. Menu bar app + CLI with JSON, zero tokens.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗See which agent session, tmux pane or app is eating your Mac's memory — and let your coding agent ask too.
brew install zhenninglang/tap/whoate
whoate top --json # owners ranked by memory
whoate why 12345 --json # who owns this pid, and why
whoate agent-guide # the agent instructions (SKILL.md)
whoate top --by cpu -n 20 --json # by CPU
whoate orphans --json # leftovers from closed terminals
whoate agents --json # coding-agent sessions
whoate pane '%12' --json # everything under a tmux pane
whoate swarms --json # many copies of the same command
whoate watch --interval 2s --json-lines
whoate kill 12345 --dry-run # preview; --yes only after a human approves
whoate insights --list # every knowledge-base entry, with source and date
schema: "whoate/v1". Memory is in bytes; CPU is
percent of one core. null means unknown, never zero.origin.launched_from says where it was started (a
terminal app, a tmux pane, or the app that launched it).0 normal, 1 an "act" diagnosis or a fatal error (JSON then
carries error), 2 bad arguments, 3 target not found, 4 refused for
safety (root, Apple platform binaries and whoate itself are never killed).null
unless you pass --prompts.Give your agent the instructions: whoate agent-guide prints SKILL.md. Save it
as .claude/skills/whoate/SKILL.md (Claude Code), .kilocode/skills/whoate/SKILL.md
(Kilo) or .opencode/skills/whoate/SKILL.md (OpenCode):
mkdir -p .claude/skills/whoate && whoate agent-guide > .claude/skills/whoate/SKILL.md
The JSON Schema is installed at $(brew --prefix)/share/whoate/whoate-v1.schema.json
(the Release tarball has it under schema/); the source is
schema/whoate-v1.schema.json.
schema: "whoate/v1") and meaningful exit codes. Diagnosis
is rule-based on your machine: no model calls, no network, no tokens spent.In the app, the left column groups owners into categories such as AI & Agent
(coding-agent sessions and AI apps), apps and orphans. Its numbers, like the
Owners · footprint list, are footprint: physical memory plus compressed or
swapped memory, so owners can add up to more than your RAM. Each row starts with
where the owner was launched from, for example Ghostty · tmux main:10.1.
Product page · Releases · Changelog · 中文说明
| Menu bar panel | A browser and its helper processes |
|---|---|
| An orphan from a closed terminal | Settings → Command Line |
| Dark mode | |
Apple Silicon, macOS 14 (Sonoma) or later.
brew install zhenninglang/tap/whoate
That installs the whoate CLI. The menu bar app:
brew install --cask zhenninglang/tap/whoate
or download the …-macos-arm64-app.zip asset from
Releases and move whoate.app
to Applications.
The app also carries the CLI. With the app alone, put it on your PATH from
whoate Settings → Command Line → Install. If you later install the formula
and Homebrew reports a link conflict, run brew link --overwrite whoate.
whoate.app is ad-hoc signed but not notarized (notarization needs a paid Apple Developer account; v1 skips it). macOS therefore blocks the first launch. To allow it once:
Or remove the quarantine flag in Terminal:
xattr -d com.apple.quarantine /Applications/whoate.app
Upgrade with brew upgrade whoate and brew upgrade --cask whoate; the app never
checks for updates and never goes online. Uninstalling and building from source:
docs/install.md.
Name your own processes and attach advice in ~/.config/whoate/rules.toml
(override the path with WHOATE_RULES). Each [[rules]] entry needs a label,
an advice, and at least one matcher; the first matching rule wins.
| Field | Meaning |
|---|---|
executable | File name of the executable, e.g. node (not a path) |
argv_regex | Regular expression matched against the full command line |
cwd_prefix | The process's working directory starts with this path |
label | Name shown for the owner (required) |
advice | Your advice, shown as a fact on the owner (required) |
[[rules]]
executable = "node"
argv_regex = "vite( |$)"
cwd_prefix = "/Users/me/work/shop"
label = "Shop dev server"
advice = "Stop it with Ctrl-C in its pane when you are done."
Unknown fields, empty matchers or a bad regex disable the whole file; whoate
then reports an issue with stage: "user_rules" in the JSON issues[].
whoate only reads local process and session information. It does not use the network, does not call any model, and never changes another application's settings; advice is for you to act on.
If whoate helped, star it on GitHub: it helps other people find it. Or buy me a hot cup of coffee: it's a cold winter in the software industry (WeChat Pay):
看清是哪个编程助手会话、哪个 tmux 分屏、哪个应用在吃 Mac 的内存,也让你的编程助手自己来查。
whoate 还按各个软件自己的结构解释进程,例如编程助手会话和它的 MCP 服务、Chrome 的标签页进程与扩展进程、Docker 的虚拟机与容器、IDE 的语言服务。建议来自内置知识库,每条都附出处和核对日期(whoate insights --list 可全部列出)。
应用左栏按类别分组,例如「AI & Agent」(编程助手会话和 AI 应用)、应用、孤儿进程。左栏和「归属 · 占用」列表里的数字是占用:占用 = 物理内存 + 压缩/swap,所以各归属相加可以超过物理内存总量。每行开头写从哪启动,例如 Ghostty · tmux main:10.1。
只支持 Apple Silicon、macOS 14 及以上。
brew install zhenninglang/tap/whoate # 命令行
brew install --cask zhenninglang/tap/whoate # 菜单栏应用
应用里也带了命令行工具。只装了应用时,在 whoate 设置 → 命令行 →「安装」 把它放进 PATH;之后再用 Homebrew 装命令行、提示链接冲突时,运行 brew link --overwrite whoate。更新用 brew upgrade whoate、brew upgrade --cask whoate;应用不会自己检查更新,也不联网。
应用没有做 Apple 公证(第一版不办开发者账号),首次打开会被系统拦下。放行步骤:先打开一次 whoate.app,在弹窗里点「完成」;然后打开 系统设置 → 隐私与安全性,在页面下方找到 whoate 的提示,点 「仍要打开」,再输入密码或用触控 ID 确认。也可以在终端执行 xattr -d com.apple.quarantine /Applications/whoate.app。
whoate top --json(谁占内存)、whoate why <pid>(某个进程归谁、为什么)、whoate agent-guide(给 agent 的完整说明);内存单位是字节,null 表示未知、不是 0。whoate agent-guide 打印 SKILL.md,按上文放进 .claude/skills/whoate/ 等目录即可。whoate kill <目标> --dry-run 预览,人同意后才加 --yes。~/.config/whoate/rules.toml,格式见上文「Your own rules」。觉得有用,请在 GitHub 上点个 Star,让更多人看到它。也可以给我买一杯热腾腾的咖啡,软件行业的冬天太冷了:
介绍页:https://zhenninglang.github.io/whoate/ · 更新记录:CHANGELOG.md