A beautiful Terminal User Interface (TUI) for Android development, providing an intuitive interface for ADB (Android Debug Bridge) commands with stunning visual effects and animations powered by TachyonFX.
- 🎨 Beautiful UI: Clean, modern terminal interface with consistent Android green theming
- 🌟 TachyonFX Animations: Dramatic reveal animations and gradient effects
- 📱 ADB Command Center: 13 functional ADB command categories with real-time execution
- 📜 Scrollable Results: Navigate through long command output with visual scroll indicators
- 🎭 Clean Design: Static Android green selections and professional layout borders
- ⌨️ Keyboard Navigation: Intuitive vim-like navigation (j/k) and arrow keys
- 🚀 Fast & Responsive: Built with Rust and Ratatui for optimal performance
- 🔧 Real Command Execution: Actual ADB command execution with formatted output
- Android SDK with ADB in your PATH
cargo install droidtui
git clone https://github.com/sorinirimies/droidtui.git
cd droidtui
cargo install --path .
droidtui
Or with cargo:
cargo run
When you launch DroidTUI, you'll see a stunning startup screen with:
- TachyonFX-powered reveal animation with gradient sweep effects
- Dynamic wave animations and center-out reveal patterns
- Progressive content loading with smooth fade-in transitions
- Press any key to continue to the main menu
The main interface provides access to functional ADB commands with expandable sub-options:
- 📱 List Devices ▶ - Show all connected Android devices with detailed info
- Basic device list, detailed info, serial numbers only
- 📋 List Packages ▶ - List all installed packages with file paths
- All packages, with paths, user packages only, system packages only
- 🔋 Battery Info ▶ - Display detailed battery information and status
- Full battery status, battery level only, charging status
- 💾 Memory Usage ▶ - Show comprehensive memory usage statistics
- System memory, available memory, top memory apps
- 📊 CPU Info ▶ - Display CPU information and specifications
- CPU details, current usage, load average
- 🔗 Network Info ▶ - Show network connectivity and configuration
- Connectivity status, WiFi info, IP configuration
- 📱 Device Properties ▶ - Get all device system properties
- All properties, device model, Android version
- 🎯 Running Processes ▶ - List all currently running processes
- All processes, top processes, user processes only
- 📊 System Services ▶ - List all system services and their status
- All services, running services, app services
- 📷 Screenshot ▶ - Take and save device screenshots
- Take & save locally, save to device, view screenshot paths
- 🔄 Reboot Device ▶ - Reboot the connected device
- Normal reboot, fast reboot (bootloader), recovery mode
- 📜 System Log ▶ - View recent system logs (last 100 lines)
- Recent logs, errors only, warnings & errors, clear logs
- 🔍 ADB Version ▶ - Display ADB version information
- ADB version, ADB help, ADB installation path
Key | Action |
---|---|
↑ / k |
Move up in menu / Scroll up in results |
↓ / j |
Move down in menu / Scroll down in results |
Enter / → |
Enter sub-options (main menu) |
Enter |
Execute selected command (child menu) |
← / Backspace |
Return to main menu (from child menu) |
Page Up |
Fast scroll up in results (10 lines) |
Page Down |
Fast scroll down in results (10 lines) |
Home |
Jump to beginning of results |
End |
Jump to end of results |
q / Esc |
Quit application / Return from results |
Ctrl+C |
Force quit |
The interface adapts based on navigation mode:
Main Menu Mode:
- Left Panel (60%): Main ADB commands with ▶ indicators for expandable items (Android green border)
- Right Panel (40%): Description of selected command with usage hints (dark gray border)
- Footer: Navigation help and keyboard shortcuts
Child Menu Mode:
- Left Panel (40%): Category overview with current selection highlighted (dark gray border)
- Right Panel (60%): Expanded sub-options for the selected category (Android green border)
- Footer: Updated navigation help for child menu mode
- ratatui: Terminal user interface library
- crossterm: Cross-platform terminal manipulation
- tokio: Async runtime
- tachyonfx: Visual effects and animations
- color-eyre: Beautiful error handling
- futures: Async utilities
- Event-driven: Async event system for responsive UI
- State Management: Clean separation of startup, menu, execution, and result states
- Effects System: Startup animations with consistent Android green theming
- Command Execution: Real ADB command execution with comprehensive error handling
- Menu System: Dual-level navigation with expandable command categories
src/
├── main.rs # Application entry point
├── app.rs # Main application logic and state management
├── event.rs # Event handling system
├── ui.rs # User interface rendering
├── menu.rs # Menu system and ADB commands
└── effects.rs # Visual effects and animations
To add a new ADB command to the menu:
- Edit
src/menu.rs
- Add a new
MenuItem
to theitems
vector inMenu::default()
- Include label, description, command, and optional children
Example:
MenuItem {
label: "🔧 Custom Command".to_string(),
description: "Description of what this command does".to_string(),
command: "adb shell your-complete-command-here".to_string(),
children: vec![
MenuChild {
label: "🎯 Specific Option".to_string(),
description: "Specific variation of the command".to_string(),
command: "adb shell specific-command".to_string(),
},
// Add more children as needed
],
},
For simple commands: Leave children
as an empty vector vec![]
For expandable commands: Add MenuChild
items with specific variations
All commands are executed as-is, so ensure they are complete and functional.
Visual effects can be modified in src/effects.rs
:
- Adjust startup reveal animation timing and intensity
- Modify gradient wave effects and background colors
- Change static Android green selection color
- Change startup progress phases and content timing
- Modify layout border colors (green for active, dark gray for inactive)
📚 See QUICK_RELEASE.md for a quick start guide!
DroidTUI includes automated tools for version management and releases.
Install just
command runner:
cargo install just
Bump version and release in one command:
just release 0.2.5
just # Show all available commands
just version # Show current version
just bump 0.2.5 # Bump version to 0.2.5
just release 0.2.5 # Full release workflow
just check-all # Run all checks (fmt, clippy, test)
Use the provided script:
./scripts/bump_version.sh 0.2.5
- CI Workflow: Runs tests on every push and PR
- Release Workflow: Builds and publishes on tag push
- Update README: Automatically updates version badge on release
📚 Documentation:
- Quick Start: QUICK_RELEASE.md - TL;DR one-command release
- Full Guide: RELEASE.md - Detailed release process documentation
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Copyright (c) Sorin Albu-Irimies mihaiirimies@gmail.com
This project is licensed under the MIT license (LICENSE or http://opensource.org/licenses/MIT)
- Ratatui - Amazing TUI library for Rust
- TachyonFX - Visual effects library
- Android team for the awesome platform and tooling
Made with ❤️ and ☕ for Android developers