upstash-qstash — Claude Code skill: queues and cron without servers
A skill about Upstash QStash: delayed HTTP calls, cron jobs and webhook delivery. Useful when you want an HTTP request to fire later and actually arrive.
npx claude-code-templates@latest --skill web-development/upstash-qstashWhat upstash-qstash does
This skill gives Claude working knowledge of QStash — publishing messages, scheduling calls, recurring cron tasks, deduplication and callbacks. It ships as patterns plus a table of sharp edges: signature checks, URL groups, error handling inside the endpoint.
The idea behind it is simple. HTTP goes in, HTTP goes out, and QStash handles the reliability in between. That is why signature verification with both keys gets its own section, and why the endpoint should acknowledge fast — a slow response breaks delivery. Turn on deduplication for operations you cannot repeat, and set retries per message type instead of accepting the default.
One hard limit: QStash cannot reach private or localhost endpoints. Your handler has to be publicly reachable. Sending a reference beats stuffing a large payload into the message body.
What it helps with
- schedule an HTTP call for later without running your own worker
- set up a recurring cron task in a serverless project
- verify the signature on an incoming QStash webhook
- stop the same message from being processed twice
- debug why an endpoint never receives its messages
Example prompts for the agent
- Schedule a webhook delivery through QStash 10 minutes from now
- Add QStash signature verification to my
api/webhook/route.tshandler - Create a QStash cron job that hits my endpoint once an hour
How to install upstash-qstash
1claude-code-templates
npx claude-code-templates@latest --skill web-development/upstash-qstash2Skills CLI (Vercel)
npx skills add davila7/claude-code-templates --skill upstash-qstash -a claude-code3Manually: put the files in place
~/.claude/skills/upstash-qstash/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/upstash-qstash/
Manually: put the files in place
.agents/skills/upstash-qstash/SKILL.mdFor all projects use ~/.agents/skills/
Manually: put the files in place
.cursor/skills/upstash-qstash/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install davila7/claude-code-templates upstash-qstash2Manually: put the files in place
.github/skills/upstash-qstash/SKILL.mdPlatform CLI
gemini skills install https://github.com/davila7/claude-code-templates --path cli-tool/components/skills/web-development/upstash-qstashManually: put the files in place
.devin/skills/upstash-qstash/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about upstash-qstash
How do I install upstash-qstash in Claude Code?
Use the templates CLI: npx claude-code-templates@latest --skill web-development/upstash-qstash. Or run npx skills add davila7/claude-code-templates --skill upstash-qstash -a claude-code. The skill file then lives at ~/.claude/skills/upstash-qstash/SKILL.md.
What does the upstash-qstash skill do?
It teaches the agent QStash: message publishing, delayed HTTP calls, serverless cron, webhook delivery, deduplication and callbacks. It also covers mistakes like skipping signature verification.
Can QStash reach a local server during development?
No. Private and localhost addresses are out of reach, so testing needs a publicly available endpoint.