jev-android
Kotlin Android SDK where Jev or DeepSeek selects actions from on-screen controls and an accessibility service executes them.
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
| Type | Question | Answers |
|---|---|---|
| Choice | Which operation should be performed next? | click · long-click · replace text · scroll · back · launch app · wait · complete · blocked |
| Choice | Which on-screen control is the target? | — |
How it works
- Accessibility service reads current screen controls
- Build an action table
- Jev (or DeepSeek) selects operation and target
- Accessibility service executes with guards
- 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-projectsA 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.
LibraryproductionSwiftPython tap SDK for Android, iOS and HarmonyOS where multimodal Jev picks a numbered on-screen candidate and the SDK taps it.
LibrarybetaPythonRust MCP server for desktop control via accessibility trees, with an optional decision model (Jev or compatible) for small choices.
MCP serverproductionRustmacOS 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 skillbetaRustmacOS computer-use package: a background app driver for any agent, plus a loop where Jev picks each UI action for a bounded subtask.
ProjectbetaPython