Termux API Skill
Control Android devices via Termux API commands over SSH.
Prerequisites
- Termux installed on Android device
- Termux:API app installed and permissions granted
- SSH access configured (port 8022 by default)
termux-api package installed: pkg install termux-api
Connection
# Default SSH connection
ssh -p 8022 <device-ip> '<termux-api-command>'
Important Notes
- Termux must be in foreground for camera/microphone commands
- Permissions must be granted in Android Settings → Termux:API → Permissions
- Start API service if commands timeout:
termux-api-start
API Commands Reference
Device Info
| Command | Description |
|---|
termux-battery-status | Battery level, charging status, temperature |
termux-audio-info | Audio device info |
termux-wifi-connectioninfo | Current WiFi connection details |
termux-wifi-scaninfo | Scan nearby WiFi networks |
termux-telephony-deviceinfo | Phone/SIM info |
termux-telephony-cellinfo | Cell tower info |
termux-sensor -l | List available sensors |
termux-sensor -s <sensor> -n 1 | Read sensor once |
Camera & Media
| Command | Description |
|---|
termux-camera-info | List cameras (id 0=back, 1=front) |
termux-camera-photo -c <id> <file.jpg> | Take photo (needs foreground) |
termux-microphone-record -f <file> | Record audio |
termux-media-player play <file> | Play audio file |
termux-tts-speak "text" | Text to speech |
termux-tts-engines | List TTS engines |
Notifications & Feedback
| Command | Description |
|---|
termux-notification -t "title" -c "content" | Show notification |
termux-notification-remove --id <id> | Remove notification |
termux-toast "message" | Show toast popup |
termux-vibrate -d <ms> | Vibrate for duration |
termux-torch on/off | Toggle flashlight |
termux-dialog | Show dialog (various types) |
Communication (needs permissions)
| Command | Description |
|---|
termux-sms-list -l 10 | List recent SMS |
termux-sms-send -n <number> "message" | Send SMS |
termux-contact-list | List contacts |
termux-call-log -l 10 | Recent call history |
termux-telephony-call <number> | Make phone call |
Clipboard
| Command | Description |
|---|
termux-clipboard-get | Get clipboard content |
termux-clipboard-set "text" | Set clipboard |
Location
| Command | Description |
|---|
termux-location | Get GPS location (needs permission) |
termux-location -p gps | Use GPS provider |
termux-location -p network | Use network provider |
System Control
| Command | Description |
|---|
termux-volume | Get/set volume levels |
termux-brightness <0-255> | Set screen brightness |
termux-wallpaper -f <file> | Set wallpaper |
termux-wake-lock | Prevent sleep |
termux-wake-unlock | Allow sleep |
Storage & Sharing
| Command | Description |
|---|
termux-share -a send <file> | Share file via Android intent |
termux-open <file> | Open file with default app |
termux-open-url <url> | Open URL in browser |
termux-download <url> | Download file |
termux-storage-get <dest> | Pick file from storage |
Common Patterns
Take a selfie and retrieve it
# Ensure Termux is in foreground first
adb shell am start -n com.termux/.HomeActivity
# Take photo
ssh -p 8022 <ip> 'termux-camera-photo -c 1 ~/selfie.jpg'
# Retrieve via SCP
scp -P 8022 <ip>:~/selfie.jpg /local/path/
Send notification with action
ssh -p 8022 <ip> 'termux-notification -t "Alert" -c "Task complete" --id myalert --vibrate 200,100,200'
Get device location
ssh -p 8022 <ip> 'termux-location -p network'
# Returns JSON with latitude, longitude, accuracy
Monitor battery
ssh -p 8022 <ip> 'termux-battery-status' | jq '.percentage, .status'
Troubleshooting
Command times out
- Start API service:
termux-api-start
- Check if Termux:API app is installed
- For camera/mic: ensure Termux app is in foreground
Permission denied
- Open Android Settings → Apps → Termux:API → Permissions
- Grant required permissions (camera, location, SMS, etc.)
SSH connection refused
- In Termux:
pkg install openssh && sshd
- SSH runs on port 8022 by default
- Set password with
passwd or add SSH key to ~/.ssh/authorized_keys