Guides / illustrated walkthrough
Ultra-Fast Browser Agents with Jev: 178ms DOM Loops & Dual Model Orchestration
How the Jev Ultrafast GitHub repo replaces VLM screenshot polling with filtered DOM snapshots, parallel sampler action mapping, RLCD-calibrated confidence, and dual System One / System Two orchestration.
Quick takeaway
Vision-language browser agents fail in production because screenshot polling and autoregressive JSON generation are slow and hallucination-prone. Jev Ultrafast captures a filtered DOM snapshot, maps parallel sampler outputs to indexed actions (178ms decision loop on Google Flights), calibrates confidence via RLCD, and delegates text generation to a System Two LLM while Jev handles clicks and scrolls.
Video source
Alex Hitt
Step-by-step walkthrough
- 1
Benchmark the sequential VLM loop against Jev Ultrafast
A Zurich→London Google Flights task measured the old sequential perceive-and-generate loop at 9.45s end-to-end. Migrating to parallel Jev decisions cut total time 25% to 7.09s, with the internal AI decision loop at just 178ms. Protocol calls dropped ~90%, driving token cost to fractions of a cent per action—enabling continuous event-driven monitoring instead of hourly batch jobs.

Google Flights benchmark: 178ms decision loop, 90% fewer protocol calls.Watch at 0:30 - 2
Replace screenshot polling with filtered atomic DOM snapshots
Traditional agents base64-encode screenshots every turn, triggering heavy layout passes. Jev Ultrafast runs a JavaScript utility that captures one atomic DOM snapshot—actionable elements, ARIA labels, state values—truncating offscreen nodes to preserve context window. Snapshots retain live references to browser memory nodes, eliminating fragile XPath/CSS selector generation. Trade-off: WebGL canvases and complex visualizations are invisible to this read path.

Structured DOM array: indexed targets with offscreen truncation for token budget.Watch at 1:55 - 3
Map parallel sampler outputs to valid actions—zero hallucinated targets
Autoregressive JSON invites invented selectors and malformed types. Jev ingests the state array in one parallel pass, emitting values across decision heads constrained to predetermined operations (click, scroll, type_text). Each action couples to a valid index from the snapshot—hallucinating a non-existent target is structurally impossible at the output layer. Sub-20ms inference trades generative freedom for type-safe state transitions.

Parallel sampler: action head + DOM index—no free-form selector strings.Watch at 3:35 - 4
Orchestrate dual models and physical execution guardrails
System One Jev cannot generate open-ended text—if type_text is chosen, the loop pauses and a System Two LLM synthesizes "Zurich" before execution resumes. Production guardrails include click occlusion verification (block clicks covered by modals/sticky headers) and stale-page fingerprinting (retry when React hydration mutates the DOM mid-flight). A local inspector overlays live probability percentages on interactable elements for epistemic transparency.

