Skip to content

jev-voice-browser

Node app that controls Chromium by voice, asking Jev a dozen typed questions per partial transcript to act before you finish.

ProjectprototypeMIT

Overview

voice-browser controls a real, headed Chromium window through Playwright by voice. Speech is streamed word by word from Chrome's Web Speech API to a small Node server. On every partial transcript, debounced by 200 ms, the server snapshots the page (up to 100 elements with short ids) and sends one Jev request (jev-1.13.0) with nine to eleven typed questions: intent, target element, site, whether the command is complete, whether it is even addressed to the assistant, and whether it is destructive. Answers arrive in about 250 to 350 ms, and code decides whether to act, wait, ask or ignore, often acting before the sentence is finished.

Jev never generates text: search queries, text to type and URLs are extracted by code as candidate spans and Jev only picks one, which is copied verbatim. Thresholds live in a constants file. A control page shows live probability bars, the decision, latency and cost, and the controlled window shows highlights, toasts and numbered candidates. Real calls cost about $0.0002 each per the README. It needs Node 20+ and Chrome or Edge for the microphone.

What the decision model decides

TypeQuestionAnswers
ChoiceWhat is the user's intent (navigate, click, search, type, ...)?(inferred)—
ChoiceWhich page element is the target?—
Yes / noIs the command complete yet?—
Yes / noIs this command destructive?—

How it works

  1. Stream partial transcripts to the server
  2. Snapshot the page and extract candidate spans in code
  3. One Jev request with about ten typed questions
  4. Policy thresholds decide act, wait, ask or ignore; Playwright executes

Strengths

  • Acts on partial speech for low perceived latency
  • Never generates text; picks code-extracted spans
  • Asks before destructive actions
  • README estimates about $0.0002 per call

Caveats

  • Requires Chrome or Edge for Web Speech API
  • Many calls per sentence add up over time
  • Demo-grade; no accuracy evaluation reported

Getting started

git clone, npm install, npx playwright install chromium, cp .env.example .env (add key), ./run.sh, then open http://localhost:8787 in Chrome.

At a glance

Type
Project
Status
prototype
Language
JavaScript
Runtime
Node + Playwright
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Controls a Playwright browser by sending incremental speech transcripts to Jev.

    logicrw/awesome-jev-projects
  • Control a real browser by voice. Jev (TypeSafe System One) decides intent +…

    wh000wh000/awesome-jev-live
  • Maps partial speech transcripts to browser intents and observed targets, with code deciding whether to act, wait, or ask.

    cobanov/awesome-jev
  • Control a real browser by voice. Jev (TypeSafe System One) decides intent + target in ~300 ms per spoken word; Playwright acts — often before you finish the sentence.

    hellogumbo/awesome-jev
  • Voice-controlled Chromium: on each partial transcript, one Jev request judges intent, target element, and whether the command is complete or destructive.

    MrJev/awesome-jev

Frequently asked questions

How can it act before I finish speaking?

It asks Jev on every partial transcript, including whether the command is already complete.

Does Jev write search queries?

No. Code extracts candidate spans and Jev selects one, copied verbatim.

What about risky actions?

A destructive-action question lets the policy ask before acting.

Related projects

  • RAM-efficient Rust coding-agent harness, listed as using Jev decisions for memory pruning, browser navigation and voice routing.

    ServiceproductionRust
  • Local web and voice interface for Codex and Claude sessions in tmux, where Jev interprets each request and Python performs it.

    ProjectprototypePython
  • Electron app for controlling Windows 10/11 by Turkish or English speech, using OpenAI Realtime, Jev decisions, UI Automation and Playwright.

    ProjectprototypeTypeScript
  • Zero-build local playground for Jev with browser-agent, intent routing and context-pruning presets, including a Playwright agent.

    AppbetaJavaScript
  • Chrome extension page guide whose small typed decisions (request type, element to click, match or not) use Jev or local Laya.

    ProjectbetaJavaScript
  • Home Assistant conversation agent that maps Assist commands to built-in intents using a Jev fan-out of typed questions.

    ProjectbetaPython