F-Droid desktop client. Requires Go 1.21 or later.
go install mvdan.cc/fdroidcl@latest
While the Android client integrates with the system with regular update checks and notifications, this is a simple command line client that talks to connected devices via ADB.
Download the index:
fdroidcl update
Show all available apps:
fdroidcl search
Install an app:
fdroidcl install org.adaway
Show all available updates, and install them:
fdroidcl search -u
fdroidcl install -u
Unofficial packages are available on: Debian and Ubuntu.
update Update the index
search [<regexp...>] Search available apps
show <appid...> Show detailed info about apps
install [<appid...>] Install or upgrade apps
uninstall <appid...> Uninstall an app
download <appid...> Download an app
devices List connected devices
scan Scan for known fdroid apps on a device
list (categories/users) List all known values of a kind
repo Manage repositories
setups Manage setups
clean Clean index and/or cache
defaults Reset to the default settings
version Print version information
An appid is just an app's unique package name. A specific version of an app can be selected by following the appid with a colon and the version code. The 'search' and 'show' commands can be used to find these strings. For example:
fdroidcl search redreader
fdroidcl show org.quantumbadger.redreader
fdroidcl install org.quantumbadger.redreader:85
usage: fdroidcl repo
List, add, remove, enable or disable repositories.
When a repository is added, it is enabled by default.
List repositories:
$ fdroidcl repo
Modify repositories:
$ fdroidcl repo add <NAME> <URL>
$ fdroidcl repo remove <NAME>
$ fdroidcl repo enable <NAME>
$ fdroidcl repo disable <NAME>
usage: fdroidcl setup
List, add, remove, edit, and import/export setups.
Setups allow for mass installs onto an android device, excellent for backups.
List setups:
$ fdroidcl setup Show all setups
$ fdroidcl setup list <NAME> Show details about one setup
Modify setups:
$ fdroidcl setup new <NAME>
$ fdroidcl setup remove <NAME>
$ fdroidcl setup apply <NAME>
$ fdroidcl setup add-app <NAME> <APP-ID>
$ fdroidcl setup rm-app <NAME> <APP-ID>
$ fdroidcl setup add-repo <NAME> <REPO-NAME>
$ fdroidcl setup rm-repo <NAME> <REPO-NAME>
Export setups:
$ fdroidcl setup import <FILENAME>
$ fdroidcl setup export <NAME>
You can configure what repositories to use in the config.toml
file. On Linux,
you will likely find it at ~/.config/fdroidcl/config.toml
.
You can run fdroidcl defaults
to create the config with the default settings.
- Command line interface
- Batch install/update/remove apps without root nor system privileges
- No need to install a client on the device
- Run as a daemon, e.g. periodic index updates
- Act as an F-Droid server
- Swap apps with devices
- Index verification relies on HTTPS (not the JAR signature)
- The tool can only interact with one device at a time
- Hardware compatibility of packages is not checked
- What's the point of a desktop client?
This client works with Android devices connected via ADB; it does not install apps on the host machine.
- Why not just use the f-droid.org website to download APKs?
That's always an option. However, an F-Droid client supports multiple repositories, searching for apps, filtering by compatibility with your device, showing available updates, et cetera.