Codex で付与されたレート制限リセット権は有効期限が30日間となっていますが、現状、有効期限がいつまでかを簡単に確認する術がないようです。
以下に Windows 環境で確認するためのスクリプトが記載されていたので、これを参考に Ubuntu 用のスクリプトを作成しました。
スクリプトの作成
ファイル名は何でもよいですが、例えば check_codex_reset_credits.sh として、以下の内容を保存してください。
#!/usr/bin/env bash
set -euo pipefail
AUTH_FILE="${HOME}/.codex/auth.json"
API_URL="https://chatgpt.com/backend-api/wham/rate-limit-reset-credits"
if ! command -v jq >/dev/null 2>&1; then
echo "ERROR: jq が見つかりません。先にインストールしてください。"
echo " sudo apt update && sudo apt install -y jq"
exit 1
fi
if ! command -v curl >/dev/null 2>&1; then
echo "ERROR: curl が見つかりません。先にインストールしてください。"
echo " sudo apt update && sudo apt install -y curl"
exit 1
fi
if [ ! -f "$AUTH_FILE" ]; then
echo "ERROR: 認証ファイルが見つかりません: $AUTH_FILE"
echo "Codex にログイン済みか確認してください。"
exit 1
fi
ACCESS_TOKEN="$(jq -r '.tokens.access_token // empty' "$AUTH_FILE")"
ACCOUNT_ID="$(jq -r '.tokens.account_id // empty' "$AUTH_FILE")"
if [ -z "$ACCESS_TOKEN" ]; then
echo "ERROR: access_token が取得できませんでした。"
echo "$AUTH_FILE の形式が想定と異なるか、Codex の認証状態が無効です。"
exit 1
fi
TMP_RESPONSE="$(mktemp)"
trap 'rm -f "$TMP_RESPONSE"' EXIT
if [ -n "$ACCOUNT_ID" ]; then
HTTP_CODE="$(
curl -sS \
-o "$TMP_RESPONSE" \
-w "%{http_code}" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "OpenAI-Beta: codex-1" \
-H "originator: Codex Desktop" \
-H "ChatGPT-Account-ID: ${ACCOUNT_ID}" \
--max-time 30 \
"$API_URL"
)"
else
HTTP_CODE="$(
curl -sS \
-o "$TMP_RESPONSE" \
-w "%{http_code}" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "OpenAI-Beta: codex-1" \
-H "originator: Codex Desktop" \
--max-time 30 \
"$API_URL"
)"
fi
if [ "$HTTP_CODE" != "200" ]; then
echo "ERROR: API 呼び出しに失敗しました。HTTP status: $HTTP_CODE"
echo "レスポンス:"
cat "$TMP_RESPONSE"
echo
exit 1
fi
jq -r '
def fmt_time:
if . == null or . == "" then
"不明"
else
# jq の fromdateiso8601 は小数秒つき ISO8601 で失敗することがあるため除去する
sub("\\.[0-9]+Z$"; "Z")
| fromdateiso8601
| localtime
| strftime("%Y-%m-%d %H:%M:%S %Z")
end;
"利用可能なリセット権: \(.available_count // 0) 個",
"",
"状態\t付与日時\t有効期限",
(
(.credits // [])
| map([
(.status // "不明"),
(.granted_at | fmt_time),
(.expires_at | fmt_time)
])
| .[]
| @tsv
)
' "$TMP_RESPONSE" | column -t -s $'\t'
実行手順
sudo apt update
sudo apt install -y curl jq
chmod +x check_codex_reset_credits.sh
./check_codex_reset_credits.sh
注意
このスクリプトは、参照記事の PowerShell 版と同じく、~/.codex/auth.json から access_token と account_id を読み取り、https://chatgpt.com/backend-api/wham/rate-limit-reset-credits に GET します。
注意点として、この方法は公式に公開された安定 API ではなく、参照記事でも「内部APIを使った非公式な確認方法」と説明されています。
Codex 側の仕様変更で動かなくなる可能性があります。