davepoon/cf-proxy
Deploy a free VLESS proxy/VPN node on Cloudflare Pages using edgetunnel. Automates code download, UUID generation, Pages deployment, free domain registration (DNSExit), DNS configuration, custom domain binding, and client setup for Shadowrocket/v2rayN/Clash. Uses Cloudflare Pages (not Workers) because Pages supports CNAME-based custom domains from any DNS provider, avoiding the need to host DNS on Cloudflare.
npx skills add https://github.com/davepoon/buildwithclaude --skill cf-proxy
Deploy a free VLESS proxy node on Cloudflare Pages + edgetunnel, with WebSocket over TLS through Cloudflare's global CDN.
*.linkpc.net)*.pages.devHelp me set up a free Cloudflare proxy node
/cf-proxy
Deploy a VLESS proxy on Cloudflare using my domain example.com
Fix my Cloudflare proxy — Shadowrocket can't connect
Client (Shadowrocket / v2rayN / Clash)
↓ VLESS over WebSocket over TLS (port 443)
Custom Domain (CNAME → *.pages.dev)
↓
Cloudflare CDN (global edge)
↓
Cloudflare Pages Function (edgetunnel _worker.js)
↓ TCP outbound
Target Website
workers.dev domains are blocked at the TLS SNI layer by some firewalls| Resource | Free Quota | Impact on Proxy |
|----------|-----------|----------------|
| Requests | 100,000/day | WebSocket connection = 1 request; messages free |
| Bandwidth | Unlimited | No egress fees — biggest advantage |
| CPU time | 10 ms/request | Proxy is I/O-bound, typically <3ms |
| Memory | 128 MB/isolate | Sufficient |
User: "帮我搭建一个 Cloudflare 代理节点"
Output: Skill walks through the full 7-phase setup interactively — collecting Cloudflare credentials, generating config, deploying to Pages, registering a free domain if needed, configuring DNS, binding the custom domain, and providing the final VLESS connection URI for the user's proxy client.
vless.example.com), never the root domain — a root CNAME destroys the zone's SOA/NS recordshttps://your-domain/<admin-password> provides ready-to-scan QR codes for mobile clientsgh)npx skills add LewisLiu007/cf-proxyTake davepoon/cf-proxy from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npx.
Without those the skill loads but fails at the first command.