mobile-jev-ultrafast
Phone agent where Jev picks one operation and one element from an indexed accessibility table; code does the tap.
Overview
mobile-jev-ultrafast adapts the architecture of browser-use/jev-ultrafast to Android phones, replacing the Chrome DevTools Protocol layer with AutoX.js's MCP server. The phone's accessibility tree is flattened into a numbered element table, and TypeSafe's Jev answers operation plus target in a single request. The model never emits coordinates, selectors or scripts.
The executor resolves the chosen element back to live screen bounds immediately before acting; if the screen has changed, it raises StalePage and the loop re-observes instead of tapping the wrong thing. This makes every action grounded in an actual observation. The list summary says no cloud services are required beyond the decision call, as the device runs AutoX locally. It suits developers who want a safer, simpler phone automation loop than coordinate-predicting agents.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which operation to perform | click_target · type_text_target · scroll_down · scroll_up · wait |
| Choice | Which indexed on-screen element to act on | — |
How it works
- Get the UI tree from AutoX.js over MCP and index the elements.
- Send the table to Jev for operation + target.
- Resolve the target to live bounds and re-validate.
- Tap or type, or raise StalePage and re-observe.
Strengths
- Actions are always grounded in elements that were on screen.
- Stale decisions are rejected rather than mis-tapped.
- Single request per step.
Caveats
- Needs a TypeSafe key and an AutoX.js MCP endpoint.
- Depends on accessibility trees; custom-drawn UIs may expose little.
Getting started
git clone git@github.com:cnhuye/mobile-jev-ultrafast.git && cd mobile-jev-ultrafast && uv sync && cp .env.example .env (set AUTOX_MCP_URL and the TypeSafe key).At a glance
- Type
- Project
- Status
- prototype
- Language
- Python
- Runtime
- CLI with AutoX.js MCP server
- Has code
- yes
Use cases and integrations
How curated lists describe it
Natural language lets JEV operate the phone. No cloud services required.
hellogumbo/awesome-jev
Frequently asked questions
What does Jev decide?
One operation and one element index from the table of what is currently on screen.
Why not ask the model for coordinates?
Coordinates and selectors are guesses that go stale; picking from an indexed table and re-validating avoids that.
What happens if the screen changes?
The executor raises StalePage and the loop observes again.
Related projects
Voice-controlled Mac agent where Jev picks the tool and its arguments in about 300 ms, running AppleScript or driving Chrome.
ProjectprototypePython- CLM★ 3,014
CLM-8B, a contrastively trained System One model that embeds states and actions separately, served behind a TypeSafe-compatible API.
ServiceresearchPython Rust MCP server for desktop control via accessibility trees, with an optional decision model (Jev or compatible) for small choices.
MCP serverproductionRust- SkillRanker★ 134
Rust CLI that ranks which agent skills fit the next step from live session context with Jev, can abstain, and hooks into Claude Code.
CLIbetaRust macOS menu-bar Swift app that turns on-device transcribed speech into Jev typed decisions and macOS actions, confirming hard-to-undo steps.
AppbetaSwiftRust CLI for desktop computer use via accessibility trees, with optional jev-desktop scripts letting Jev pick the control and action.
Agent skillbetaRust