jev-browser
Skill2 starsChanged 51 days agoMITView on GitHub
Execute browser tasks in the user's Chrome, including navigation, search, forms, filtering and media. Use for website operations, even without a Jev mention. Excludes research-only questions and browser explanations. Also use when the user asks to configure the Jev API. Respect an explicitly requested browser or tool.
- Reads credentials
5 other projects use a version of this.
Adopted by
Most recently taken up by
- ufukyuksel-dev/SUPER_COMPUTER_AItheir own version, first seen Nov 1, 2026
- Ying-Kai-Liao/jev-browsertheir own version, first seen Nov 1, 2026
- legostin/jev-mcptheir own version, first seen Oct 30, 2026
- ChenYCL/jev-browser-skilltheir own version, first seen Sep 22, 2026
- TylerJNewman/skillstheir own version, first seen Jun 21, 2026
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- Ying-Kai-Liao/jev-browser★ 128same name
- legostin/jev-mcp★ 5same name
- ChenYCL/jev-browser-skill★ 2same name
- TylerJNewman/skills★ 1same name
- ufukyuksel-dev/SUPER_COMPUTER_AI★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 3 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Before the first browser task in a conversation, after configuration changes, or when asked to check setup, run:
- Very specific: line 24
Use JEV_CONFIG_DIR/.env when set, otherwise ~/.config/jev-browser/.env.
- Very specific: line 27
Keep the configuration outside the repository, create its directory with mode 700, and write the file with mode 600.
- Distinctive: line 34
Run the entire confirmed task in one call, including the prepared candidates:
- Distinctive: line 45
Every call starts fresh. No old task, session, history or resume state is retained.
- Very specific: line 48
Use --show only when the user asks to open, see or play the page.
- Very specific: line 50
Only for an explicitly selected existing tab, use tabs to find its ID, then replace --url with --target-id ID.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Jev Browser
Check setup
Before the first browser task in a conversation, after configuration changes, or when asked to check setup, run:
python3 <skill-dir>/scripts/jev.py doctorIt makes one small Jev API request with synthetic input and checks Chrome through Browser.getVersion; it never reads or changes pages. Report each component's status. If both are ready, proceed with the user's task. Reuse a successful check within the conversation unless a connection/configuration error occurs. Never run this check after a browser result to verify task completion.
Python 3.12+ and uv are required; the launcher installs runtime dependencies. For a Chrome failure, guide the user to open chrome://inspect/#remote-debugging, enable debugging, and allow the connection prompt. Do not restart Chrome. After the user resolves setup, check again and continue their task.
Configure Jev
For a missing API key or an explicit setup request, use local file tools:
- Use
JEV_CONFIG_DIR/.envwhen set, otherwise~/.config/jev-browser/.env. Inspect only whetherTYPESAFE_API_KEYandTYPESAFE_MODELare configured; never print existing secrets. - Reuse existing configuration unless the user requests a change. For a missing key, ask the user to provide it through a local file or secret input available in their client. If the user already supplied a key for this setup, write it without echoing it; never recover keys from conversation history.
- Set
TYPESAFE_API_KEYto the supplied value and defaultTYPESAFE_MODELtojev-latest. Preserve unrelated settings and any existing model unless a change was requested. The file uses literalKEY=valuelines without quotes; reject embedded newlines in supplied values. - Keep the configuration outside the repository, create its directory with mode
700, and write the file with mode600. Do not put keys in command-line arguments, logs, browser inputs, or replies. - Process environment variables override the file. After configuration, run
doctorto verify API access and Chrome connectivity. Report status, configuration path, and model without exposing secrets. For setup-only requests, stop after reporting the check.
Run a browser task
Before a task that may require typing, Codex must prepare candidate text and pass it through --inputs. Each candidate has a literal value and its intended purpose. Jev chooses whether to fill, which field and which candidate; code inserts that literal unchanged. Candidates are options, not mandatory steps. No text-generation model is used.
Run the entire confirmed task in one call, including the prepared candidates:
python3 <skill-dir>/scripts/jev.py run \
--url 'https://www.bilibili.com' \
--goal 'Search Bilibili for machine learning and open the search results.' \
--inputs '[{"value":"machine learning","purpose":"Bilibili search query"}]' \
--show- Resolve only material target ambiguity before starting. Use a known starting URL; do not invent account IDs.
- Every call starts fresh. No old task, session, history or resume state is retained. Browser pages and login remain.
- Within a call, Jev receives bounded earlier page observations and navigation evidence so it can finish cross-page tasks without repeating established checks. This context is discarded on exit.
- Let Jev run until DONE or failure. Wait on the same shell process if the tool yields; do not inspect intermediate state, redelegate, supervise clicks or correct ordinary mistakes.
- Use
--showonly when the user asks to open, see or play the page; otherwise work in the background. - Omit
--inputsonly for tasks without typing. Missing candidate text returns an input error. Never pass credentials or invent missing personal details. - Only for an explicitly selected existing tab, use
tabsto find its ID, then replace--urlwith--target-id ID. A new call still has fresh task context. - When Jev returns a result, stop browser work and report that result directly. Accept DONE as the end of the task; do not independently check completion, inspect the browser again, or start a second call to verify, correct, or improve the result. Report only what the returned result supports.
- A further browser call requires a new explicit user request to continue, retry, or change the task. No separate show, finish, state or close calls after the result.
- Login, human verification, unavailable input/control, crash or the whole-call limit returns an error. Explain the blocker; user-only steps stay with the user. After their requested continuation, start a fresh call on their selected tab.
Python 3, uv and Chrome remote debugging are required. run --help lists options. Defaults are 200 actions / 300 seconds for the whole call, with no periodic handoff.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

