croc-app is an Android client for croc with a modern, mobile-first UI built in Kotlin and Jetpack Compose.
It is designed to make file and text sharing feel much more natural on Android: quick send, quick receive, QR-assisted flows, saved codes, transfer history, and better handling for the small details that matter on phones.
This project was inspired by croc-gui, which showed that a mobile-friendly croc experience could work.
But croc-gui is older, written in Go, and lacks a number of features and UX improvements we wanted in a modern Android app. croc-app is our attempt to build a more polished, more maintainable, and more feature-complete Android experience around croc.
- Quick send and quick receive flows
- Send files or clipboard text
- QR code generation for fast pairing
- QR scanning for receive
- Saved send and receive codes
- Transfer history and favorites
- Android share-sheet support
- Received files published to
Downloads/croc-received - Material 3 UI designed specifically for Android
- Version name:
4.1.0
croc-app is under active development.
My primary use case is simple: quick clipboard transfer between phone and desktop — notes, code snippets, links, anything.
On my desktop, I use a small PowerShell helper (ccs) that:
- starts
crocin sending mode with my saved code - automatically sends text from the clipboard
- Run
ccsin the desktop terminal - Open croc-app and tap Receive
- The text appears on the phone, ready to copy or open
A similar flow works in reverse for sending text from my phone to my desktop.
app/- main Android application modulegradle/- Gradle configuration used by the Android project
If you just want to build and run the app locally:
./gradlew assembleReleaseOr open the project in Android Studio and run the app configuration.
This produces a working APK, but it may not be reproducible.
For deterministic builds (matching CI / F-Droid), use the scripts in:
reproducible-build/
This setup uses Docker to ensure:
- consistent environment
- reproducible dependency resolution
- deterministic signing
cd reproducible-build
docker build -t croc-app-build .
docker run --rm \
-e REPO_BRANCH=main \
-e KEYSTORE_PASS=your_keystore_password \
-e KEY_ALIAS=your_key_alias \
-e KEY_PASS=your_key_password \
-v $(pwd)/key.jks:/secrets/release.jks:ro \
-v $(pwd)/output:/output \
croc-app-builder \
bash /build/build.shOutput:
output/croc-app-release.apk
You can use the provided batch script:
reproducible-build/run-build.bat
Before running, edit the script and configure:
set "KEYSTORE_FILE=%~dp0key.jks"
set "KEY_ALIAS=ALIAS"
set /p KEYSTORE_PASS=<kspass.txt
set /p KEY_PASS=<kpass.txtThen:
- Place your keystore:
reproducible-build/key.jks
- Add passwords in:
reproducible-build/kspass.txt
reproducible-build/kpass.txt
- Run:
run-build.batThe signed APK will be generated in the output/ directory.
Contributions are welcome, checkout CONTRIBUTING.md.
The app tries to stay true to croc while feeling native on Android:
- fast to use
- easy to understand
- polished enough for daily use





