Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time


A simple cli to get Warp+ as WireGuard configuration

For people who just want a easy way to get a WireGuard of Warp, just download this file: Source code of the backend can be found here.


By using this, you agree the Privacy Policy and Terms of Service of Cloudflare

With Node.js (Recommended)

Step 1

Install cf-warp globally through yarn or npm.

yarn global add cf-warp # npm i -g cf-warp

Step 2

Initialize your Warp+ account by running cf-warp command.


$ cf-warp
Your Warp credentials are located at "C:\Users\maple3142\.cf-warp\data.json", and WireGuard connection file is "C:\Users\maple3142\.cf-warp\cf-warp.conf".
You currently have 1GB Warp+ quota.
To get your current Warp+ quota, simply run "cf-warp".
To increase your Warp+ quota by 10 GB, simply run "cf-warp 10".

Step 3

Obtain cf-warp.conf from ~/.cf-warp/cf-warp.conf and use it normally.

Without Node.js

Step 1

Go ahead to releases page and download a binary for your platform.

Step 2

Open your cmd/terminal and locate the binary you just downloaded, such as cf-warp-win.exe ...

Step 3

Use it just like cf-warp installed by npm.

With Docker

Step 1

docker run --rm -v ~/.cf-warp:/root/.cf-warp maple3142/cf-warp [args]


How does cf-warp get Warp+ quota for free?

It currently get quota by faking referrers since there is no way to pay for premium version outside of app, but it is recommended to pay for it on your phone if you think their service is good.

How do link this to a WARP+ license from the mobile app?

  1. Find your license key on your mobile app
    • It should be under settings/account/key, in the form of "1a2b3d4e-1a2b3d4e-1a2b3d4e"
  2. Copy that key, and run the command:
cf-warp --license 1a2b3d4e-1a2b3d4e-1a2b3d4e #Your own license key goes here
  1. When done, the current config should be sharing the same data quota as the mobile
    • If you've paid on your phone, this config should enjoy unlimited data and WARP+.

IPv6 doesn't works in Linux by default

Due to the private tunnel local address Linux needs getaddrinfo configuration.