croc CLI interoperability
CrocApp embeds croc v10.5.0 as a Go library (via a gomobile-built framework) rather than shelling out to the croc binary. That means it speaks the exact same protocol as the CLI, in both directions.
Upstream croc released v10.6.0 after this pin was set; CrocApp has not moved to it yet.
Example: CLI sends, app receives
On a laptop, using the croc CLI:
croc send file.txt
# -> prints something like 9822-word-word-word
On your phone or Mac, open Receive in CrocApp and enter the printed code. The file arrives exactly as if the sender had also used CrocApp.
Example: app sends, CLI receives
Start a send in CrocApp, get the code phrase it displays, then on another machine:
croc 9822-word-word-word
Self-hosted relay
Both sides need to agree on the relay. From the CLI:
croc --relay myserver:9009 send file.txt
In CrocApp, set the same address under the relay power option.
Feature-to-flag mapping
| # | Feature | croc flag / origin |
|---|---|---|
| F1 | Send files (multi) | positional args |
| F2 | Send folders | positional args |
| F3 | Send text/clipboard | --text |
| F4 | Receive via code | positional args |
| F5 | Custom code phrase (min 6 chars) | --code |
| F6 | QR show on send / scan on receive | --qrcode |
| F7 | Choose output folder | --out |
| F8 | Overwrite/resume handling | --overwrite |
| F9 | Incoming file list preview, accept/decline | interactive prompt |
| F10 | Progress, speed, cancel | — |
| F11 | LAN + relay auto race | croc default |
| F12 | Transfer history | — |
| F13 | Custom relay, password, IPv6 | --relay --relay6 --pass |
| F14 | Force local-only | --local |
| F15 | Disable compression | --no-compress |
| F16 | Zip folder before send | --zip |
| F17 | Exclude patterns / .gitignore | --exclude --git |
| F18 | Auto-accept toggle | --yes |
| F19 | Both-sides confirm | --ask |
Version and relay compatibility
Because CrocApp links croc's own library code rather than reimplementing the protocol, relay and protocol compatibility follow whatever croc itself supports at the pinned version. Using a current, non-ancient croc CLI on the other end is the safest bet.