New app: Buddy
Abstract for new app inclusion
Please introduce the functions and usage of your app in summary, and also attach some screenshots.
Buddy lets AI coding agents use an Android phone. You type or say what you want in a floating chat bubble, and the agent you picked (Claude Code, Codex, OpenCode, Antigravity or Grok) reads the screen, taps and types through your apps to do it. It asks before anything is sent, posted, bought or deleted, pauses when you touch the screen, and hands passwords and payment details to you.
The agent runs in a small Alpine Linux inside the app (proot), and Buddy gives it phone tools through its accessibility service and a local MCP server on 127.0.0.1. Other features: notification rules, scheduled tasks, live voice, a background browser, and "Linux tools" chats that can build and install APKs on the phone.
Screenshots: https://github.com/ghorbelhamdi/buddy-android/tree/main/fastlane/metadata/android/en-US/images/phoneScreenshots
Please elaborate why you wrote this app. Please highlight the unique functions it provides over other similar apps in F-Droid.
I wanted the coding agents I already use to work on my phone the way they work on a computer, without root, adb or a PC. As far as I know there's no app on F-Droid that runs these agents on the device and gives them the phone's screen as tools. It also works with OpenCode's free models and no account.
Notes for review:
- Downloads at runtime: Buddy's Linux (Alpine minirootfs and packages), the agent the user picks, and optionally Chromium for the background browser are downloaded only when the user taps to install them. In the
fdroidflavor each of these screens says the files come from their makers, not from F-Droid, so F-Droid hasn't checked them (inclusion policy, downloading executable code). Thefdroidflavor has no self-updater. - Anti-features: NonFreeNet (the agents use AI services) and NonFreeAdd (some agents, such as Claude Code, are not open source).
- Native code: proot and libandroid-shmem are git submodules; talloc's three source files are vendored in
third_party/talloc;native/build.shbuilds them with the NDK in prebuild. No prebuilt binaries in the repo besides the Gradle wrapper. - Reproducible: the release CI publishes a signed
buddy-fdroid-vX.apkand checks that an unsigned rebuild from a second checkout matches it withapksigcopier compare.
Checklist
Policy
- The app complies with the inclusion policy. Pay special attention to Quality point 6.
- The original app author has been notified (and does not oppose the inclusion). I'm the author.
- The upstream app source code repo contains the app metadata in a Fastlane folder structure, with summary, description, images, icon and changelog in
en-US.
Docs
- Please read the guide first if this is your first contribution.
- Please make sure your metadata follows the best practice in our templates.
- Please read the Build Metadata Reference and make sure your metadata is valid.
- Please read the Quick Start Guide.
Merge Request Setup
- The title of this merge request should follow "New app: app name" format.
- Please make sure your fdroiddata fork is public and your branch is not protected.
- Please read our Git guide if you don't know how to rebase your branch.
- All related fdroiddata and RFP issues have been referenced in this merge request (none that I know of)
- Please only submit one app in one MR.
Metadata
- Metadata must be put in
metadata/<applicationId>.yml. - Metadata must be a valid YAML file.
- Metadata must use LF as line ending.
- Don't add summary/description/changelog/images or anything that should be provided in upstream repo.
- Releases are tagged and auto update is enabled unless there is a special reason.
- There is an issue tracker and contact info of the author so that we can report bugs and contact the author.
- An AuthorName must be added.
- External repos are added as git submodules instead of srclibs.
- Enable Reproducible Builds.
- Setup abi split if the APK is large and the splitted ones can be much smaller. (The app is arm64-v8a only and about 3 MB.)
- Only the latest versions should be kept in the metadata before it's merged.
- Don't add any disabled versions in the metadata.
- The
commitfield should be the full hash.
Pipeline
- All pipelines should pass.
- All warnings and errors in the Reports tab should be fixed or explained.