macOS メニューバーアプリ · Claude Code / Codex / Qwen / Gemini / Cursor ほか 8 エージェント対応

動くエージェントを、
横から見る。

Claude Code を動かしたまま Codex も Qwen も開いていると、今どれが何をしていて、誰が誰を呼び出したのかは、しばらくすると分からなくなります。AgentBar はメニューバーに常駐し、各エージェントの「今」と呼び出し関係、トークンとコストの事後分析を、エージェントが自分でディスクに書いたファイルから再構成します。承認待ちは生ログの末尾レコードから検出して最上位に出します。AgentBar 自身は CLI も MCP もブラウザも起動しません。

macOS 14+ · Swift 6 / SwiftUI · メニューバー常駐 + Graph ウィンドウ

Finder土 8/1 10:33
AgentBar
ACTIVITY10s
Needs attention2

codexbar

Claude · sonnet-4.5 · 2m

Bash の承認待ち(ログ末尾から推定)

承認待ち

12.4k

landing-page

Qwen · qwen3-coder · 6m

入力待ち

8,204

Active1

agentbar

Codex · gpt-5-codex · 30s

実行中

3,120

Recent1

docs-site

Cursor · 42m

完了

9,881

Manual·
対応エージェント
8
使用量取得で起動するプロセス
0
既定の外部送信
0

機能

横から見る。何も起動しない。

popover と Graph ウィンドウが見せるのは、エージェントが自分でディスクに書き込んだ記録だけです。使用量・履歴・呼び出し関係はすべて、同じ土台の上に載っています。

POPOVER · Active タブ + 別ウィンドウ

「今」と「なぜ」を並べて見る

Active
各エージェントの「今」を実行中 / 承認待ち / 入力待ち / 完了 / 失敗 で一覧し、 承認待ちは最上位に繰り上がります。ファイルポーリングで監視し、Claude の承認待ちは生ログ末尾の tool_use(未完了)と result レコードから判定します。推測ではありません。
Graph
エージェント間の呼び出し関係をインデントツリーで表示。Claude が codex exec を呼び、その Codex が claude -p を呼ぶ、という連鎖を、ツール呼び出しのコマンドと時刻・作業ディレクトリから再構成します。ノードは実行単位(Run)なので、resume しても親子関係が壊れません。
Analysis
プロバイダ別のトークンと推定コスト、キャッシュヒット率、ボトルネック(最長 Run)、グラフの最大深度から「エージェントの連鎖が深すぎる」ことを警告します。コストは推定値で、サブスクリプションでカバー済みの可能性があります。請求根拠には使えません。
Rules
グローバル(~/.codex/AGENTS.md ~/.claude/CLAUDE.md 等)とプロジェクトのエージェント設定ファイルを、 存在は緑・未設定は灰で一覧し、選択するとその場で編集できます。Compare トグルでグローバルとプロジェクトを並べ、指示の重複を行単位で確認できます。未 import やレガシー設定の指摘もここです。

POPOVER · Usage / History タブ

読み先は、エージェントが書いたファイルだけ

使用量も履歴も、CLI・MCP・ブラウザを介しません。エージェントがすでに書き込んでいるファイルを読みます。

Claude~/.claude/projects/**/*.jsonl+ rate-limits.json
Codex~/.codex/sessions/YYYY/MM/DD/*.jsonl
Qwen~/.qwen/projects/<project>/chats/*.jsonl
Gemini~/.gemini/tmp/<project>/chats/*.jsonl
Cursor…/Cursor/User/globalStorage/state.vscdbSQLite 読取専用
Command Codeローカル履歴なし · リモート quota(opt-in)
OpenCode~/.local/share/opencode/storage/**/*.json
Hermes~/.hermes/state.dbSQLite 読取専用
Usage は日次のトークン・クォータ(80% から警告色)・モデル別内訳・推定コスト。History は直近 60 日のセッションから、会話ターン(user / assistant / tool)へドリルダウンします。

軽さは機能なので、実行時に証明しています

更新と自己監視

Update

npm brew cask app binary と、入れ方がバラバラな AI ツールを横断して更新します。実行はユーザーが操作したときだけで、全コマンドにハードタイムアウト付き。

Diag

CPU 時間・メモリ(RSS)・読み取ったファイル数を自分で計測し、popover に表示します。「起動した禁止プロセス数」は常に 0 であることが、そのまま数字で出ます。

ProcessGuard

使用量取得の前後で子孫プロセスのスナップショットを比較し、禁止プロセスが起動したらエラーにします。「起動しない」は実行時のチェックとして実装しています。

プロセス非起動と負荷境界の回帰テストを含む 172 テストで検証済み。

設計

使用量を読むために、エージェントを起動しない