Dual model: Jev decides action type; System Two LLM fills text fields.Watch at 6:05
Frequently asked questions
Why not just use a bigger vision model for browser agents?
Scaling parameters does not remove autoregressive generation latency. The flight-search benchmark shows sub-second loops require structured sampling over DOM state, not heavier screenshot encoders sending base64 frames each turn.
What blind spots does DOM snapshot filtering introduce?
WebGL scenes, HTML5 canvas games, and rich data visualizations outside standard HTML hierarchies may be invisible. The architecture intentionally trades comprehensive visual context for ingest speed—acceptable for form-heavy enterprise portals, risky for canvas-only UIs.
How does RLCD change confidence thresholds in browser automation?
RLCD aligns reported confidence with empirical success rates. When Jev outputs 90% confidence on a target button, aggregate accuracy should near 90%—enabling deterministic rules: auto-click above threshold, escalate to human or fallback model below.
What happens if a modal covers the target button?
Click occlusion verification inspects geometry before dispatch. If a sticky header or ad modal overlaps the node, execution is blocked proactively rather than firing a click into the wrong layer—pairing speed with physical safety on hostile modern web pages.
Related guides
Jev Classification Quickstart
OpenRouter API walkthrough for Choice, Score, and Noul primitives.
ReadJev Trader: Subsecond Trading Bot
Market-making bot on Monad with an 18ms read loop and 300ms block window.
ReadAwesome Jev Projects
Community browser agents, routers, and ultrafast automation repos.
ReadMore video walkthroughs
- Jev Classification Quickstart: OpenRouter API, Primitives & Real Probabilities
- Jev Architecture Explained: Why 70ms Decision Models Beat LLMs for Workflow Automation
- Open Jev Models Are Here: Semif, Nimble, Decider, DiffusionGemma & Laya Hands-On
- Jev vs LLM: Will Jev Replace LLMs? Krish Naik's Whiteboard Explainer
- Jev Trader Tutorial: Build a Subsecond AI Trading Bot on Monad
- Jev Model Router: Build a Privacy-Gated LLM Router with Jev & OpenJev
- Jev Tutorial for Beginners: State, Questions & the TypeScript SDK
- Run Jev Locally: Kev, SemIf & Von on Your Own GPU (OpenJev Guide)
- Jev RAG Reranker: Policy-Steered Reranking for Retrieval-Augmented Generation
- When to Use Jev: An Engineer's Audit of Claims, Gates, and Failure Modes
- LangChain + Jev Integration Tutorial: Routing, Guardrails & Evals
- Jev MCP Server: Connect Jev Decisions to Claude Code & Cursor
- Jev vs Luna: Independent Benchmarks Put "Better, Faster, Cheaper" to the Test
- Jev Agent Harness: Where the Decision Gate Sits in Your LLM Loop
- Jev Playground Walkthrough: The Hotdog Lesson, Criteria, and a Four-Console Token Test
- Jev Text Classification API: Zero-Shot CLI & REST with classifier.dev
- Jev API Examples: First Request, curl & All Three Question Types
- Jev Log Triage with Expanso Edge
- Jev Lead Enrichment with Treg: ICP and Signup Scoring
- Use Jev Decision Nodes in Heym for Model Routing
- Laya Tutorial: Open-Source AI Routing With Calibrated Probabilities (Laya vs Jev Setup)
- Train Your Own Jev: Fine-Tune a Jev-Style Decision Model for $5–$17 (What You Can and Cannot Train)
- Jev Tips: 8 Best Practices for Better Decisions (State, Questions, Criteria & Thresholds)
- Jev Context Compaction: Prune AI Agent Memory Without Generative Summaries
- Jev as an LLM Judge: Confidence-Gated Cascades at 0.36% of the Cost
- TypeSafe Computer Use: Local Desktop Automation with Jev, Step by Step
- Jev Resume Screening: Build an AI Resume Evaluator with the Jev JavaScript SDK
- Jev + Claude Code Guide: Voice-Controlled Browser Automation with Typed Decisions
- Jev + Codex: Install the TypeSafe Skill and Triage a Real Gmail Inbox
- Jev vs Ollama: Can Local AI Replace Hosted Jev Without Sending Your Data Away?
- Build Your Own Jev: Train a Free Open-Source Zero-Shot Classifier (That Plays Doom)
- CUA-S1-Forms: a 706K-Parameter Jev-Like Model That Fills GUI Forms on Your CPU
- NOC/SOC Alert Triage with Jev: Rules First, One Typed Question, a Policy Gate
- Ollama Decision Models: Run tev1 and Nimble Locally (Tested on an 8 GB Card)
- Jev Guardrails in Production: A Five-Step Playbook for Decision Automation
- A Session Drift Guard for Pi Agent: Let the Jev Model Propose, Let Code Decide
- 50 Tev1 Use Cases: What a Local Decision Model Can Actually Do (Tested on an 8 GB Laptop)
- Jev, Hands-On: Where the Official Claims Meet Independent Remeasurement
- Jev Ticket Classification in a Real App: the After-Insert Hook and the Calculated Field
- OpenJev RLCD: Run the Open-Source Calibrated Decision Model Locally (Full Guide)
- Clef-Flash vs Jev: I Tested Cloudflare's Decision Model Locally in Ollama (Q4_K_M)
- Clef-Flash Tutorial: Install and Run Cloudflare's 9B Multimodal Decision Model Locally on Ubuntu
- CLM-8B: the Contrastive Decision Model That Scores 1,024 Options in 44 ms (13x Faster Than Jev)
- Nox 4B Tutorial: Run the Decision 2.0 Model Locally and Put It Through Four Real Decisions (One Ends in a Fail)
- Julia-1 Tutorial: Install the Open-Source Jev Replacement in Pure Python (and Watch It Beat If-Statements 9 to 2)
- OpenJev 0.8B on CPU: I Built a Ticket-Routing Inbox and Calibrated the Thresholds
- Jev n8n Integration: the JevGate Community Node, Step by Step (Plus a Plain-HTTP Fallback)
- NanoJev Tutorial: Install the 0.6B Open-Source Jev Replica and Watch It Route Decisions at 47 ms
- PPLX Decider Tutorial: Perplexity's Open 27B Decision Model, Its Decisions API, and a 12-Ticket Triage Run
- AutoTrust JEV-27B Tested Locally: Four Arms, 72 Cases, and One 0.969 Score That Was Wrong
- Clef 27B Locally: Watch Cloudflare’s Multimodal Decision Model Read an Image, a Video and an Uzbek Newspaper in One Pass
- Ollaya Guide: Install the "Ollama for Decision Models" Runner, Read Every Vendor-Reported Number, and Run the CPU Test It Leaves Open
- Strands Decider 2B Tutorial: Install the AWS Strands Decision Model on an 8GB Laptop — and Keep Its Failures In
- Liquid AI Open d1 Locally: d1-3B and d1-omni-600M on a MacBook Air M5 — Guardrails, Screen Checks, Voice Routing and Document Triage, Every Number Frame-Checked
- Image Decision Models for RPA: Watch Two Open Models Review an Unsigned W-8BEN With No OCR
- GLiNER2.5-Decide (340M) vs Jev (4B): Which Decision Model Actually Wins? A Frame-by-Frame Selection Guide
- Decision Models on Jetson: Jev vs Strands Decider 2B vs Laya vs d1-3B — Skill Master Scores, Thor Latency and JevBench, Every Number Frame-Checked
- Microsoft Decision-1 Tested: 146 Independent Tests, a 93% Mean, 124/125 When Confident — Every Number Frame-Checked
- Wire Jev into an Azure AI Foundry Agent as the Evaluation Layer — OpenAPI Tool, TypeSafe Connection, Triage Instructions and an Honest First-Run Failure