Skills
Skill 4 of 14
Design, configure, troubleshoot, or review Cloudflare One Zero Trust and SASE deployments.
12 minutes · 2,552 words · 20 sections
Install
npx skills add cloudflare/skills --skill cloudflare-onenpx skills add cloudflare/skills/plugin marketplace add cloudflare/skillsThe first command installs just this skill, by the name in its SKILL.md; the second installs the whole repository.
Before citing limits, settings, API fields, category IDs, or exact UI paths, retrieve current information from the Cloudflare One docs, the Cloudflare docs MCP server, or the Cloudflare API schema.
Use these to avoid jumping straight to configuration. Ask only the prompts relevant to the user’s task.
/access/policies) and attach them to applications. Do not send inline policies in an application create/update request unless the current API documentation explicitly requires an app-scoped policy.reusable: false as legacy. Migrate existing policies with the documented make_reusable endpoint or replace them with reusable policies; do not create new legacy policies. Distinguish legacy policies from the deprecated legacy private-network application type.The Cloudflare One device client (opens in a new tab) is the on-ramp for user devices. Two components control it: enrollment rules (who can connect) and device profiles (how the client behaves after enrollment).
The enrollment rule is an Access application of type warp, not a device setting. It accepts reusable Access policies. Look in Access for enrollment debugging, not Devices.
For headless or autonomous devices (services, kiosks, Linux hosts), use service token enrollment. Non-human devices authenticate as non_identity@[team-domain].cloudflareaccess.com and have no group membership - device profiles targeting IdP groups will not match them. Target headless devices explicitly with the non-identity email, specific conventions about the devices (OS information, etc.),or let them fall to the default profile.
Device profiles control connection mode, split tunnel (opens in a new tab) configuration, user permissions (disable, switch lock), auto-reconnect, and captive portal behavior. Profiles are matched by user group or device attributes in precedence order - first match wins, default profile catches the rest.
Split tunnel mode is the single most impactful client setting. Choose the mode based on the deployment goal:
| Goal | Mode | Rationale |
|---|---|---|
| VPN replacement only (private apps) | Include | Route only specified private CIDRs and hostnames through the client. Everything else goes direct. Minimal blast radius. |
| SWG only (internet security) | Exclude | All traffic through the client. Exclude only what breaks (local printers, certificate-pinned apps). |
| VPN replacement + SWG | Exclude | All traffic through the client. Most common enterprise configuration. |
| Coexistence with another VPN | Include | Avoids conflict with the other VPN’s tunnel interface and DNS control. |
| DNS filtering only | DNS-only mode | Only DNS queries go to Gateway. No traffic proxying. |
Include vs exclude is per-profile, not per-entry. You cannot mix modes in the same profile. Switching modes mid-deployment requires re-evaluating every entry.
Split tunnel entries must align with tunnel routes bidirectionally. A CIDR in the include list without a matching tunnel route causes a black hole. A tunnel route without a matching device profile entry means traffic never enters the tunnel.
MDM parameters (mdm.xml / managed preferences) override dashboard-configured profile settings for any setting specified in the file. If dashboard changes appear to have no effect on managed devices, check MDM config. Retrieve MDM deployment (opens in a new tab) docs for platform-specific file locations and parameters.
If another VPN client or agent controls DNS on the device, the device client’s DNS interception will conflict. In coexistence scenarios, use “traffic only” mode to avoid routing table and DNS conflicts.
Captive portal detection temporarily disconnects the client when it detects a portal (hotel WiFi, airport). This is a common source of end-user friction and should be managed carefully.
dns.domains matches a domain and subdomains; dns.fqdn is exact-match only.sshd configured to trust the Cloudflare CA public key. Retrieve short-lived certificate setup (opens in a new tab) docs before configuring.reusable: false app-scoped policies.Design, configure, troubleshoot, or review Cloudflare One Zero Trust and SASE deployments. Use cloudflare-one-migrations for migration planning from other vendors.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
main, last pushed 22 September 2026.SKILL.md, not by matching a directory convention. One layout observed: skills/*/SKILL.md.h1 and no skipped levels:.claude-plugin/marketplace.json by Cloudflare, declaring 1 plugin. It is read for editorial metadata only — never as the skill index, which is always the repository tree./cloudflare/skills.md, and each skill at its own .md URL.