Jev-Powered Browser and Desktop Agents: What the Repos Show
jev-desktop, mobile-jev, jev-voice-browser and ego-jev use Jev to pick the next UI action. Here is what each README proves, what it discloses, and where it stops.
Computer-use agents spend most of their time on one question: given this screen, what do I click next? A frontier model can answer it, slowly and expensively, by reading a page or an accessibility tree and writing a paragraph. Jev answers it differently. It receives the screen state and a list of candidate controls and returns a typed choice with a probability. No prose, no parsing.
A cluster of open-source projects applies that idea to different surfaces: the desktop, an Android phone, a voice-driven browser and a browser runtime called ego-lite. They share a pattern, and they share a weakness. Most publish demos and a few self-measured numbers, not comparative benchmarks. For the canonical browser example and its numbers, see our Jev-Ultrafast breakdown. This article covers the rest of the family.
Key Takeaways
- The pattern is consistent. Read state, offer a candidate set, let Jev choose an operation and target, execute in code, read again. Text entry is delegated or supplied by you.
- Jev picks; code and other models write. ego-jev and jev-voice-browser explicitly keep typed text out of Jev's job.
- The stars are not always Jev's. jev-desktop is a skill inside a much larger project, so its 1,266 stars (as of September 2026) belong to the host repo, not the Jev integration.
- A model saying DONE is not proof. mobile-jev's own README says so and adds independent verification to its demo.
- Data leaves the machine. The desktop skill discloses that each turn posts a description of the screen to TypeSafe's API. Read that before pointing it at anything confidential.
Desktop: jev-desktop inside agent-desktop
agent-desktop is a Rust CLI (Apache-2.0) that gives agents computer use through the operating system's accessibility tree. It had roughly 1,270 stars in September 2026. The Jev part is a skill named jev-desktop in its skills/ folder, which is why listings show a big star count for what is a small integration.
The skill's own documentation is unusually candid. It offers two entry points: run.mjs takes a goal and loops until done, while act.mjs handles a single step and hands planning back to you. Each turn asks Jev for an operation (click, type, check, scroll, drill, wait, done or blocked) and a target for that operation in one request. It sets confidence bars by risk: 0.70 for an ordinary step, 0.90 for one rated destructive, and nothing runs below 0.55. It stops after 40 actions, 80 model calls, or three turns that changed nothing.
Two disclosures matter. First, the skill never writes text: you supply values with --text, and when none is left, typing is not offered. Second, it states what leaves the machine: each turn posts element roles, names, up to sixty characters of each value, state and window title to api.typesafe.ai. A --no-values flag withholds field contents at the cost of harder targeting. The project's docs report about three seconds for a complex interface snapshot, which says little about overall per-step latency, and we have not seen an independent measurement.
Mobile: mobile-jev on a real Android phone
mobile-jev (MIT, 93 stars as of September 2026) is a standalone agent for the Mobilerun platform with a live React studio, a CLI and execution traces. Its demo GIF shows Jev opening Uber and entering a route from San Francisco Airport to the Golden Gate Bridge, and the README reports about 21 seconds for 9 actions, stopping at payment selection. It states that a completed booking is not demonstrated.
What stands out is what it declines to claim. It says "Jev's DONE response is not independent proof of success," ships a dark-theme demo that re-reads the screen to verify the switch, retains failed attempts, and notes that an identical prompt does not guarantee an identical trace. It also warns that device and service charges are separate. Aiskill.market entry: /skills/mobile-jev-droidrun.
Voice: jev-voice-browser
jev-voice-browser (MIT, 35 stars as of September 2026) drives a headed Chromium window by voice through Playwright. Speech streams word by word from the Web Speech API. On each partial transcript, after a 200 ms debounce, the server sends one Jev request with roughly nine to eleven typed questions: intent, target element, site, "is the command complete?", "is this addressed to me?" and "is it destructive?". The README reports typed probabilities back in about 250 to 350 ms and a cost around $0.0002 per call. Those are the author's figures.
The division of labor is neat. Jev never generates text; code extracts candidate spans for search queries and URLs, and Jev only picks one, which is copied verbatim. The README is also plain about risk: destructive clicks require a spoken "confirm," but it calls that "a convenience, not a guarantee," and warns against logging into accounts you would not want a misheard "place order" to touch. See /skills/jev-voice-browser-moritzkremb.
Browser runtime: ego-jev
ego-jev (MIT, 0 stars as of September 2026) joins the ego-lite browser runtime with Jev. Jev can choose only a supported operation and a target from the current snapshot. It never receives or emits JavaScript, CSS selectors or coordinates. A text model is called only when Jev selects TYPE_TEXT.
Its "Current limits" section is the model for honest documentation: no benchmark suite, no planning model, no final task verifier, and a DONE that "remains a model decision." With zero stars it is a design reference, not a proven tool. See /skills/ego-jev-phd-peter. The listing for jev-use (76 stars) pointed to a repository that returned a 404 when we checked, so we cannot vouch for it.
What to do next
- Pick a low-stakes goal first. A settings toggle or a Wikipedia lookup tells you more than a checkout flow.
- Verify outcomes in code. Do what mobile-jev does: read the state back instead of trusting the model's
DONE. - Decide what may leave your machine. Screen descriptions go to a hosted API. Use
--no-valuesor avoid sensitive apps. - Compare on your own tasks. No repo here publishes a head-to-head benchmark, so run yours. How to evaluate Jev projects honestly has a checklist.
- Read the wiring options. If you would rather add Jev to an existing agent than adopt a new one, see wiring Jev in with MCP. The Awesome Jev radar tracks the wider field.