Borrowing it
Nothing to install: this file belongs to arunanksharan/claude-forge. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/arunanksharan/claude-forge/main/.claude/skills/setup-celery/SKILL.mdgit clone --depth 1 https://github.com/arunanksharan/claude-forgeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/arunanksharan/claude-forge/setup-celery)<a href="https://agentmods.dev/skills/arunanksharan/claude-forge/setup-celery"><img src="https://agentmods.dev/badge/skills/arunanksharan/claude-forge/setup-celery/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/arunanksharan/claude-forge/setup-celery"><img src="https://agentmods.dev/badge/skills/arunanksharan/claude-forge/setup-celery.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00075 | $0.00632 |
| Opus 5.5 | $0.00030 | $0.00253 |
| Sonnet 5.5 | $0.00015 | $0.00126 |
| Haiku 4.5 | $0.00007 | $0.00063 |
Grade A, and why
setup-celery scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Set Up Celery for Background Jobs (claudeforge)
Follow async-and-queues/celery.md (deeper) and backend/fastapi/05-async-and-celery.md. Steps:
- Confirm with user:
- Existing app (FastAPI / Django / Flask)?
- Use cases: emails, scheduled jobs, heavy CPU work?
- Already have Redis? If not, set up via Docker compose first.
- Install + configure:
- Add
celery[redis]>=5.4andredis>=5.2to pyproject.toml - Create
workers/celery_app.pywith the locked config (acks_late, prefetch=1, max_tasks_per_child, queue routing, beat schedule) - Update env to include
REDIS_URL
- Add
- Define tasks:
- Create
workers/{feature}_tasks.pyper feature - Each task:
@celery_app.task(bind=True, autoretry_for=..., retry_backoff=True, max_retries=5) - Idempotency: every task either checks a DB flag, uses an idempotency key, or is naturally idempotent. Do not skip this.
- For async DB operations: wrap in
asyncio.run(...)inside the task
- Create
- Wire into the app:
- Add
task.delay(args)calls from routes/services - Don't put heavy work directly in route handlers
- Add
- Run workers:
- Dev:
celery -A {{project-slug}}.workers.celery_app worker -Q emails -c 4 -n emails@%h - Plus separate worker per queue, plus exactly one beat
- Dev:
- Production setup:
- systemd template (
{{project-slug}}[email protected]) so you cansystemctl enable {{project-slug}}-worker@emails - Or Docker Compose with separate
workerservices per queue - Configure beat with persisted schedule file
- systemd template (
- Monitoring:
- Install Flower:
flower --basic-auth=admin:CHANGEME --port=5555(lock down with auth + IP filter) - Add OpenTelemetry:
CeleryInstrumentor().instrument() - Add Sentry:
CeleryIntegration()in sentry_sdk.init
- Install Flower:
- Verify: enqueue a test task from a route, observe it process, confirm metric/trace appears.
Always make tasks idempotent. Always run exactly one beat. Always split queues by SLA.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 40 lines · 75 tokens per session scan A d03449937730
setup-celery is a skill published in the GitHub repository arunanksharan/claude-forge (2 stars, last pushed 6mo ago), licensed Unlicense. It adds 75 tokens to every session and 632 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
setup-celery compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| setup-celeryarunanksharan/claude-forge | Skill | 2 | 6mo ago | Unlicense | A | 75 | Claude Code |
| using-redis-token-bucketsPostHog/posthog-foss | Skill | 728 | yesterday | MIT | A | 148 | Claude Code, Codex |
| spring-data-redisrrezartprebreza/spring-boot-skills | Skill | 341 | 2d ago | MIT | A | 37 | Claude Code, Codex |
| background-job-orchestratorcuriositech/some_claude_skills | Skill | 263 | yesterday | MIT | A | 95 | Claude Code |
| using-redis-token-bucketsPostHog/posthog | Skill | 41k | yesterday | none | A | 148 | Claude Code, Codex |
| nw-sd-patternsnWave-ai/nWave | Skill | 631 | yesterday | MIT | A | 43 | Claude Code |
| bull-mqTerminalSkills/skills | Skill | 192 | yesterday | Apache-2.0 | A | 100 | Claude Code, Codex |