Appium Android Bridge
/install appium-android-adb
Appium Android Bridge
Generic Appium bridge for any Android app. Reads screens as structured JSON, executes taps/scrolling/typing via accessibility service clicks (bypasses WebView touch filtering).
Quick Start
# Once per session (28s, starts Appium + daemon):
bash ~/.openclaw/workspace/skills/appium-android-adb/start_bridge.sh
# Then every action (~1-2s each):
python3 ~/.openclaw/workspace/skills/appium-android-adb/bridge_daemon.py dump
python3 ~/.openclaw/workspace/skills/appium-android-adb/bridge_daemon.py tap '{"text": "查询"}'
python3 ~/.openclaw/workspace/skills/appium-android-adb/bridge_daemon.py scroll '{"direction": "down"}'
Commands
All from ~/.openclaw/workspace/skills/appium-android-adb/. All return JSON.
dump — read the screen
python3 bridge_daemon.py dump
Returns:
{
"ok": true,
"package": "com.example.app",
"activity": "...",
"title": "...",
"alerts": [{"text": "温馨提示"}],
"buttons": [{"text": "查询", "id": "btn_search", "bounds": "[99,750][981,882]"}],
"trains": [{"text": "...", "bounds": "...", "clickable": true}],
"webview_contexts": ["NATIVE_APP"]
}
buttons[]— all clickable elements with text, id, boundsalerts[]— dialogs/popups needing dismissaltrains[]— elements containing "次列车" (app-agnostic; rename for other apps)title— page title if present
tap — click an element
python3 bridge_daemon.py tap '{"text": "查询车票"}' # by text (substring match)
python3 bridge_daemon.py tap '{"text": "预订", "index": 0}' # first match
python3 bridge_daemon.py tap '{"id": "btn_submit"}' # by resource-id
scroll — swipe the screen
python3 bridge_daemon.py scroll '{"direction": "down"}' # normal
python3 bridge_daemon.py scroll '{"direction": "down", "distance": "short"}' # fine
python3 bridge_daemon.py scroll '{"direction": "up"}' # go back
Uses fast drag (100ms) — works best for WebView content.
type — input text
python3 bridge_daemon.py type '{"text": "上海"}'
wait — poll until element appears
python3 bridge_daemon.py wait '{"text": "提交订单", "timeout": 30}'
When to Use This
Use appium-android-adb when:
- The app uses WebView (ADB taps are ignored)
- You need structured screen reading (not screenshot-based)
- You need reliable element clicking (accessibility service, not raw touch)
- You're automating a hybrid app (native + WebView)
Do NOT use for:
- Simple native-only apps where
adb shell input tapworks fine - One-off screenshots (use
adb shell screencap)
Troubleshooting
Daemon died: Run start_bridge.sh again to restart.
Device not found: Check USB connection: adb devices
App not launching: The daemon attaches to the running app. Cold-start the app manually if needed: adb shell monkey -p \x3Cpackage> 1
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install appium-android-adb - 安装完成后,直接呼叫该 Skill 的名称或使用
/appium-android-adb触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Appium Android Bridge 是什么?
Read and control any Android app via Appium. Provides a persistent bridge daemon (bridge_daemon.py) with dump/tap/scroll/type/wait commands. Use when raw ADB... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 59 次。
如何安装 Appium Android Bridge?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install appium-android-adb」即可一键安装,无需额外配置。
Appium Android Bridge 是免费的吗?
是的,Appium Android Bridge 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Appium Android Bridge 支持哪些平台?
Appium Android Bridge 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Appium Android Bridge?
由 openlittlebear(@openlittlebear)开发并维护,当前版本 v1.0.0。