Unsigned, experimental builds
Four steps, and a hash check
Installing a release bundle does not require Rust or a compiler. It does require you to verify the download yourself, because nothing here is code-signed or notarised yet.
Latest release01
Verify the archive
Release artifacts are unsigned and experimental. Download the user bundle for your platform along with SHA256SUMS, then compare the hash before you extract anything. Substitute the release tag for <version>.
(Get-FileHash .\gflick-<version>-windows-x86_64.zip -Algorithm SHA256).Hash.ToLower()shasum -a 256 gflick-<version>-macos-aarch64.tar.gz02
Run the installer
Extract the archive and run the bootstrapper from the extracted directory. It needs no Rust toolchain and no compiler. The default installs the agent and the tray.
gflick-setup install03
Choose components, if you want
A headless machine or a scripted setup does not need the tray. Pass an explicit component list to override the default.
gflick-setup install --components agentgflick-setup install --components agent,tray,cli04
Confirm it came up
The status command reports what is installed and whether the agent is running. Repair reinstalls anything missing or mismatched without touching your settings.
gflick-setup statusgflick-setup repairComponents
The bundle ships several executables and lets you pick which ones get installed and registered.
| Component | Status | What it does |
|---|---|---|
| agent | Required | The device owner. Holds HID sessions, refreshes state, persists settings, and serves local IPC. |
| tray | Optional, on by default | Notification-area and menu-bar status client. Subscribes to events and sleeps between changes. |
| cli | Optional | The gflick command, for scripting and shell control of a running agent. |
| settings | Reserved | The future primary interface. Cannot be selected until its real payload ships. |
Where things go
Everything installs per user. Nothing is written to a system directory, and no administrator or root privilege is requested.
| Platform | What | Location |
|---|---|---|
| Windows | Executables | %LOCALAPPDATA%\gflick\bin |
| Windows | Settings and state | %APPDATA%\gflick |
| macOS | Executables | ~/Library/Application Support/gflick |
| macOS | CLI symlink | ~/.local/bin/gflick |
| macOS | Settings and state | ~/Library/Application Support/gflick |
If an install goes wrong
Installation is transactional. If a step fails partway through, the installer rolls the change back rather than leaving a half-installed tree behind. gflick-setup status reports what is present and what is running; repair reinstalls anything missing or mismatched and leaves your settings alone.
Intel macOS is rejected outright rather than installed and left to fail later. The current target is Windows 10/11 on x86-64 and Apple Silicon macOS.
Removing it
gflick-setup uninstall stops the agent, removes the executables, and unregisters the startup entry. It keeps your settings and state by default, so a later reinstall picks up where you left off. Add --remove-user-data to delete those too.
Two things worth knowing
The devtools archive is a separate download and is not part of a normal install. Its Probe executable opens HID directly and must not run at the same time as the agent, because they compete for the same interface.
When you test against real hardware, fully exit Logitech G HUB first. It contends for the same HID++ interfaces and will reapply its own active profile underneath you.
Bundle verification, the generation-token handshake between agent and tray, and the full command reference are in the setup README .