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