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-apipackage 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
passwdor add SSH key to~/.ssh/authorized_keys
微信扫一扫