CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

cloudflare-tunnel

Expose locally-running apps to stable public HTTPS URLs using a single per-developer Cloudflare Tunnel (cloudflared). Use whenever you need an external service to reach your local dev server — receiving webhooks (Box, Stripe, GitHub, Twilio, etc.), testing OAuth callbacks, sharing a work-in-progress with a teammate, or previewing on a real device. Also use when the user mentions cloudflared, "tunnel", "trycloudflare", "public URL for localhost", "webhook can't reach my machine", or asks how to route a domain to their local port.

Quality

95%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

88%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, highly actionable body: every step is an executable command with explicit validation checkpoints and genuine troubleshooting for real cloudflared/launchd failure modes. The only deductions are minor — a few inferable explanatory asides and deep macOS service-troubleshooting detail inlined in the main file rather than split into a reference.

Suggestions

Move the launchd plist troubleshooting detail (the corrected ProgramArguments XML and the daemon-vs-agent comparison) into a reference file such as references/macos-service.md, keeping a one-line pointer plus the 'verify the plist runs the tunnel' check in step 6.

Trim explanatory asides Claude can infer — e.g. the Host-header allowlist rationale in step 5 and the 'Rather than babysitting' motivation in step 6 — down to the command plus a short when-to-use note.

DimensionReasoningScore

Conciseness

Mostly lean — every step is a specific command or config snippet with placeholders explicitly flagged ('Substitute your real username, app slugs, and Cloudflare domain throughout') — but a few passages explain things Claude can infer (the Host-header allowlist rationale, 'Rather than babysitting cloudflared tunnel run in a foreground terminal'), and the plist XML block is lengthy. This fits 'efficient; minor instances of over-explanation that could be trimmed' better than the every-token-earns-its-place anchor.

4 / 5

Actionability

Fully executable throughout: 'cloudflared tunnel login', 'cloudflared tunnel create <username>', 'cloudflared tunnel route dns <username> <app>--<username>.<your-domain>', a complete config.yml with the mandatory catch-all rule, a Rails hosts regex, a corrected plist XML block, launchctl management commands, and an end-to-end 'curl -sS -o /dev/null -w "HTTP %{http_code}"' check. Copy-paste ready and covers the common cases.

5 / 5

Workflow Clarity

Six numbered steps with one-time vs per-project scope explicitly marked ('one-time per machine', 'one-time per developer', 'once per project'), plus explicit validation and recovery: 'Verify the generated plist actually runs the tunnel', watch the log for 'Registered tunnel connection', curl the hostname end to end, and diagnosis for stale credentials-file IDs and a crash-looping agent. This is not a destructive or batch operation, so no cap applies, and the sequence matches the explicit-validation-with-feedback-loops anchor.

5 / 5

Progressive Disclosure

Good single-file structure with clear section headers and a logical overview-to-details flow ending in 'Adding another project later', and there are no broken or nested references. However, at ~175 lines with no bundle files, deep troubleshooting detail (the plist XML fix and the launchd daemon-vs-agent comparison) is inlined where a one-level-deep reference file could keep SKILL.md tighter, which fits 'good structure; minor organization gaps' rather than the cleanly-split top anchor.

4 / 5

Total

18

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: it states one concrete capability with the exact tool, enumerates real use cases, and gives an explicit 'Use when...' trigger list with natural user phrasings including product synonyms. Nothing is vague, padded, or at risk of conflicting with other skills.

DimensionReasoningScore

Specificity

Names the concrete capability ('Expose locally-running apps to stable public HTTPS URLs using a single per-developer Cloudflare Tunnel (cloudflared)') plus multiple concrete use cases: 'receiving webhooks (Box, Stripe, GitHub, Twilio, etc.)', 'testing OAuth callbacks', 'sharing a work-in-progress with a teammate', 'previewing on a real device'. No vague filler; coverage is comprehensive for this skill's scope, matching the top anchor rather than the 'minor gaps' anchor below it.

5 / 5

Completeness

Explicitly answers both what ('Expose locally-running apps to stable public HTTPS URLs...') and when ('Use whenever you need an external service to reach your local dev server... Also use when the user mentions cloudflared, "tunnel", "trycloudflare"...') with concrete trigger phrases, exactly matching the top anchor's pattern.

5 / 5

Trigger Term Quality

Includes natural phrases users would actually say — 'cloudflared', 'tunnel', 'trycloudflare', 'public URL for localhost', "webhook can't reach my machine", 'route a domain to their local port' — covering product names, synonyms, and problem-state phrasings, which matches the comprehensive-synonyms anchor.

5 / 5

Distinctiveness Conflict Risk

A clear niche (Cloudflare Tunnel / exposing localhost) with product-specific triggers like 'cloudflared' and 'trycloudflare' that no other plausible skill would claim; minimal conflict risk. Voice is imperative/infinitive, not first or second person, so no specificity penalty applies.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

RoleModel/rolemodel-skills

Path

skills/cloudflare-tunnel/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.