0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CodexBar + SwiftBarでAntigravityのGemini使用量をmacOSメニューバーに常時表示する

0
Last updated at Posted at 2026-09-19

はじめに

CodexBarを使うと、CodexやAntigravityの使用量をmacOSのメニューバーから確認できます。

Screenshot 2026-09-19 at 17.53.43.png

ただ、Antigravityでは、

  • Gemini 5-hour
  • Gemini weekly
  • Claude/GPT 5-hour
  • Claude/GPT weekly

の複数のquotaがあり、CodexBarのメニューバーに必ずしもGeminiの残量が表示されるわけではありません。

私の場合、AntigravityでClaudeを使ったところ、メニューバーの表示がGeminiではなくClaude/GPT側の残量になりました。

CodexBarのポップアップを開けば両方確認できますが、欲しかったのは、

G 97% · W 83%

のようなGeminiだけの常時表示です。

そこで、

  1. CodexBar CLIでAntigravityのquotaをJSON取得
  2. PythonでGeminiのquotaだけ抽出
  3. SwiftBarでmacOSのメニューバーに表示

という方法を試したところ、うまくいきました。

同様の要望が、CodexBarのGitHubでFeature Requestとして2026年9月3日に出ています。まだOpenです。
https://github.com/steipete/CodexBar/issues/3394

この記事は2026年9月時点のCodexBar / SwiftBarで確認しています。


完成形

最終的には、macOSのメニューバーに次のように表示できます。

G 97% · W 83%
  • G 97%:Gemini 5-hourの残量
  • W 83%:Gemini weeklyの残量

私は隣にCodexBar本体のCodex使用量も表示しています。

G 97% · W 83%    Codex 4% ... · W 62% ...

これで、CodexとGeminiの残量を常時確認できるようになりました。

Screenshot 2026-09-19 at 17.59.36.png


なぜClaude/GPTの残量が表示されたのか

これはCodexBarの不具合ではなく、Antigravity providerの表示仕様です。

Antigravityでは次の4つのquotaが取得されています。

  • Gemini 5-hour
  • Gemini weekly
  • Claude/GPT 5-hour
  • Claude/GPT weekly

CodexBarのコンパクトなメニューバー表示では、この中から
最も制約の厳しいquota(残量が最も少ないもの)
が代表値として選ばれます。

私の環境では、ある時点で次のようになっていました。

quota 残量
Gemini 5-hour 97%
Gemini weekly 83%
Claude/GPT 5-hour 100%
Claude/GPT weekly 77%

この場合、最も残量が少ないのは Claude/GPT weekly の77%なので、CodexBarのメニューバーにも77%が表示されます。

つまり「一度Claudeを使ったのでClaude表示に固定された」のではなく、Claude/GPT weeklyのquotaがGeminiより少なくなったため、代表表示が自動的にClaude/GPT側へ切り替わった、ということでした。

これは全体として「今いちばん危ないquota」を知るには便利ですが、「Geminiの残量だけを常時見たい」という用途には合いません。

そこでこの記事では、CodexBar CLIのJSONからGeminiのquotaだけを抽出し、SwiftBarで別途表示しています。


1. CodexBar CLIでAntigravityの使用量を確認する

まず、CodexBarでAntigravity providerを有効にしておきます。

CodexBar CLIが使える状態で、Terminalから次を実行します。

codexbar usage \
  --provider antigravity \
  --format json \
  --json-only \
  --pretty

私の環境では、次のようなJSONが取得できました。

{
  "id": "antigravity-quota-summary-gemini-weekly",
  "title": "Gemini weekly",
  "window": {
    "resetsAt": "2026-09-23T21:24:38Z",
    "usedPercent": 17.07005500793457,
    "windowMinutes": 10080
  }
}

Geminiについては、次のIDが使われていました。

antigravity-quota-summary-gemini-5h
antigravity-quota-summary-gemini-weekly

usedPercent は「使用済み」の割合なので、残量は、

100 - usedPercent

で求められます。

例えば、

usedPercent = 17.07

なら、

100 - 17.07 = 82.93%

なので、表示上は約83%残りです。


2. SwiftBarをインストールする

SwiftBarは、スクリプトの標準出力をmacOSのメニューバーに表示できるアプリです。

Homebrewを使う場合は、

brew install swiftbar

でインストールします。

SwiftBarを起動するとPlugin Folderを指定するよう求められるので、今回は、

~/SwiftBarPlugins

を使用します。

フォルダがなければ作成します。

mkdir -p ~/SwiftBarPlugins

3. SwiftBarが動くかテストする

まず簡単なテスト用スクリプトを作ります。

cat > ~/SwiftBarPlugins/test.1m.sh <<'EOF'
#!/bin/bash
echo "TEST 123"
EOF

chmod +x ~/SwiftBarPlugins/test.1m.sh

SwiftBarが正しく設定されていれば、macOSのメニューバーに、

