Vibeleaderboard
Index / tool

DroidClaw

droidclaw.ai
Visit droidclaw.ai
Category
AI Agents
Rank
No. 2857Tools index

Previous survey · No. 2779 ·

Pricing
Open Source
Type
TOOL
Use case
Workflow Automation
Interfaces
CLI · SDK
Builder
unitedbyai
Latest release
v0.5.3
Date

About

Turn old Android phones into AI agents that can understand plain English goals and automatically navigate apps by tapping, typing, and swiping. Uses accessibility services and ADB to control devices remotely or automate complex multi-app workflows.

What it does

DroidClaw puts a language model in charge of a real Android handset. You type a goal in plain English, and a loop repeats up to 30 times: read the screen's accessibility tree, ask the model for one next move as JSON, perform that move, check whether the goal is met. It runs two ways. A standalone command-line agent drives a USB-connected phone through the Android Debug Bridge (ADB). A hosted mode pairs a companion Android app with a server and web dashboard over WebSockets, where the app acts through Android's accessibility service instead.

Why it's ranked here

The case rests on the failure handling, not the demo. The agent loop hashes each screen to spot when nothing changed, counts repeated actions in a sliding window, flags runs of aimless scrolling and waiting, and escalates to a screenshot when the tree is empty or the agent stalls for two steps. The model is swappable across five providers, including fully local Ollama. The project also publishes a frank limitations document covering banking apps, biometrics, multi-finger gestures and single-device control. That candour is rarer than the feature list.

What's good

Three modes cover different jobs: an interactive goal prompt, JSON workflows that chain goals across apps, and YAML flows that replay fixed taps with no model calls at all. The model sees a compact, scored list of on-screen elements, deduplicated by position, rather than raw XML, which keeps prompts small. Coordinates the model garbles, such as two numbers run together, are repaired before any tap is sent. Typed text is escaped for the device shell. Every hosted run is logged step by step so a session can be replayed.

Tradeoffs

The command-line agent requires Bun and will not run on Node. The model can choose a shell action that runs any ADB shell command on the phone, and the documented quick install pipes a remote script into the shell, so the trust surface is wide. Apps that block screen capture, games and custom-drawn interfaces leave the agent partly or fully blind. Each step waits on a model round trip. The action count disagrees across sources: 15, 22, 26 and 28 in different files, which suggests the docs trail the code.

How to use it well

Best on a spare phone you are willing to hand over, for chores inside ordinary apps like messaging, settings and search. Start with the command-line agent over USB and a free Groq key or local Ollama, then promote anything you repeat identically into a YAML flow so it stops paying for model calls. Use workflows for multi-app chains. Keep it away from a primary phone holding banking or credential apps, and do not expect it to orchestrate several devices at once.

Technical notes+

src/kernel.ts runs the loop: uiautomator dump pulled over ADB, parsed by src/sanitizer.ts (fast-xml-parser) into elements scored and deduplicated in 5px buckets, then screen-hash diffing, a repetition alert at 3 identical recent actions, a drift warning at 4 of the last 5 being navigation, and screenshots when VISION_MODE is always, the tree is empty, or stuckCount reaches 2. src/actions.ts dispatches via Bun.spawnSync with exponential-backoff retries and sanitizeCoordinates. src/llm-providers.ts wires OpenAI, Groq, Bedrock, OpenRouter and Ollama; src/config.ts defaults to groq. server/src/index.ts is Hono on Bun.serve with /ws/device and /ws/dashboard. android/app/build.gradle.kts targets minSdk 24.

Observed

Runtime
Bun required; Node and npm explicitly unsupported
Language
TypeScript agent and server; Kotlin with Jetpack Compose Android app
Interfaces
CLI agent over ADB; Hono server with WebSocket device and dashboard channels; Android companion app
LLM providers
OpenAI, Groq, AWS Bedrock, OpenRouter, Ollama (local)
Install surface
curl-piped install script, or git clone plus bun install; APK for the Android app
Android minimum
minSdk 24 (android/app/build.gradle.kts)
Automation modes
Interactive goal, JSON multi-app workflows, YAML fixed flows with no LLM
Documented limits
Single device only; no multi-finger gestures; FLAG_SECURE apps block capture

Read from README.md, package.json, docs/capabilities-and-limitations.md, docs/plans/how-droidclaw-works.md, src/kernel.ts, src/actions.ts, src/llm-providers.ts, src/sanitizer.ts, src/config.ts, server/src/index.ts, server/package.json, android/app/build.gradle.kts, site/install.sh.

What it can do

  • Convert old Android phones into AI agents

    Old Android device → AI-controlled automation agent

  • Execute plain English commands on Android devices

    Natural language instructions → Automated device actions

  • Automatically navigate mobile apps

    Target app and navigation goal → Completed app navigation sequence

  • Perform touch interactions on Android screens

    Screen coordinates and interaction type → Tap, swipe, or typing actions

  • Control Android devices remotely

    Remote connection and commands → Device control actions via ADB

  • Automate multi-app workflows

    Workflow requirements spanning multiple apps → Coordinated actions across multiple applications

Tags

aiandroidautomationagentmobileadbaccessibilityworkflow

Tech Stack

Node.jsTypeScript

Media

DroidClaw

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.