Unofficial Cloudflare One client for Linux, macOS, and headless environments. ThirdFlare One wraps your existing warp-cli install with a local API and optional browser UI — functional parity with the official Windows desktop app.
Not affiliated with Cloudflare. Install Cloudflare WARP separately. Cloudflare trademarks belong to Cloudflare, Inc.
From a GitHub Release — download AppImage, .deb, .rpm, Flatpak, or Snap, then launch ThirdFlare One from your app menu or run:
thirdflare-oneFrom source — clone, install to a stable path, launch:
git clone https://github.com/oldrepublicwizard/thirdflare-one.git
cd thirdflare-one
./thirdflare-one install
thirdflare-oneInstall layout: ~/.local/share/thirdflare-one · CLI on ~/.local/bin · desktop entry thirdflare-one.desktop
Background daemon (optional):
./thirdflare-one install --service
systemctl --user enable --now thirdflare-one.serviceOpen http://127.0.0.1:4173 when the Web UI is enabled.
git clone https://github.com/oldrepublicwizard/thirdflare-one.git
cd thirdflare-one
npm install
export WARP_CLI="$PWD/scripts/mock-warp-cli.mjs"
npm run check
npm run test:all # some tests require root, use sudo
npm run dev # Web UI at http://127.0.0.1:4173Build an AppImage locally:
./thirdflare-one build appimage # → dist/packages/thirdflare-*-x86_64.AppImageFull contributor guide: docs/CONTRIBUTING.md
| Component | Notes |
|---|---|
| Cloudflare WARP | warp-cli on PATH — Linux · macOS |
| Node.js 20+ | Host Node for deb/rpm; bundled in AppImage / Flatpak / Snap |
| Browser | For the Web UI when enabled |
| Command | Description |
|---|---|
thirdflare-one |
Start daemon and open Web UI |
thirdflare-one --no-open |
Start API-only daemon |
thirdflare-one --connect |
Connect WARP and open UI |
thirdflare-one --disconnect |
Disconnect WARP |
thirdflare-one --toggle |
Toggle WARP connection |
thirdflare-one --status |
Daemon health |
thirdflare-one --stop |
Stop managed daemon |
thirdflare-one --version |
Print version |
thirdflare-one --tray |
Optional tray menu (requires yad) |
thirdflare and thirdflare-one-gui are equivalent aliases.
./thirdflare-one install [options] # idempotent user install
./thirdflare-one build appimage # build packages
./thirdflare-one run [args] # same as bin/thirdflare
./thirdflare-one test all # run test suites
./thirdflare-one help- Connect/disconnect, modes, Gateway DNS, split tunnel, trusted networks, registration, diagnostics via guarded
warp-cli - Optional Web UI (off by default for systemd)
- Layered configuration —
/etc/thirdflare, user config, env vars, session overrides (docs/CONFIGURATION.md) - Linux nftables kill-switch (docs/CONFIGURATION.md)
- Release updates with AppImage auto-apply (docs/UPDATES.md)
- Desktop notifications on WARP status changes
| Guide | Description |
|---|---|
| docs/README.md | Documentation index |
| Getting started | Install paths, daily use, troubleshooting |
| Contributing | Dev setup, tests, pull requests |
| Configuration | Config keys and environment variables |
| Architecture | HTTP API and codebase overview |
| Packaging | Release artifacts and CI |
| Distribution | Flathub, Snap, COPR, AUR, AppImageHub |
| Updates | Update channels and manifest |
| CI | Test confidence levels |
Prebuilt packages: GitHub Releases
# Container (API server — mount host warp-cli at runtime)
docker pull ghcr.io/oldrepublicwizard/thirdflare-one:latest
# macOS Homebrew
brew tap oldrepublicwizard/thirdflare-one homebrew-tap
brew install thirdflare-oneSee docs/DISTRIBUTION.md for Flathub, Snap Store, COPR, AUR, and AppImageHub install paths.
See docs/PACKAGING.md for build details and maintainer workflows.
Contributions are welcome. Please read docs/CONTRIBUTING.md before opening a pull request.
export WARP_CLI="$PWD/scripts/mock-warp-cli.mjs"
npm run check && npm run test:all