TEST 123

と表示されます。

確認できたら削除します。

rm ~/SwiftBarPlugins/test.1m.sh

4. Geminiの使用量だけ取得するスクリプトを作る

次のPythonスクリプトを作成します。

cat > ~/SwiftBarPlugins/gemini-usage.1m.py <<'PY'
#!/usr/bin/env python3

import json
import subprocess
from datetime import datetime, timezone


def remaining(window):
    return round(100 - window["usedPercent"])


def time_left(iso):
    reset = datetime.fromisoformat(iso.replace("Z", "+00:00"))
    now = datetime.now(timezone.utc)

    seconds = max(0, int((reset - now).total_seconds()))

    days, seconds = divmod(seconds, 86400)
    hours, seconds = divmod(seconds, 3600)
    minutes = seconds // 60

    if days:
        return f"{days}d{hours}h"

    if hours:
        return f"{hours}h{minutes}m"

    return f"{minutes}m"


try:
    result = subprocess.run(
        [
            "/bin/zsh",
            "-lc",
            "codexbar usage --provider antigravity "
            "--format json --json-only"
        ],
        capture_output=True,
        text=True,
        timeout=30
    )

    data = json.loads(result.stdout)

    windows = data[0]["usage"]["extraRateWindows"]

    gemini_5h = next(
        x["window"] for x in windows
        if x["id"] == "antigravity-quota-summary-gemini-5h"
    )

    gemini_weekly = next(
        x["window"] for x in windows
        if x["id"] == "antigravity-quota-summary-gemini-weekly"
    )

    p5 = remaining(gemini_5h)
    pw = remaining(gemini_weekly)

    t5 = time_left(gemini_5h["resetsAt"])
    tw = time_left(gemini_weekly["resetsAt"])

    # メニューバーに常時表示する文字列
    print(f"G {p5}% · W {pw}%")

    # クリックしたときに表示する詳細
    print("---")
    print(f"Gemini 5-hour: {p5}% left · reset in {t5}")
    print(f"Gemini weekly: {pw}% left · reset in {tw}")

    print("---")
    print("Refresh | refresh=true")

except Exception as e:
    print("G ?")
    print("---")
    print(f"Error: {e}")
PY

実行権限を付けます。

chmod +x ~/SwiftBarPlugins/gemini-usage.1m.py

しばらく待つか、SwiftBarをRefreshします。

するとメニューバーに、

G 97% · W 83%

のように表示されます。


.1m.py の 1m は何?

SwiftBarではファイル名によって更新間隔を指定できます。

今回の、

gemini-usage.1m.py

の、

1m

は、

1分ごとにスクリプトを実行する

という意味です。

そのため、Geminiの使用量も1分ごとに更新されます。


クリックすると詳細も確認できる

メニューバーの、

G 97% · W 83%

をクリックすると、例えば次のように表示されます。

Gemini 5-hour: 97% left · reset in 3h34m
Gemini weekly: 83% left · reset in 4d12h

常時表示は短くして、

G 97% · W 83%

だけにし、詳しい情報はクリックしたときだけ表示するようにしています。


仕組み

全体としては次のようになっています。

Antigravity
    ↓
CodexBar
    ↓
codexbar CLI
    ↓
JSON
    ↓
PythonでGeminiだけ抽出
    ↓
SwiftBar
    ↓
macOSメニューバー

CodexBar自体がAntigravityのquotaを取得してくれているので、新たにGoogleへログインしたり、APIを直接叩いたりする必要はありません。


CodexBarと並べると便利

私はCodexBar本体ではCodexの使用量を常時表示しています。

その隣に今回のGemini表示を置くと、

G 97% · W 83%    Codex 4% ... · W 62% ...

のようになります。

これなら開発中にメニューバーを見るだけで、

  • Codex 5-hour
  • Codex weekly
  • Gemini 5-hour
  • Gemini weekly

の残量を把握できます。

特にAIコーディングを長時間使っていると、「今どのくらいquotaを消費しているか」を確認しながらモデルを使い分けられるので便利です。

SwiftBar 2.1.2では、Macを長時間スリープさせて復帰すると、実際にはプラグインが正常でも ⚠️ が出るという2026年8月の未解決Issueがあります。私の環境でも同じ現象がありましたが、すぐに消えました。


まとめ

CodexBarはAntigravityの使用量を取得できますが、GeminiとClaude/GPTを両方使っている場合、メニューバーに自分が見たいquotaが表示されるとは限りません。

しかしCodexBar CLIのJSONには、

Gemini 5-hour
Gemini weekly
Claude/GPT 5-hour
Claude/GPT weekly

が個別に入っています。

そこで、

CodexBar CLI
+
Python
+
SwiftBar

を組み合わせることで、

G 97% · W 83%

というGemini専用の使用量表示を作れました。

CodexとGeminiを頻繁に使う人には、かなり便利だと思います。


関連リンク

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?