The project is Cloudy AF (originally Arcticfox Config), a Linux desktop configuration utility for vape battery mods that run the ArcticFox firmware. It is a community fork that modernizes the decade-old Electron-based app into a Tauri desktop application, packaged as a Flatpak.
This fork reworks hobbyquaker's Electron-based Linux/macOS project as a Rust Tauri desktop app, packaging it as a sandboxed Flatpak image for Linux, permission-controllable (through Flatseal), because current npm is a minefield, Wine USB passthrough is a headache, and so is creating Windows VMs. The fork also adds quality-of-life improvements such as window scaling, an eternally dark UI, Freedom Unit selection that works (original defaulted to Celsius and capped F at 400), Autofire as a multi-click/shortcut option, device auto-reconnect, and a "Lite" appearance mode for small devices.
Pre-built Flatpak bundle is available on the
releases page
and in the local builds/ directory after running the build scripts.
Or click here for a direct link.
Portable Appimage binary also provided on the releases page. Installable .deb and .rpm files can be found there as well. And in the local builds/ directory after running the build scripts.
flatpak install --user ~/Downloads/cloudy-af.flatpakflatpak install --user builds/cloudy-af.flatpakflatpak run org.cloudy.afThe Flatpak manifest requests --device=all, but HID access also requires udev rules for
unprivileged users. Install the provided rules after downloading source:
sudo cp flatpak/50-cloudy-af.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm triggerThen unplug and reconnect your device.
Native Linux packages are produced by scripts/build-appimage.sh and placed in builds/:
Cloudy_AF-<version>-x86_64.AppImage— portable, no install requiredCloudy AF_<version>_amd64.deb— Debian/Ubuntu installerCloudy AF-<version>-1.x86_64.rpm— Fedora/openSUSE installer
These can also be found here.
Make the file executable and run it:
chmod +x builds/Cloudy_AF-1.14.1-x86_64.AppImage
./builds/Cloudy_AF-1.14.1-x86_64.AppImageThe AppImage uses a static runtime and works on systems with only FUSE3.
# Debian / Ubuntu
sudo apt install ./builds/Cloudy\ AF_1.14.1_amd64.deb
# Fedora
sudo dnf install ./builds/Cloudy\ AF-1.14.1-1.x86_64.rpmNative packages also need the udev rules for unprivileged HID access:
sudo cp flatpak/50-cloudy-af.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm triggerThen unplug and reconnect your device.
macOS builds are not officially produced by this fork, but the Tauri app can be built from source on
macOS using Homebrew. The resulting .app / .dmg uses the Homebrew-installed Node.js runtime to
run the HID sidecar.
# Install Homebrew if you don't have it:
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install node@22 rustMake sure Homebrew's node@22 is in your PATH:
# For Apple Silicon Macs:
echo 'export PATH="/opt/homebrew/opt/node@22/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# For Intel Macs:
echo 'export PATH="/usr/local/opt/node@22/bin:$PATH"' >> ~/.zshrc
source ~/.zshrcnpm install
npm run sidecar:build
npm run tauri:build -- --bundles dmgThe .dmg is written to src-tauri/target/release/bundle/dmg/.
macOS does not allow unprivileged HID access out of the box. The app must be granted Input Monitoring permission in System Settings → Privacy & Security → Input Monitoring after the first launch attempt. You may also need to right-click the app and choose Open the first time to bypass Gatekeeper.
- Node.js 22 (LTS)
- Rust stable toolchain
- Flatpak Builder (for the Flatpak package)
org.gnome.Platformruntime 49 and matching SDKorg.freedesktop.Sdk.Extension.node22org.freedesktop.Sdk.Extension.rust-stable
npm install
npm run tauri:devnpm install
npm run build:nativeThe native release binary is copied to builds/cloudy-af.
The AppImage / .deb / .rpm build script also copies completed packages to builds/.
cd flatpak
flatpak-builder --force-clean --repo=repo build-dir org.cloudy.af.yml
flatpak build-bundle repo cloudy-af.flatpak org.cloudy.af
mv cloudy-af.flatpak ../builds/npm install
npm run appimage:buildAll native Linux packages are copied to builds/.
Start the application and connect your ArcticFox device. The app will automatically detect the device and download its configuration. Use the tabs to edit profiles, power curves, TFR tables, and device settings, then click Upload to write the configuration back to the device.
Work in progress. Issues welcome.
If no device detected, follow the USB permissions instruction above.
src/– Frontend source (HTML/CSS/JS, Vite build)src-tauri/– Tauri Rust hostsidecar/– Node.js HID bridge run as a Tauri sidecarflatpak/– Flatpak manifest, desktop entry, appdata, and udev rulespublic/– Static assets (i18n, default config)
- Rust — Tauri 2.x host shell (src-tauri/), window management, and IPC.
- JavaScript (ES2021) + HTML/CSS — Frontend UI built with Vite, jQuery, and Photon-style CSS (src/, index.html).
- Node.js — HID sidecar (sidecar/) that bridges USB HID communication via node-hid and the arcticfox npm module.
- YAML / Shell — Flatpak manifest, desktop entry, appdata, and build scripts (flatpak/).
- JSON — i18n translations, default configuration, and package manifests.
Key deviations from the original hobbyquaker/arcticfox-config are documented inline with
DEVIATION comments in:
index.htmlsrc/renderer.jssrc-tauri/src/lib.rssidecar/hid-bridge.jssidecar/afcfile.jssidecar/patches/arcticfox+11.0.3.patch
Notable changes include:
- Tauri 2.x desktop shell replacing Electron
- Flatpak packaging with bundled Node.js sidecar for HID access
- Dark UI by default. Up Material UIrs
- Window scaling
- Freedom units by default
- Autofire added to multi-click / shortcut dropdowns
- Device auto-reconnect on unexpected disconnect
- Lite mode support in Appearance settings
- Hover tooltips on all settings rows (specific vape-function descriptions where available)
- Dependency security updates (
highcharts9.x,xml2js0.6.2, localputreplacement)
Planned developments include:
- Firmware update tool
- Screen animations
- Auto TFR curve plotting
Clone the repo, run npm install, and use npm run tauri:dev for development. Submit issues and pull requests. Go crazy.
- https://github.com/hobbyquaker/arcticfox-config – Original Electron application
- https://github.com/hobbyquaker/arcticfox – Node module that abstracts HID communication with Arcticfox firmware
- https://github.com/hobbyquaker/arcticfox-monitor – Device monitoring tool
- https://github.com/hobbyquaker/dna-monitor – DNA chipset configuration tool
- https://github.com/TBXin/NFirmwareEditor – NFE Team editor that this work is based on
Based on the work of NFE Team and hobbyquaker
- https://github.com/maelstrom2001/ArcticFox
- https://github.com/TBXin/NFirmwareEditor
- https://github.com/hobbyquaker/
This software uses Highcharts which is free only for non-commercial use.
Kimi Code assisted in software rewrite. Images all edited by mouse using OSS.
Accepting cryptocurrency donations for rework
- BTC bc1qpfq3c6hdflafccqmsl4v7ussvlw8pazpwez09m
- XMR 85YdUQXSMTgTeySZCyJjh9QTnzevgCHtZA6dhmFYMZqtE529pUZ5K8ceEC2ysaV2o4CuMuYtoaYPYdJfHYGX7m1WMgyM53i
GPLv3
Copyright (c) Sebastian Raff
Flatpak packaging and rework by OneButtFarting



