better-auth-add-plugin
Add a better-auth plugin to an existing project. Configures server and client plugins with proper imports.
Interactive wizard for setting up Cloudflare Turnstile. Generates templates, configuration, and provides step-by-step guidance based on framework and environment.
$ npx -y skills add secondsky/claude-skills --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
/setup-wizardContext preview
What this command does when you run it.
Interactive wizard for setting up Cloudflare Turnstile. Generates templates, configuration, and provides step-by-step guidance based on framework and environment.
name: cloudflare-turnstile:setup description: Interactive wizard for setting up Cloudflare Turnstile. Generates templates, configuration, and provides step-by-step guidance based on framework and environment.
This interactive command guides you through complete Cloudflare Turnstile setup, from widget configuration to server-side validation.
/turnstile-setup
---
**Question**: "What widget mode do you need?"
**Options**:
1. **Managed (Recommended)** - Shows checkbox only when bot suspected
2. **Invisible** - No visible widget, challenge runs in background
3. **Non-Interactive** - Widget visible but no interaction needed
**Output**: Store selection as `WIDGET_MODE`
---
**Question**: "What framework are you using?"
**Options**:
1. **Cloudflare Workers (Hono)**
2. **React / Next.js**
3. **Vanilla HTML/JavaScript**
4. **Mobile (iOS/Android/React Native/Flutter)**
**Output**: Store selection as `FRAMEWORK`
---
**Question**: "What environment is this for?"
**Options**:
1. **Development (localhost)**
2. **Staging**
3. **Production**
**Output**: Store selection as `ENVIRONMENT`
---
Based on selections (`WIDGET_MODE`, `FRAMEWORK`, `ENVIRONMENT`), generate appropriate files:
**Generate `wrangler.jsonc`**:
{
"name": "my-worker",
"main": "src/index.ts",
"compatibility_date": "2025-01-15",
"vars": {
"TURNSTILE_SITE_KEY": "${ENVIRONMENT === 'development' ? '1x00000000000000000000AA' : 'YOUR_SITE_KEY'}"
},
"env": {
"production": {
"vars": {
"TURNSTILE_SITE_KEY": "YOUR_PRODUCTION_SITE_KEY"
}
}
}
}**Generate Hono route** (from `templates/turnstile-hono-route.ts`):
import { Hono } from 'hono'
const app = new Hono<{ Bindings: Env }>()
app.post('/api/verify', async (c) => {
const { token } = await c.req.json()
// Validate token with Turnstile Siteverify API
const result = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
secret: c.env.TURNSTILE_SECRET_KEY,
response: token,
}),
})
const outcome = await result.json()
if (!outcome.success) {
return c.json({ error: 'Validation failed' }, 401)
}
return c.json({ success: true })
})**Generate React component** (from `templates/turnstile-react-component.tsx`):
'use client'
import { Turnstile } from '@marsidev/react-turnstile'
import { useState } from 'react'
export function TurnstileWidget() {
const [token, setToken] = useState('')
return (
<Turnstile
siteKey={process.env.NEXT_PUBLIC_TURNSTILE_SITE_KEY!}
onSuccess={setToken}
options={{
theme: 'auto',
size: 'normal',
execution: '${WIDGET_MODE === 'Invisible' ? 'execute' : 'render'}',
}}
/>
)
}**Add package.json dependency**:
npm install @marsidev/react-turnstile@1.3.1
**Generate HTML** (from `templates/turnstile-widget-implicit.html`):
<!DOCTYPE html>
<html>
<head>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
</head>
<body>
<form id="myForm" method="POST" action="/submit">
<!-- Turnstile widget (implicit rendering) -->
<div class="cf-turnstile"
data-sitekey="${ENVIRONMENT === 'development' ? '1x00000000000000000000AA' : 'YOUR_SITE_KEY'}"
data-callback="onTurnstileSuccess"
data-theme="auto"
data-size="normal">
</div>
<button type="submit">Submit</button>
</form>
<script>
function onTurnstileSuccess(token) {
console.log('Turnstile token:', token)
// Form will auto-submit with cf-turnstile-response hidden input
}
</script>
</body>
</html>---
**Provide instructions for dashboard configuration**:
1. Go to https://dash.cloudflare.com/?to=/:account/turnstile 2. Click "Add Site" or "Add Widget" 3. Configure widget:
145 production-ready skills for Claude Code CLI 🔌 Platform / Harness Support These plugins ship as Claude Code marketplace plugins (.claude-plugin/ manifests) and Codex CLI plugins (.codex-plugin/ manifests).
Repo: secondsky/claude-skills
Add a better-auth plugin to an existing project. Configures server and client plugins with proper imports.
Interactive setup wizard for better-auth authentication. Guides through database, framework, OAuth providers, and plugin configuration.
Explain Better Auth error codes and provide solutions with code examples
Display Better Auth available authentication providers and their configuration