Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
4ier avatar

A11y Bridge

  • 11 installs
  • 6 repo stars
  • Updated February 10, 2026
  • 4ier/a11y-bridge

a11y-bridge is a Claude Code skill and Android Accessibility Service that lets an AI agent read and click any Android app's UI over an HTTP bridge on localhost:7333.

About

a11y-bridge lets an AI agent control an Android device through a small Accessibility Service that exposes the live UI tree over HTTP on localhost:7333. It reads a screen in about 50ms and clicks elements by text, resource id or content description instead of computing coordinates. A developer building an Android phone agent uses it to replace the slow screenshot, uiautomator dump and coordinate-tap cycle with fast semantic access over ADB.

  • Reads the live Android UI tree over HTTP in ~50ms
  • Clicks elements by text, id or content description (no coordinates)
  • 16KB Accessibility Service exposing localhost:7333

A11y Bridge by the numbers

  • 11 all-time installs (skills.sh)
  • Ranked #1,469 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

a11y-bridge capabilities & compatibility

Free and open source (MIT); runs locally over ADB with no API keys.

Capabilities
android automation · ui automation · device control · phone agent
Platforms
macOS · Linux
Pricing
Free
From the docs

What a11y-bridge says it does

Control Android devices via Accessibility Service HTTP bridge. 100x faster than screencap + uiautomator dump.
SKILL.md
Control Android devices through a 16KB Accessibility Service that exposes the live UI tree over HTTP (`localhost:7333`).
SKILL.md
npx skills add https://github.com/4ier/a11y-bridge --skill a11y-bridge

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs11
repo stars6
Last updatedFebruary 10, 2026
Repository4ier/a11y-bridge

What it does

Give an AI agent fast semantic read and click control of an Android device via an Accessibility Service HTTP bridge.

Who is it for?

Developers building AI phone agents that need fast semantic read and click control of Android apps.

Skip if: iOS automation or environments where you cannot install an Accessibility Service via ADB.

When should I use this skill?

Automating Android apps or controlling a phone via ADB and the screenshot-plus-coordinate cycle is too slow.

What you get

The agent reads the UI tree in ~50ms and clicks elements by text, id or description with no coordinate math.

  • Live Android UI tree over HTTP
  • Element clicks by text, id or description

By the numbers

  • 16KB Accessibility Service
  • Reads UI in ~50ms vs 3-5s for uiautomator dump
  • HTTP API with 4 endpoints (/ping, /screen, /click, /tap)

Files

SKILL.mdMarkdownGitHub ↗

A11y Bridge — Android Accessibility HTTP Bridge

Control Android devices through a 16KB Accessibility Service that exposes the live UI tree over HTTP (localhost:7333). ~50ms to read any screen, click by text without coordinate math.

Prerequisites

  • Android device connected via USB with USB debugging enabled
  • ADB installed and accessible in PATH
  • Android SDK (build-tools 34, platform android-34) — only needed to build from source

Setup

Install pre-built APK

Download the latest APK from Releases, then:

# Install
adb install openclaw-a11y.apk

# Enable accessibility service
adb shell settings put secure enabled_accessibility_services \
  com.openclaw.a11y/.ClawAccessibilityService
adb shell settings put secure accessibility_enabled 1

# Forward port
adb forward tcp:7333 tcp:7333

# Verify
curl http://localhost:7333/ping

Build from source (optional)

chmod +x build.sh && ./build.sh

Usage

Read screen (~50ms)

# Full UI tree
curl http://localhost:7333/screen

# Compact mode (only interactive/text elements)
curl 'http://localhost:7333/screen?compact'

Returns JSON with all UI elements: text, bounds, clickable, editable, etc.

Click by text

# Click element containing "Settings"
curl -X POST http://localhost:7333/click \
  -H "Content-Type: application/json" \
  -d '{"text": "Settings"}'

# Click by resource ID
curl -X POST http://localhost:7333/click -d '{"id": "com.app:id/send"}'

# Click by content description
curl -X POST http://localhost:7333/click -d '{"desc": "Navigate up"}'

Tap coordinates

curl -X POST http://localhost:7333/tap -d '{"x": 540, "y": 960}'

Health check

curl http://localhost:7333/ping

Workflow

1. Read: curl http://localhost:7333/screen → JSON with all UI elements 2. Find: Locate target element by text/role in the JSON response 3. Act: curl -X POST /click -d '{"text":"Send"}' → click by text, no coordinates 4. Repeat

Multi-device support

When multiple devices are connected, specify the target with -s <serial> for all ADB commands:

adb -s <serial> forward tcp:7333 tcp:7333

API Reference

EndpointMethodDescription
/pingGETHealth check
/screenGETFull UI tree as JSON. Add ?compact for interactive elements only
/clickPOSTClick by text, id, or desc (JSON body)
/tapPOSTTap coordinates x, y (JSON body)

Performance

uiautomator dumpA11y Bridge
Read UI3-5 seconds~50ms
ClickCalculate bounds → input tap x y{"text": "OK"}
Full cycle5-8 seconds100-200ms

Fallback

If the A11y Bridge service is not running (check with /ping), fall back to traditional ADB commands:

adb shell uiautomator dump /sdcard/ui.xml && adb pull /sdcard/ui.xml
adb shell input tap <x> <y>

Related skills

FAQ

How much faster is it than uiautomator dump?

The docs report reading UI in ~50ms versus 3 to 5 seconds for uiautomator dump, roughly 100x faster per full cycle.

How does it click without coordinates?

It uses AccessibilityNodeInfo.performAction(ACTION_CLICK) first and falls back to a gesture-based tap, matching elements by text, resource id or content description.

Automation & Workflowsagentsautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.