Releases: ardacelep/fanctl
Release list
fanctl v0.2.1
Control your Levoit (VeSync) Classic Tower Fan from the desktop, web, or CLI.
New in 0.2.1
Menu bar (macOS, fanctl --menubar) polish:
- Custom menu-bar icon that adapts to light/dark menu bars (no more emoji).
- Temperature shown inside the menu ("Temperature: 27.5°C"), not in the title.
- Auto-detects sign-in done in the windowed app — no quit/relaunch needed.
The downloadable bundles below are the desktop/web app and are functionally the
same as 0.2.0; the menu bar is an optional extra (pip install "fanctl[menubar]").
Downloads
| OS | File |
|---|---|
| macOS | fanctl-macos.zip |
| Windows | fanctl-windows.zip |
| Linux | fanctl-linux.zip |
Unzip and launch. Log in with your VeSync account (the password is never stored — only a session token). Your devices appear by the names you gave them in the VeSync app; accounts with more than one fan get a device picker.
First launch — the app is unsigned
This is a free, independent project, so the OS warns once per download.
macOS — the dialog says "Apple could not verify … is free of malware." Click Done (not Move to Trash), then either:
- Terminal (most reliable):
(Type it with a trailing space and drag the app onto Terminal to fill the path. A harmless "No such file" symlink note may appear — it still works.) Then double-click the app.
xattr -dr com.apple.quarantine /path/to/fanctl.app
- or try to open it once, then System Settings → Privacy & Security → Open Anyway.
On recent macOS (Sequoia 15, Tahoe 26, and later) the old "right-click → Open" trick no longer works — use one of the above.
Windows — SmartScreen → More info → Run anyway.
Linux — chmod +x if needed, then run.
Notes
- Tested on the Levoit Classic Tower Fan (LTF-F422S). Other models may need extra work.
- Unofficial project, built on the community pyvesync library.
fanctl v0.2.0
Control your Levoit (VeSync) Classic Tower Fan from the desktop, web, or CLI.
New in 0.2.0
- Device picker — accounts with more than one fan now work. After login the app
lists your devices (a lone fan is auto-selected); a ← Devices button switches
anytime. Unsupported devices are shown but disabled. - macOS menu bar app — control the fan from the status bar:
fanctl --menubar
(install withpip install "fanctl[menubar]"). Not bundled below — it's an
optional extra installed from source.
Downloads
| OS | File |
|---|---|
| macOS | fanctl-macos.zip |
| Windows | fanctl-windows.zip |
| Linux | fanctl-linux.zip |
Unzip and launch. Log in with your VeSync account (the password is never stored — only a session token). Your devices are shown by the names you gave them in the VeSync app.
First launch — the app is unsigned
This is a free, independent project, so the OS warns once per download.
macOS — the dialog says "Apple could not verify … is free of malware." Click Done (not Move to Trash), then either:
- Terminal (most reliable):
(Type the command with a trailing space and drag the app onto Terminal to fill the path. A harmless "No such file" symlink note may appear — it still works.) Then double-click the app.
xattr -dr com.apple.quarantine /path/to/fanctl.app
- or try to open it once, then System Settings → Privacy & Security → Open Anyway.
On recent macOS (Sequoia 15, Tahoe 26, and later) the old "right-click → Open" trick no longer works — use one of the above.
Windows — SmartScreen → More info → Run anyway.
Linux — chmod +x if needed, then run.
Notes
- Tested on the Levoit Classic Tower Fan (LTF-F422S). Other models may need extra work.
- Unofficial project, built on the community pyvesync library.
fanctl v0.1.0
First release of fanctl — control your Levoit (VeSync) Classic Tower Fan (LTF-F422S) from the desktop, web, or CLI.
Downloads
| OS | File |
|---|---|
| macOS | fanctl-macos.zip |
| Windows | fanctl-windows.zip |
| Linux | fanctl-linux.zip |
Unzip and launch. Log in with your VeSync account (the password is never stored — only a session token).
First launch — the app is unsigned
This is a free, independent project, so the OS warns once per download (code signing costs a yearly fee).
macOS — the dialog says "Apple could not verify … is free of malware." Click Done (not Move to Trash), then either:
- Terminal (most reliable):
(Type the command with a trailing space and drag the app onto Terminal to fill the path. A harmless "No such file" symlink note may appear — it still works.) Then double-click the app.
xattr -dr com.apple.quarantine /path/to/fanctl.app
- or try to open it once, then System Settings → Privacy & Security → Open Anyway.
On recent macOS (Sequoia 15, Tahoe 26, and later) the old "right-click → Open" trick no longer works — use one of the above.
Windows — SmartScreen → More info → Run anyway.
Linux — chmod +x if needed, then run.
Notes
- Tested on the Levoit Classic Tower Fan (LTF-F422S). Other models may need extra work.
- Unofficial project, built on the community pyvesync library.