[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M754YQS3B4VTNHC68F4EJ131":3,"skill-same:01M754YQS3B4VTNHC68F4EJ131":75},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":29,"commitSha":30,"skillDirectory":5,"forksCount":14,"repositoryHtmlUrl":31,"repositoryHomepageUrl":6,"ownerHtmlUrl":32,"ownerBlogUrl":33,"ownerDescription":6,"updatedAt":34,"install":35,"resources":48},"01M754YQS3B4VTNHC68F4EJ131","openrouter-rate-limits",null,"Understand and handle OpenRouter rate limits effectively. Use when building high-throughput systems. Trigger with phrases like 'openrouter rate limit', 'openrouter 429', 'openrouter throttle', 'request limits'.","SamuelChien\u002Fmega-skills-collection","SamuelChien","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4652114?v=4","01M74KK34WVHA0P5ZYSJRDDFMG","Samuel Chien","01M74KK35FQN1N9VZ9EPTH3P2S",0,"MIT","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fopenrouter-rate-limits\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: openrouter-rate-limits\ndescription: |\n  Understand and handle OpenRouter rate limits effectively. Use when building high-throughput systems. Trigger with phrases like 'openrouter rate limit', 'openrouter 429', 'openrouter throttle', 'request limits'.\nallowed-tools: Read, Write, Edit, Grep\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ncompatible-with: claude-code, codex, openclaw\n---\n# Openrouter Rate Limits\n\n## Overview\n\nThis skill covers OpenRouter's rate limiting behavior, how to read rate limit headers, and implementing retry strategies that respect limits.\n\n## Prerequisites\n\n- OpenRouter integration\n- Understanding of HTTP 429 status codes and retry-after semantics\n\n## Instructions\n\n1. **Read rate limit headers**: Inspect `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` from each response to know your current limits\n2. **Implement exponential backoff**: On 429 responses, wait `2^attempt * base_delay` seconds before retrying, with jitter to prevent thundering herd\n3. **Pre-check remaining quota**: Before sending a batch of requests, check `X-RateLimit-Remaining` and pace requests to stay under the limit\n4. **Use a token bucket or leaky bucket**: Implement client-side rate limiting to smooth request bursts and avoid hitting server limits\n5. **Handle per-model limits**: Different models may have different rate limits; track limits per model ID separately\n\n## Output\n\n- Automatic retry logic that handles 429 responses gracefully\n- Client-side rate limiter that prevents hitting server limits\n- Dashboard or log output showing rate limit utilization over time\n\n## Error Handling\n\n| Error | Cause | Fix |\n|-------|-------|-----|\n| 429 Too Many Requests | Exceeded requests-per-minute or tokens-per-minute limit | Use exponential backoff with jitter; respect `Retry-After` header |\n| Retry storm | Multiple clients retrying simultaneously | Add random jitter (0-1s) to each retry delay |\n| Silent throttling | Responses slow down before 429 | Monitor response latency; proactively reduce request rate when latency increases |\n\nSee `${CLAUDE_SKILL_DIR}\u002Freferences\u002Ferrors.md` for full error reference.\n\n## Examples\n\nSee `${CLAUDE_SKILL_DIR}\u002Freferences\u002Fexamples.md` for runnable code samples.\n\n## Resources\n\n- [OpenRouter Documentation](https:\u002F\u002Fopenrouter.ai\u002Fdocs)\n- [OpenRouter Models](https:\u002F\u002Fopenrouter.ai\u002Fmodels)\n- [OpenRouter API Reference](https:\u002F\u002Fopenrouter.ai\u002Fdocs\u002Fapi-reference)\n- [OpenRouter Status](https:\u002F\u002Fstatus.openrouter.ai)\n","# Openrouter Rate Limits\n\n## Overview\n\nThis skill covers OpenRouter's rate limiting behavior, how to read rate limit headers, and implementing retry strategies that respect limits.\n\n## Prerequisites\n\n- OpenRouter integration\n- Understanding of HTTP 429 status codes and retry-after semantics\n\n## Instructions\n\n1. **Read rate limit headers**: Inspect `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` from each response to know your current limits\n2. **Implement exponential backoff**: On 429 responses, wait `2^attempt * base_delay` seconds before retrying, with jitter to prevent thundering herd\n3. **Pre-check remaining quota**: Before sending a batch of requests, check `X-RateLimit-Remaining` and pace requests to stay under the limit\n4. **Use a token bucket or leaky bucket**: Implement client-side rate limiting to smooth request bursts and avoid hitting server limits\n5. **Handle per-model limits**: Different models may have different rate limits; track limits per model ID separately\n\n## Output\n\n- Automatic retry logic that handles 429 responses gracefully\n- Client-side rate limiter that prevents hitting server limits\n- Dashboard or log output showing rate limit utilization over time\n\n## Error Handling\n\n| Error | Cause | Fix |\n|-------|-------|-----|\n| 429 Too Many Requests | Exceeded requests-per-minute or tokens-per-minute limit | Use exponential backoff with jitter; respect `Retry-After` header |\n| Retry storm | Multiple clients retrying simultaneously | Add random jitter (0-1s) to each retry delay |\n| Silent throttling | Responses slow down before 429 | Monitor response latency; proactively reduce request rate when latency increases |\n\nSee `${CLAUDE_SKILL_DIR}\u002Freferences\u002Ferrors.md` for full error reference.\n\n## Examples\n\nSee `${CLAUDE_SKILL_DIR}\u002Freferences\u002Fexamples.md` for runnable code samples.\n\n## Resources\n\n- [OpenRouter Documentation](https:\u002F\u002Fopenrouter.ai\u002Fdocs)\n- [OpenRouter Models](https:\u002F\u002Fopenrouter.ai\u002Fmodels)\n- [OpenRouter API Reference](https:\u002F\u002Fopenrouter.ai\u002Fdocs\u002Fapi-reference)\n- [OpenRouter Status](https:\u002F\u002Fstatus.openrouter.ai)\n",{"name":5,"author":24,"license":15,"version":25,"description":26,"allowed-tools":27,"compatible-with":28},"Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Understand and handle OpenRouter rate limits effectively. Use when building high-throughput systems. Trigger with phrases like 'openrouter rate limit', 'openrouter 429', 'openrouter throttle', 'request limits'.\n","Read, Write, Edit, Grep","claude-code, codex, openclaw","main","c2b1fdccc779e99ac814e55fb69ca8d71215dd0f","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection","https:\u002F\u002Fgithub.com\u002FSamuelChien","http:\u002F\u002Fsamuelchien.com\u002F","2026-05-26 08:27:14",{"source":8,"skillName":5,"commands":36,"prompt":46,"zipAvailable":47},[37,40,43],{"tool":38,"command":39},"npx","npx skills add SamuelChien\u002Fmega-skills-collection --skill openrouter-rate-limits",{"tool":41,"command":42},"bunx","bunx skills add SamuelChien\u002Fmega-skills-collection --skill openrouter-rate-limits",{"tool":44,"command":45},"pnpm","pnpm dlx skills add SamuelChien\u002Fmega-skills-collection --skill openrouter-rate-limits","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fopenrouter-rate-limits\u002FSKILL.md",true,[49,55,59,63,67,71],{"path":50,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":53,"sourceHtmlUrl":54},"references\u002Fbatch-processing-with-rate-limits.md","REFERENCE","参考文档",1967,"https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fopenrouter-rate-limits\u002Freferences\u002Fbatch-processing-with-rate-limits.md",{"path":56,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":57,"sourceHtmlUrl":58},"references\u002Fbest-practices.md",1552,"https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fopenrouter-rate-limits\u002Freferences\u002Fbest-practices.md",{"path":60,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":61,"sourceHtmlUrl":62},"references\u002Ferrors.md",323,"https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fopenrouter-rate-limits\u002Freferences\u002Ferrors.md",{"path":64,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":65,"sourceHtmlUrl":66},"references\u002Fexamples.md",3771,"https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fopenrouter-rate-limits\u002Freferences\u002Fexamples.md",{"path":68,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":69,"sourceHtmlUrl":70},"references\u002Frate-limiter-implementation.md",2049,"https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fopenrouter-rate-limits\u002Freferences\u002Frate-limiter-implementation.md",{"path":72,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":73,"sourceHtmlUrl":74},"references\u002Fretry-strategies.md",1673,"https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fopenrouter-rate-limits\u002Freferences\u002Fretry-strategies.md",[76,83,90,97,104,112],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":19},"01M76R4WZQZAXGGXMQCA0FZ716","zustand-store-ts","Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state\u002Faction separation. Use when building React state management, creating global stores, or implementing reactive state patterns with Zustand.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzustand-store-ts\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":19},"01M76R4T9KENDH7FENGZQHBW4G","zustand-store-creator","Zustand Store Creator - Auto-activating skill for Frontend Development.\nTriggers on: zustand store creator, zustand store creator\nPart of the Frontend Development skill category.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzustand-store-creator\u002FSKILL.md",[],[],{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":19},"01M76R3YWN84B7SANJ52X799ZE","zero-trust-config-helper","Zero Trust Config Helper - Auto-activating skill for Security Advanced.\nTriggers on: zero trust config helper, zero trust config helper\nPart of the Security Advanced skill category.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzero-trust-config-helper\u002FSKILL.md",[],[],{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":19},"01M76R3HNSV2AEYSKHM915GJ58","zapier-integration-helper","Zapier Integration Helper - Auto-activating skill for Business Automation.\nTriggers on: zapier integration helper, zapier integration helper\nPart of the Business Automation skill category.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzapier-integration-helper\u002FSKILL.md",[],[],{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":108,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":19},"01M76R3DJSKAT4FA7DV4BF3GCE","zai-cli","Execute z.AI CLI providing vision, search, reader, and GitHub exploration via CLI and MCP.\nUse when user needs image\u002Fvideo analysis, OCR, UI-to-code conversion, error diagnosis,\nreal-time web search, web page to markdown extraction, or GitHub code exploration.\nTrigger with phrases like \"analyze this image\", \"search the web for\", \"read this page\",\n\"explore this repo\", or \"use zai\". Requires Z_AI_API_KEY.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fzai-cli\u002FSKILL.md",[],[],{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":19},"01M76R2KAM699XE9AJVAWE4H2E","yt-research","Research competitor YouTube channels, niches, and trending topics for your content strategy.\nUse this skill whenever the user says \"research channels\", \"analyze competitors\", \"find trending topics\",\n\"niche analysis\", \"competitive research\", \"what are other creators doing\", \"scrape YouTube channels\",\nor wants to understand the competitive landscape for a specific tool or topic area. Use when working with yt research. Trigger with 'yt', 'research'.","https:\u002F\u002Fgithub.com\u002FSamuelChien\u002Fmega-skills-collection\u002Fblob\u002Fmain\u002Fyt-research\u002FSKILL.md",[],[]]