Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/notque/vexjoy-agentnpx agentmods add skills/notque/vexjoy-agent/browser-jev-automationWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/notque/vexjoy-agent/browser-jev-automation)<a href="https://agentmods.dev/skills/notque/vexjoy-agent/browser-jev-automation"><img src="https://agentmods.dev/badge/skills/notque/vexjoy-agent/browser-jev-automation/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/notque/vexjoy-agent/browser-jev-automation"><img src="https://agentmods.dev/badge/skills/notque/vexjoy-agent/browser-jev-automation.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00037 | $0.04133 |
| Opus 5.5 | $0.00015 | $0.01653 |
| Sonnet 5.5 | $0.00007 | $0.00827 |
| Haiku 4.5 | $0.00004 | $0.00413 |
Grade A, and why
browser-jev-automation scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
4. LLM via Anthropic Messages API (`urllib`, no SDK). Strict `{"text": "..."}` reply. How it starts
The opening of the file, as written. The whole thing — 226 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Browser Jev Automation
Zero-dependency browser harness. Programs read the DOM and execute actions, Jev makes every judgment call, an LLM writes text only when the goal does not already contain the value. Built in-house; no pip or npm packages.
Quick start
python3 scripts/jev-browser-agent.py \
--url http://127.0.0.1:8000/ \
--goal "Sign in with username alice, choose country Canada, and submit." \
--check-text-contains "Welcome alice" --json-compact
Requires TYPESAFE_API_KEY, Node 22+, and a local Chromium (Playwright cache or CHROME_PATH). Output is one JSON object: status (done|blocked|budget|error), reason, steps, requests, final_url, verify, log (full probability distributions per step), usage.
Measured on a local login form: 5 steps, 7 Jev calls, 1.4 s wall, zero LLM tokens, goal verified.
Architecture: three tiers applied to browser control
| Tier | Role | Cost |
|---|---|---|
| Programs (tier 1) | Snapshot DOM, extract goal candidates, execute actions, deterministic checks, secret scrubbing | CPU only |
| Jev (tier 2) | Pick operation + target, pick field value from goal candidates, verify goal | ~$0.042/M tokens, <300 ms |
| LLM (tier 3) | Compose text for TYPE_TEXT only when Jev says no goal candidate fits | Per-token, rare |
One Jev call per decision cycle. Speculative fan-out: operation Choice + per-operation target Choices evaluated in one forward pass. Only the target matching the selected operation executes.
Components
| File | Role |
|---|---|
scripts/lib/jev_browser/snapshot.js |
In-page snapshot: viewport-visible controls, labels, values, operations, code-owned node ids, freshness guards |
scripts/lib/jev_browser/cdp_driver.mjs |
Node ESM, node: builtins only. Launches Chromium, speaks CDP over the built-in WebSocket, evaluates in an isolated world, serves JSON-lines commands: open, observe, fresh, act, navigate, screenshot, close |
scripts/jev-browser-decide.py |
One Jev call: operation + target with speculative fan-out, validated against observed ids |
scripts/jev-browser-verify.py |
Independent Jev goal check (goal_met Noul, evidence Score, has_error, page_loaded, evidence_element Choice) plus deterministic url_contains / text_contains checks that veto |
scripts/jev-browser-agent.py |
Loop: preflight, observe, scrub, decide, text (secret, Jev pick, LLM), freshness, act, log, verify |
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed · +7 lines 1c1f773f331c
- yesterday Changed · +4 lines fefeb850a77f
- 23d ago Changed · +147 lines · -3 tokens per session 46eccc9c3c8e
- 26d ago Changed · -124 lines · +3 tokens per session 2f14cc9b6227
- 27d ago First seen · 192 lines · 37 tokens per session scan A b71887d51a91
browser-jev-automation is a skill published in the GitHub repository notque/vexjoy-agent (442 stars, last pushed today), licensed MIT. It adds 37 tokens to every session and 4,133 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-20.
Other skills, from other repositories
asc-app-create-ui
Create a new App Store Connect app record via browser automation. Use when there is no public API for app creation and you need an agent to drive the New App form.
playwright-cli
Automates browser interactions for testing and validating your own web applications using playwright-cli. Use when you need terminal-first browser control for navigation, form filling, screenshots, tracing, bound browser sessions, debugging, or generating Playwright test code. Only use against applications you own or…
webshop-result-page-navigator
Navigates through paginated search results by moving to the next or previous page. Use this skill when the current page of product listings does not contain a suitable match and you need to review more options. It identifies and clicks the appropriate pagination controls (e.g., 'next >' or '< prev') to load additional…
webshop-search-executor
Executes a search on an e-commerce platform using parsed keywords. Use when you have extracted search terms from a user query and need to perform the actual search[] action on the WebShop interface. Takes structured search terms and performs a search action, returning a list of product results for evaluation.
webapp-selenium-testing
Author and maintain versioned Selenium WebDriver tests with Java and JUnit 5. Use for creating, debugging, or running Selenium specs, implementing Page Objects, handling explicit waits, capturing screenshots, or setting up Maven test projects. Supports Chrome, Firefox, and Edge. Keywords: Selenium WebDriver, Java…
playwright-cli
Drive a live browser from the CLI with playwright-cli to navigate, interact, snapshot, and capture evidence. Use for ad-hoc browser commands, page inspection, screenshots, traces, network mocking, session management, or interactive debugging—not authoring @playwright/test specs. Keywords: playwright-cli, browser…