Skip to content

jev-mobile

Durable Android sub-agent: a SQLite-backed worker observes the UI and Jev picks among valid actions, with verification and escalation.

MCP serverbetaMIT

Overview

jev-mobile is an autonomous Android sub-agent that uses TypeSafe Jev as its System-One decision provider. It accepts a high-level task, stores it in SQLite, and a durable worker runs an observe, normalise, decide, mutate, verify loop against a USB-connected device. Jev sees only concise semantics and a list of technically valid actions and picks one by id; it never produces coordinates, MCP calls or code, so invalid actions, stale references and invented coordinates are rejected by construction.

Features include requirement-driven subgoals, mutation journaling before execution, leases, checkpoints, crash recovery, independent persistence verification, protection against writing to foreign entities, scoped approval for risky recovery and structured clarification questions. Tasks can be delegated over stdio MCP. The core has been hardware-validated for notes, checklists and text input in Google Keep and a fixture app, and deliberately excludes payments, account changes and other sensitive operations.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich valid action advances the task (for example A1 Create entity, A2 Set title, A3 Verify)?—

How it works

  1. Start a worker attached to a USB Android device
  2. Delegate a task; it is persisted in SQLite
  3. Worker observes and normalises the UI into valid actions
  4. Jev picks an action; the worker journals and executes it
  5. Results are verified independently; uncertainty or risk escalates

Strengths

  • Jev cannot invent coordinates or code
  • Crash recovery and durable task state
  • Independent verification of persisted results
  • Local USB-only runtime with no cloud account

Caveats

  • Validated only on a narrow set of apps
  • Sensitive operations deliberately out of scope
  • Requires a TypeSafe key and a USB-connected device

Getting started

uv run jev-mobile worker --backend portal-adb --serial YOUR_ANDROID_SERIAL, then uv run jev-mobile task start "..."

At a glance

Type
MCP server
Status
beta
Language
Python
Runtime
CLI worker and MCP server
Has code
yes
Has tests
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Mobile control: fast structured Android control loops that route each step through Jev alongside Mobile MCP, with 35 test files.

    yibie/awesome-jev
  • \`jev-mobile\` accepts a high-level task, persists it in SQLite, and lets one durable worker execute \*\*observe → normalize → decide → mutate → verify\*\* against a USB-connected Android device. Jev receives concise semantics and technically valid actions; it never generates coordinates, MCP calls, or arbitrary code.

    logicrw/awesome-jev-projects
  • Fast structured Android control loops with TypeSafe Jev and Mobile MCP.

    hellogumbo/awesome-jev

Frequently asked questions

What does Jev decide?

Which of a short list of technically valid actions to take next.

Can it do payments or account changes?

No. Those are deliberately out of scope without explicit policy and approval work.

What happens if the worker crashes?

Tasks are durable in SQLite with leases and checkpoints, and the worker recovers.

Related projects

  • Rust MCP server for desktop control via accessibility trees, with an optional decision model (Jev or compatible) for small choices.

    MCP serverproductionRust
  • Agent harness that compiles an environment's finite actions into typed questions for Jev and gates each step by confidence.

    CLIbetaPython
  • Rust CLI for desktop computer use via accessibility trees, with optional jev-desktop scripts letting Jev pick the control and action.

    Agent skillbetaRust
  • macOS computer-use package: a background app driver for any agent, plus a loop where Jev picks each UI action for a bounded subtask.

    ProjectbetaPython
  • Local stdio MCP server that executes whole browser and macOS goals with a Jev-driven observe-decide-act loop.

    MCP serverbetaTypeScript
  • MCP server that lets agents observe and control Android phones over ADB, with Jev picking controls and judging goal completion.

    MCP serverbetaTypeScript