Back to Skills
    🦞

    redline

    Live rate-limit awareness for Claude.ai and OpenAI with automatic pacing tiers.

    By @wgj
    View on GitHub
    SKILL.md
    ---
    name: redline
    description: Live rate-limit awareness for Claude.ai (Max/Pro) and OpenAI (Plus/Pro/Codex). Never hit the red line again — your agent checks remaining budget every heartbeat and automatically throttles from full-send to conservation mode. Two CLI scripts + a 4-tier pacing strategy (GREEN/YELLOW/ORANGE/RED) that keeps you running at maximum token efficiency 24/7.
    metadata:
      openclaw:
        requires:
          bins: [python3]
    ---
    
    # Usage Pacing
    
    Check live rate-limit usage for **Claude.ai** and **OpenAI/Codex** plans, then apply pacing tiers to avoid hitting limits.
    
    ## Scripts
    
    ### `claude-usage`
    
    Reads the Claude Code OAuth token from macOS Keychain and calls the Anthropic usage API.
    
    ```bash
    # Human-readable output with color bars
    scripts/claude-usage
    
    # JSON output (for programmatic use)
    scripts/claude-usage --json
    ```
    
    **Requirements:**
    - macOS with `security` CLI (Keychain access)
    - Claude Code OAuth token in Keychain (run `claude login` to set up)
    - Token needs `user:profile` scope (standard Claude Code login provides this)
    
    **Token location:** macOS Keychain, service `Claude Code-credentials`, account = your macOS username.
    
    ### `openai-usage`
    
    Reads the OpenAI OAuth token from OpenClaw's auth-profiles and calls the ChatGPT usage API.
    
    ```bash
    # Human-readable output with color bars
    scripts/openai-usage
    
    # JSON output
    scripts/openai-usage --json
    ```
    
    **Requirements:**
    - OpenClaw with an authenticated `openai-codex` profile (run `openclaw auth openai-codex`)
    - Auth profiles at `~/.openclaw/agents/main/agent/auth-profiles.json`
    
    ## Pacing Tiers
    
    Wire both scripts into your heartbeat to automatically pace work based on remaining budget:
    
    | Tier | Remaining | Behavior |
    |------|-----------|----------|
    | 🟢 GREEN | >50% | Normal operations |
    | 🟡 YELLOW | 25-50% | Skip sub-agents, defer non-urgent research |
    | 🟠 ORANGE | 10-25% | Essential replies only, no proactive checks |
    | 🔴 RED | <10% | Critical only, warn user |
    
    ### Heartbeat integration
    
    Add to your `HEARTBEAT.md`:
    
    ```markdown
    ## Usage pacing (every heartbeat)
    - Run `scripts/claude-usage --json` and `scripts/openai-usage --json` to check rate limits.
    - Store readings in memory/heartbeat-state.json under "usage.claude" and "usage.openai".
    - Apply pacing tiers:
      - GREEN (>50% left): normal ops
      - YELLOW (25-50%): skip sub-agents, defer non-urgent research
      - ORANGE (10-25%): essential replies only, no proactive checks
      - RED (<10%): critical only, warn user
    - If entering YELLOW or worse, mention it briefly when next messaging.
    ```
    
    ### JSON output format
    
    **Claude (`--json`):**
    ```json
    {
      "five_hour": {"utilization": 39.0, "resets_at": "2026-02-18T04:00:00Z"},
      "seven_day": {"utilization": 12.0, "resets_at": "2026-02-24T03:00:00Z"},
      "extra_usage": {"is_enabled": true, "used_credits": 5044, "monthly_limit": 5000}
    }
    ```
    
    **OpenAI (`--json`):**
    ```json
    {
      "plan_type": "plus",
      "rate_limit": {
        "primary_window": {"used_percent": 0, "limit_window_seconds": 10800, "reset_at": 1771556400},
        "secondary_window": {"used_percent": 34, "limit_window_seconds": 86400, "reset_at": 1771556400}
      },
      "credits": {"balance": "882.99"}
    }
    ```