turnstile-spin
An agent skill by cloudflare, from cloudflare/skills. Tags: authentication, cloudflare, integration, security, web.
What it does
Set up, repair, or migrate to Cloudflare Turnstile bot verification in an existing frontend and backend, including server-side Siteverify.
Install
With the skills CLI, which installs into Claude Code, Codex, Cursor and other agents:
npx skills add cloudflare/skills --skill turnstile-spin
Or copy the skill folder into Claude Code's skills directory by hand (~/.claude/skills for every project, or .claude/skills inside one):
git clone --depth 1 https://github.com/cloudflare/skills
cp -r skills/skills/turnstile-spin ~/.claude/skills/turnstile-spin
Safety box score
Grade D, elevated risk: 47 of 100 risk points, rated 2026-10-19. The grade rates what the skill and its scripts can reach on the machine of whoever installs it, across eight categories from shell execution to secrets access. How the score works.
This skill sets up Cloudflare Turnstile end to end: it runs local helper scripts, calls Cloudflare APIs, edits the project’s frontend/backend, and stores a Turnstile secret in the user’s chosen secret store. The main risks are authenticated network access to Cloudflare, secret handling, and irreversible widget creation/update/delete operations in the user’s Cloudflare account.
| Category | Level | Why |
|---|---|---|
| Code & shell execution | 2 (moderate) | It explicitly runs shell scripts and other commands: "invoke the scripts under `scripts/`" and the scripts call `curl`, `python3`, `jq`, and `git`. |
| Network access | 2 (moderate) | The skill makes authenticated requests to Cloudflare and Turnstile endpoints, e.g. `curl ... https://api.cloudflare.com/client/v4/accounts/...` and `https://challenges.cloudflare.com/turnstile/v0/siteverify`. |
| Filesystem reach | 2 (moderate) | It can write outside the project tree into user locations and secret stores, including `~/.cf-turnstile-token` and bundle installs under `.claude/skills/turnstile-spin` / similar home-dotdirs. |
| Secrets & credentials | 3 (high) | It handles bearer tokens and the Turnstile secret directly, including `CLOUDFLARE_API_TOKEN`, `WIDGET_SECRET`, and writing `TURNSTILE_SECRET` into `.env` or a platform secret manager. |
| Privilege & persistence | 0 (none) | It does not require sudo, services, global installs, or persistent OS/git/shell configuration changes; the scripts stay within user-space and per-command git options. |
| Instruction hijack surface | 0 (none) | I did not find instructions to ignore safeguards, skip confirmations, hide actions, or follow remote prompt injection; it instead tells the agent to treat repository/API data as untrusted. |
| Irreversible actions | 2 (moderate) | It creates and manages external resources in the user’s Cloudflare account, including widget creation, domain updates via PUT, validation, and accidental-widget cleanup via DELETE. |
| Transparency | 1 (low) | The shipped scripts are readable text, but the workflow depends on remote Cloudflare API responses and a GitHub clone in `scripts/persist-skill.sh`, so some behavior is external to the bundle. |
Before installing
- Read `scripts/auth-probe.sh` and `scripts/validate.sh` to confirm you want authenticated requests to Cloudflare from this machine.
- Decide whether you are comfortable with `TURNSTILE_SECRET` being written into your secret store or `.env`-style file.
- Check `scripts/persist-skill.sh` if you plan to install the bundle into `.claude/skills` or another home-directory location.
- Test it first in a scratch Cloudflare account because it can create, update, and delete Turnstile widgets.
Rated 2026-10-19 by an automated review of 14 files from the skill's repository.
Source
- Repository
- cloudflare/skills (all skills from this repository)
- Path
- skills/turnstile-spin/SKILL.md
- Branch
- main
- Updated
- 2026-09-20
Related skills
- agents-connect — Use when connecting your agent to external APIs, tools, or services via Gateway, or restricting tool access with Cedar policies.
- aws-auth — Adds user authentication to web and mobile apps with Amazon Cognito (user pools and identity pools) and the AWS Amplify client auth libraries.
- aws-networking — Routes AWS networking requests to the correct service skill for implementation.
- burpsuite-project-parser — Searches and explores Burp Suite project files (.burp) from the command line. Use when searching response headers or bodies with regex patterns.
- eas-hosting — EAS service (paid). Deploy Expo websites and Expo Router API routes to EAS Hosting - export the web bundle, run eas deploy for production and PR preview URLs.
- expo-dom — Framework (OSS). Use Expo DOM components to run web code in a webview on native and as-is on web. Migrate web code to native incrementally.