bonk.rsGet started

Build, deploy, and debug with Bonk.

Bonk is the open-source build and device tooling behind this workflow. Accounts and your team's devices are managed on Bonk Cloud.

Install Bonk

The upstream project currently documents installation from Git over SSH. You need Rust, Cargo, and GitHub SSH access configured.

cargo install --git ssh://git@github.com/Traverse-Research/bonk.git --locked
bonk doctor

bonk doctor reports external tool availability. Platform SDKs and signing requirements depend on the target you build for.

Find your devices

bonk devices
bonk devices add phone adb:SERIAL
bonk run --device phone

Saved names work with --device. Android names follow the device's serial number across USB and Wi-Fi reconnections.

Select a persistent default when you are iterating on the same device:

bonk devices select-default adb:SERIAL
bonk run
bonk devices reset-default

An explicit --device overrides the default for that command.

Reach a remote Android device

Once connected to a device fabric, remote devices appear as <node>/adb:<serial>.

bonk devices add pixel lab/adb:SERIAL
bonk run --device pixel
bonk shell pixel
bonk adb-bridge pixel

The bridge prints the ADB_SERVER_SOCKET and ADB environment variables to set in another terminal. Keep the bridge running while using adb, Android Studio, or scrcpy. For scrcpy, use --force-adb-forward and Bonk's adb binary so the versions match.

Forwarded ports work through the fabric. adb reverse is not supported over the fabric yet. Bonk skips manifest reverse entries with a warning.

Run on an SSH host through the fabric

Nodes can advertise an SSH service alongside their attached Android devices. Bonk routes SSH through the fabric automatically when the destination matches a fabric node name or its fabric DNS name.

bonk devices
bonk run --device ssh:dev@lab:2222
bonk shell ssh:dev@lab:2222

SSH uses your own keys and verifies the host against known_hosts. Set up key-based access first. bonk pair is for devices reachable on your network; it does not work through the fabric because its device callback is blocked by the access policy.

Pair a handheld

bonk pair
bonk run --device steamdeck
bonk shell steamdeck

Pairing prints a setup command to run on your device and lets you save a name. Linux devices use SSH; Windows handhelds use Windows OpenSSH Server. Windows setup needs administrator access. Use Desktop Mode on Steam Deck for day-to-day iteration.

Bonk can use LLDB for Linux SSH devices. Windows devices need a separate debugger, such as Visual Studio Remote Debugger. Windows on Arm devices can be recognized, but Bonk cannot build their target yet.

Chromebooks with Linux development enabled use an SSH service on port 2222. Pairing guides you through forwarding that port in ChromeOS settings so your development machine can reach the Linux container.

Run on an iPhone

Bonk supports deploying iOS development builds and streaming application output to your terminal. iOS 17 and later require Developer Mode and a personalized Developer Disk Image; Bonk mounts that image before launching. Signing credentials and a provisioning profile are still required.

The iOS stdio stream includes logs and Rust panics, but does not provide the application's exit code. Do not use Bonk's exit status alone to detect an iOS application crash. This device workflow does not imply iOS support through the Android fabric bridge.

Beyond the device

The CLI includes Rust cross-compilation, packaging, signing, and publishing integrations for Apple, Google Play, Microsoft, Steam, Epic Games, and Vivo. Store accounts, credentials, and platform requirements still apply.

See the Bonk repository, Linux handheld guide, and Windows handheld guide for the full configuration.