F-Droid desktop client
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Linus789 a44c2079df add clean subcommand 3 years ago
.github bump deps and Go version 4 years ago
adb add option to only install for specific user 3 years ago
basedir basedir: replace cache with os.UserCacheDir 7 years ago
contrib/completion/zsh contrib: update zsh completion 8 years ago
fdroid fix parsing index (minsdk, permissions, etc.) 3 years ago
testdata update test deps, passing with Go 1.15 5 years ago
.gitignore add missing staticrepo index file 7 years ago
LICENSE Fix license wording 10 years ago
README.md run a newer gofumpt, require Go 1.14 5 years ago
clean.go add clean subcommand 3 years ago
defaults.go move main package into root directory 7 years ago
devices.go start rewriting tests with testscript 7 years ago
download.go allow downloads without adb installed 7 years ago
go.mod add progressbar for downloading 3 years ago
go.sum add progressbar for downloading 3 years ago
install.go add option to only install for specific user 3 years ago
list.go start rewriting tests with testscript 7 years ago
main.go add clean subcommand 3 years ago
main_test.go run a newer gofumpt, require Go 1.14 5 years ago
search.go start rewriting tests with testscript 7 years ago
show.go fix parsing index (minsdk, permissions, etc.) 3 years ago
uninstall.go start rewriting tests with testscript 7 years ago
update.go add progressbar for downloading 3 years ago

README.md

fdroidcl

GoDoc

F-Droid desktop client. Requires Go 1.14 or later.

go get mvdan.cc/fdroidcl

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 [<regexp...>]  Search available apps
show <appid...>       Show detailed info about an app
install [<appid...>]  Install or upgrade apps
uninstall <appid...>  Uninstall an app
download <appid...>   Download an app
devices               List connected devices
list (categories)     List all known values of a kind
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

Config

You can configure what repositories to use in the config.json file. On Linux, you will likely find it at ~/.config/fdroidcl/config.json.

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.