Agent Skills: Hex Rate Limits

|

UncategorizedID: jeremylongshore/claude-code-plugins-plus-skills/hex-rate-limits

Install this agent skill to your local

pnpm dlx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/tree/HEAD/plugins/saas-packs/hex-pack/skills/hex-rate-limits

Skill Files

Browse the full folder contents for hex-rate-limits.

Download Skill

Loading file tree…

plugins/saas-packs/hex-pack/skills/hex-rate-limits/SKILL.md

Skill Metadata

Name
hex-rate-limits
Description
|

Hex Rate Limits

Rate Limits

| Endpoint | Per Minute | Per Hour | |----------|-----------|----------| | RunProject | 20 | 60 | | GetRunStatus | No hard limit | - | | ListProjects | No hard limit | - | | CancelRun | No hard limit | - |

Instructions

Queue-Based Run Triggering

import PQueue from 'p-queue';

const hexQueue = new PQueue({
  concurrency: 1,
  interval: 60000,   // Per minute
  intervalCap: 15,   // Leave buffer (limit is 20)
});

let hourlyCount = 0;
setInterval(() => { hourlyCount = 0; }, 3600000);

async function queuedRun(client: HexClient, projectId: string, params: any) {
  if (hourlyCount >= 55) throw new Error('Approaching hourly limit');
  return hexQueue.add(async () => {
    hourlyCount++;
    return client.runProject(projectId, params);
  });
}

Backoff on 429

async function runWithBackoff(client: HexClient, projectId: string, params: any) {
  for (let i = 0; i < 3; i++) {
    try { return await client.runProject(projectId, params); }
    catch (err: any) {
      if (!err.message.includes('429')) throw err;
      const delay = 30000 * Math.pow(2, i);
      console.log(`Rate limited, waiting ${delay / 1000}s`);
      await new Promise(r => setTimeout(r, delay));
    }
  }
}

Resources