使用量も、履歴も、エージェント同士の呼び出し関係も、エージェント自身がディスクへ書き込んだファイルから読めます。だから AgentBar は、使用量を得るためにエージェントを起動しません。CodexBar は同じデータを得るために CLI を定期起動します。差は最適化ではなく、設計です。

1回の使用量取得で、それぞれ何が起きるか。

CodexBar の 1 回の使用量取得

  1. タイマー
  2. claude CLI 起動
  3. MCP · OAuth · 自動更新
  4. ブラウザ · セッション作成
  5. Mac フリーズ

AgentBar の 1 回の使用量取得

  1. タイマー
  2. JSONL を開く
  3. パース
  4. 表示
比較項目CodexBarAgentBar
使用量の取得元エージェント CLI の定期起動(MCP・OAuth・自動更新つきの Node.js フルスタック)エージェントが既にディスクへ書き込んでいる JSONL / JSON ファイルの読取
サブプロセス起動する。MCP サーバー・自動更新・ブラウザまで巻き込む起動しない
ネットワークCLI 依存(自動更新だけで 49 GiB/日の報告)既定は通信なし。明示設定したリモート usage のみ例外
失敗時リトライ継続・キャッシュ破棄・データ欠落最後の正常データを保持し、取得時刻を明示
認証ダイアログKeychain プロンプトが数分おきに再表示(複数報告)バックグラウンドで認証ダイアログを出さない

CodexBar 欄は公開 Issues の報告に基づく記述です。詳細は docs/codexbar-issues.md を参照してください。

CodexBar の GitHub Issues から(抜粋)

#1767〜#2467 の 200 件を調査 · 2026-07-27 時点

  • #2052

    バックグラウンドプローブが CLI の自動更新を起動

    3 日間で 90.6 GiB のダウンロード。1 日あたり 257〜495 の Claude CLI プロセスが起動した。

  • #1844

    時間ごとの delegated CLI refresh がデフォルトブラウザを起動

    トークン期限の誤判定によるリカバリパスが /usr/bin/open を呼び、高速リトライ時は 20 秒〜3 分間隔でブラウザが開いた。

  • #2251

    プローブごとに空のアカウントセッションを新規作成

    数週間で 36 以上のファントムセッションが claude.ai に蓄積。プロバイダのレート制限にも抵触。

  • #1999

    CodexBarCLI のメモリが 46 GB + 29 GB まで膨張

    48 GB RAM マシンでシステム全体の OOM(jetsam)を誘発。同種のリークは #1004 からも再発。

  • #2241

    CLI プローブの成功率 8.6%(268 回中 23 回成功)

    失敗時にキャッシュ済みスナップショットを破棄し、最長 110 分のデータ欠落。

  • #2306

    ステータスアイテムの定期更新が MenuBarAgent を永久スピン

    CPU 100〜125% でメニューバーが数分間フリーズ(macOS 27 beta)。

出典: github.com/steipete/CodexBar の公開 Issues。分類と要約はリポジトリ内の docs/codexbar-issues.md にまとめています。

導入

DMG を入れるか、ソースからビルドする

配布は GitHub Releases の DMG(署名・ノータリゼーション済み)が推奨です。ソースからビルドしても動きます。起動するとメニューバーと Dock の両方に常駐します。

DMG(推奨)

GitHub Releases からダウンロード。Developer ID 署名 + ノータリゼーション済み。

ソースから

git clone して swift run。ビルドには Xcode 16 / Swift 6 が必要です。

Homebrew Cask

定義は用意しています。公開タップは準備中。

macOS
14(Sonoma)以降。Apple Silicon / Intel 両対応
ソースビルド時
Xcode 16 / Swift 6(コマンドラインツールのみでは不足)
依存パッケージ
なし(SwiftPM のみ)

ゲージアイコンをクリックすると、Active / Usage / History / Update / Diag の 5 タブの popover が開きます。Active タブからは、エージェント間の呼び出し関係をツリーで見る Graph ウィンドウを開けます。popover のレイアウト仕様はリポジトリ内の docs/DESIGN.md にまとめています。

terminal
# リポジトリのルートで
swift build

# 実行。ウィンドウは開きません。
# メニューバーにゲージアイコンが現れます。
swift run AgentBar

# コアロジックのテスト(プロセス非起動の回帰テストを含む)
swift test

AgentBar を入手

軽いかどうかは、自分の Mac で確かめてください。

AgentBar は、エージェントがすでに書き出しているローカルファイルを読むだけで成り立っています。使用量や履歴を得るために CLI・MCP・ブラウザ・エージェントを起動しません。Diag タブは AgentBar 自身の CPU・メモリ・起動したプロセス数(常に 0)を報告します。macOS 14+ · Swift 6 / SwiftUI · ソースは GitHub で公開しています。

git clone https://github.com/tsuvic/agentbar