Skip to content

jev-android

Kotlin Android SDK where Jev or DeepSeek selects actions from on-screen controls and an accessibility service executes them.

LibraryprototypeMIT

Overview

jev-android is a Kotlin UI agent SDK for Android apps. It builds a dynamic action table from the accessible controls on the current screen, and either TypeSafe Jev or DeepSeek selects the next action; an Android accessibility service then executes it. Jev picks an operation and its targets through multiple questions in one request, while DeepSeek chooses an enumerated action through a strict function schema, and both share the same execution loop and guards. Either backend can drive a task alone.

Supported actions include click, long-press, replacing text field contents, scrolling, going back, launching allowed apps, waiting, and reporting completion or a blocked task. Element descriptions can include resource IDs and bounded descendant text, and selection state is tracked separately from checked state. The repository includes a sample app and a local test screen that needs no account. The README warns the API is unstable, not published to Maven Central, and that version 0.3.7 introduced binary-incompatible changes requiring core, SDK, sample and host to be rebuilt together. It is MIT licensed.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich operation should be performed next?click · long-click · replace text · scroll · back · launch app · wait · complete · blocked
ChoiceWhich on-screen control is the target?—

How it works

  1. Accessibility service reads current screen controls
  2. Build an action table
  3. Jev (or DeepSeek) selects operation and target
  4. Accessibility service executes with guards
  5. Re-check the screen and repeat until complete or blocked

Strengths

  • Actions only target observed controls
  • Two interchangeable backends
  • Local test screen requires no account

Caveats

  • Unstable API; not on Maven Central
  • Binary changes require rebuilding all components together

At a glance

Type
Library
Status
prototype
Language
Kotlin
Runtime
Android library with accessibility service
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • A Kotlin Android SDK for UI automation powered by TypeSafe Jev, with an accessibility runtime and sample app.

    logicrw/awesome-jev-projects
  • A Kotlin Android SDK for UI automation powered by TypeSafe Jev, with an accessibility runtime and sample app.

    hellogumbo/awesome-jev

Frequently asked questions

What does Jev decide?

Which operation to perform and which on-screen control to target at each step.

Can I use it without Jev?

Yes, DeepSeek can drive tasks independently.

Is it on Maven Central?

No, it uses a locally generated Maven repository.

Related projects

  • Native macOS agent app wiring 23 LLM providers into a task loop, listed with an optional Jev command-risk advisor via a TypeSafeKit client.

    LibraryproductionSwift
  • Python tap SDK for Android, iOS and HarmonyOS where multimodal Jev picks a numbered on-screen candidate and the SDK taps it.

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

    MCP serverproductionRust
  • macOS menu-bar Swift app that turns on-device transcribed speech into Jev typed decisions and macOS actions, confirming hard-to-undo steps.

    AppbetaSwift
  • 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