adbt is a modern, keyboard-driven Terminal User Interface (TUI) for interacting with Android devices using the Android Debug Bridge (ADB).
It provides a structured and interactive alternative to raw adb commands while remaining fast, predictable, and safe for daily use.
Built in Go using Charm’s Bubble Tea framework, adbt focuses on clarity, correctness, and real-time device interaction entirely from the terminal.
Screenshots reflect the current codebase and actual UI.
| Dashboard | Device Info |
|---|---|
![]() |
![]() |
- Automatic detection of connected Android devices
- Device selection with connection state and Android version
- Automatic selection when exactly one device is connected
- Wireless ADB pairing using IP address, port, and PIN
- Central hub displaying current device status
- Keyboard shortcuts for all major features
- Device-aware actions disabled when no device is selected
-
Displays device model, serial number, Android version, and state
-
Supported actions:
- Start scrcpy
- Toggle Wi-Fi
- Toggle screen power
- Reboot device
- Reboot to recovery
- Reboot to bootloader
-
Mandatory confirmation prompts for destructive actions
- Real-time streaming of
adb logcat - Pause and resume logging
- Clear log buffer
- Retains the last 1000 log lines for performance
- Lists installed applications on the device
- Distinguishes between system apps and user apps
- Reloads the application list on demand
- Browse the device file system starting at
/sdcard - Navigate directories
- Delete files and directories with confirmation
- Refresh directory contents
- Scrollable viewport for large directories
| Key | Action |
|---|---|
q, Ctrl+C |
Quit the application |
esc |
Go back or cancel |
↑ ↓, j k |
Navigate lists |
enter |
Select or confirm |
| Key | Action |
|---|---|
d |
Devices |
i |
Device Info |
l |
Logcat |
a |
Apps |
f |
Files |
The project follows Bubble Tea’s Elm-style architecture, separating UI, state, and ADB logic.
cmd/adbt/main.goInitializes the Bubble Tea program and starts the UI loop.
All direct interaction with the adb binary is handled here.
client.go— Command execution helpers and output parsingdevices.go— Device discovery and wireless pairingdevice_info.go— Device control actions (reboot, Wi-Fi, screen, scrcpy)logcat.go— Streaming logcat implementationfiles.go— File system operationsapp_manager.go— Installed applications listing
app.go— Holds selected device, device list, and terminal dimensions
Responsible for all TUI rendering and interaction.
app.go— Root Bubble Tea model and screen router
Each screen is an isolated Bubble Tea model.
dashboard.go— Main dashboard and quick actionsdevices.go— Device selection and wireless pairingdevice_info.go— Device details and controlslogcat.go— Live logcat viewerfiles.go— File browserapp_manager.go— App manageractions.go— Action-to-screen resolutionmessages.go— Screen-switching messages
Reusable UI building blocks.
layout.go— Layout and viewport handlingheader.go— Header renderinglist.go— Device list renderingfile_list.go— File list renderingkeyvalue.go— Key-value table renderingconfirm.go— Confirmation modalform.go— Input form modaltoast.go— Toast notificationsstyles.go— Lip Gloss styling definitions
.github/workflows/release.yml— Multi-OS build and GitHub release workflow
- Go 1.21 or newer
- Android SDK Platform Tools (
adbavailable in PATH) - Android device or emulator with USB debugging enabled
- Optional:
scrcpyfor screen mirroring
Prebuilt binaries for Linux, macOS, and Windows are available on the GitHub Releases page.
chmod +x adbt
./adbtgit clone https://github.com/<your-username>/adbt
cd adbt
go build -o adbt ./cmd/adbt
./adbtOptional global install:
sudo mv adbt /usr/local/binContributions are welcome. Fork the repository, create a feature branch, and submit a pull request for review.
MIT License

