fdroidcl is a command-line F-Droid desktop client designed to manage F-Droid applications on Android devices connected via ADB. It provides a powerful interface for developers, system administrators, and power users to interact with their devices without requiring root access or graphical clients.
Key Features:
Command-Line Interface: Enables batch operations such as installing, updating, or removing apps.
Repository Management: Allows adding, removing, enabling, or disabling F-Droid repositories directly via the CLI.
Setup Automation: Manages setups for mass installs, ideal for backups or device configurations.
Device Interaction: Works with Android devices connected via ADB without needing system privileges.
Index Updates: Regularly updates the app index to reflect the latest available packages.
Search Functionality: Searches apps by name or package ID and filters updates based on compatibility.
Audience & Benefit:
Ideal for developers, sysadmins, and advanced users seeking precise control over their Android devices. fdroidcl streamlines workflows by enabling efficient batch operations and automation of app installations without relying on graphical clients. It is particularly useful for those managing multiple devices or maintaining consistent app setups across environments.
fdroidcl can be installed via winget, ensuring easy setup and integration into existing development pipelines.
README
fdroidcl
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.
Quickstart
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.
Commands
update Update the index
search [] Search available apps
show Show detailed info about apps
install [] Install or upgrade apps
uninstall Uninstall an app
download 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
new: you can manage the repositories now directly via cli
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
$ fdroidcl repo remove
$ fdroidcl repo enable
$ fdroidcl repo disable
new: you can manage automating installs using setups
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 Show details about one setup
Modify setups:
$ fdroidcl setup new
$ fdroidcl setup remove
$ fdroidcl setup apply
$ fdroidcl setup add-app
$ fdroidcl setup rm-app
$ fdroidcl setup add-repo
$ fdroidcl setup rm-repo
Export setups:
$ fdroidcl setup import
$ fdroidcl setup export
Config
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.
Advantages over the Android client
Command line interface
Batch install/update/remove apps without root nor system privileges
No need to install a client on the device
What it will never do
Run as a daemon, e.g. periodic index updates
Act as an F-Droid server
Swap apps with devices
Caveats
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
FAQ
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.