This extension adds Android device control to hermes-agent via the android toolset.
It communicates with a bridge app running on an Android device over HTTP.
- Install the bridge APK on the Android device
- Grant the bridge app Accessibility Service permission in Settings > Accessibility
- Grant SYSTEM_ALERT_WINDOW permission
- Set ANDROID_BRIDGE_URL in ~/.hermes/.env:
- Same WiFi:
ANDROID_BRIDGE_URL=http://192.168.x.x:8765 - USB (recommended): run
adb forward tcp:8765 tcp:8765then usehttp://localhost:8765
- Same WiFi:
- Install the Python package:
pip install -e ./hermes-android - Add to hermes-agent model_tools.py _modules:
"tools.android_tool" - Add "android" toolset to toolsets.py
ALWAYS call android_read_screen before tapping. Never guess coordinates.
Use android_tap_text("Continue") over android_tap(x=540, y=1200).
After opening an app or tapping a button that triggers loading, always call android_wait with expected text before next action.
Before confirming a purchase, ride, or send action — always report to the user what you're about to do and wait for approval. Example: "I'm about to confirm an Uber ride to [destination] for [price]. Reply 'yes' to confirm."
- com.ubercab — Uber
- com.bolt.client — Bolt
- com.whatsapp — WhatsApp
- com.spotify.music — Spotify
- com.google.android.apps.maps — Google Maps
- com.android.chrome — Chrome
- com.google.android.gm — Gmail
- com.instagram.android — Instagram
- com.twitter.android — X/Twitter