Escalate Quota Auto-Resume Events to an Ops Log
A scheduled, unattended agent (a weekly cron-driven session, for example) that hits a quota pause and then auto-resumes is still working — but the fact that it needed to is worth tracking on its own, separate from ordinary notifications, as a signal of how close to the edge the automation is running.
1. Save this as the hook script
#!/usr/bin/env python3
"""Notification hook — logs quota_auto_resume_fired events to a
dedicated ops log. Wire with matcher "quota_auto_resume_fired"."""
import json, sys, datetime
from pathlib import Path
data = json.load(sys.stdin)
log_path = Path(data.get("cwd", ".")) / ".claude" / "quota_resume_ops_log.jsonl"
log_path.parent.mkdir(parents=True, exist_ok=True)
entry = {"ts": datetime.datetime.utcnow().isoformat() + "Z",
"session_id": data.get("session_id")}
with open(log_path, "a") as f:
f.write(json.dumps(entry) + "\n")
sys.exit(0)
Save to a path inside your project, e.g. .claude/hooks/escalate-quota-auto-resume-ops-log.sh, then chmod +x it.
2. Wire it into .claude/settings.json
{
"hooks": {
"Notification": [
{
"matcher": "quota_auto_resume_fired",
"hooks": [
{"type": "command", "command": "python3 .claude/hooks/escalate-quota-auto-resume-ops-log.py"}
]
}
]
}
}
Before you use this
A hook runs with your local shell's permissions — review the script above before adding it, the same way you'd review any script you didn't write yourself. See our guide on hook security risks for the specific CVEs this category of feature has already produced.
Related hooks