Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add oneworks-ai/app --skill browser-drivergit clone --depth 1 https://github.com/oneworks-ai/appWrote 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/oneworks-ai/app/browser-driver)<a href="https://agentmods.dev/skills/oneworks-ai/app/browser-driver"><img src="https://agentmods.dev/badge/skills/oneworks-ai/app/browser-driver/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/oneworks-ai/app/browser-driver"><img src="https://agentmods.dev/badge/skills/oneworks-ai/app/browser-driver.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.00031 | $0.00811 |
| Opus 5.5 | $0.00012 | $0.00324 |
| Sonnet 5.5 | $0.00006 | $0.00162 |
| Haiku 4.5 | $0.00003 | $0.00081 |
Grade A, and why
browser-driver scanned grade A with 0 findings 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 1mo ago.
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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
OneWorks In-App Browser Control
Use this skill for websites shown in the OneWorks internal browser. It does not control external Chrome or native desktop applications.
Prefer execute_in_app_browser_workflow when one page has two or more deterministic steps. When independent work is ready for multiple pages, submit it once with execute_in_app_browser_workflows; pages run concurrently while each page remains serial. Use low-level tools only to inspect, recover from a changed page, or perform a single action.
- Use
in_app_browser_openwhen the requested page is not already open. It reuses the same URL by default; passopen_mode: "new-tab"only when the task needs a separate page instance. Pages open on the right by default; passplacement: "bottom"only when a wide horizontal panel better suits the task. Callin_app_browser_list_pagesonly when you need to discover existing pages. Usein_app_browser_show_pageto reveal an existing page when the user needs to see it; ordinary background operations should continue addressing the page directly bypage_idwithout changing the visible tab. - Call
in_app_browser_snapshotbefore referring to page elements. Keep itspage_idpaired with every returnedref; do not invent CSS selectors or coordinates. Every page operation requires an explicitpage_id, so never rely on an implicit active tab. - A ref can become stale after navigation or DOM updates. If a tool returns
TARGET_NOT_FOUND, take a new snapshot and continue with the new ref. - Prefer
in_app_browser_waitwith an expected text/ref over a fixed delay. Do not add shell sleeps. After an action, request only the cheapest state needed for the next decision; do not take both a snapshot and screenshot by default. - Workflows run serially against an explicit
page_id. Give every step a stablenode_id. Usemissing: "skip"only when absence is an expected exit condition; otherwise keep the defaultstop. Batch only independent page workflows; steps targeting the same page are deliberately queued. - For one to three single-workflow steps, results are returned inline. Longer workflows and all multi-page batches return
run_idand step IDs; callget_in_app_browser_workflow_stepsonly for the details needed. Tab management, history clearing, and paginated history reads remain explicit low-level calls and are not workflow steps. - Use
in_app_browser_get_navigation_statefor the cheap current index/loading/back-forward summary. Callin_app_browser_get_navigation_entriesonly when entry details are needed.in_app_browser_navigate_historyaccepts exactly one ofdirection,offset, orindex. - Treat returned
page.id/replacement_page_idfromin_app_browser_duplicate_pageorin_app_browser_move_pageas authoritative; those actions may recreate the webview. Do not keep usingprevious_page_id. Closing a page is terminal forclosed_page_id. - Before choosing a simulated device, call
in_app_browser_list_device_presets. Usein_app_browser_set_device_modefor the device toolbar and emulation,in_app_browser_set_page_zoomfor native page zoom, andin_app_browser_set_embedded_devtoolsonly when inspection is materially useful. Read the applied state within_app_browser_get_page_view_state. - Use
in_app_browser_screenshotonly when visual verification is material. The tool returns a local PNG path. Usein_app_browser_selectfor native HTML selects instead of simulating popup clicks and arrow keys.
The plugin intentionally does not expose arbitrary JavaScript, raw CDP, cookies, storage, saved passwords, or OneWorks application chrome.
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.
- 1mo ago First seen · 24 lines · 31 tokens per session scan A 533554300775
browser-driver is a skill published in the GitHub repository oneworks-ai/app (20 stars, last pushed 1mo ago), licensed MIT. It adds 31 tokens to every session and 811 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
ui-regression
This skill should be used when the user asks to "verify UI changes", "audit UI quality", "test every screen and action", "run regression QA", "check a deployed UI", or "validate an extension release". Test known web and browser-extension workflows on localhost, staging, or production with action coverage, recovery…
tavily-usage
This skill should be used when user asks to "search the web", "fetch content from URL", "extract page content", "use Tavily search", "scrape this website", "get information from this link", or "web search for X".
run-qa
This skill should be used when user asks to "run QA", "verify real playback", "test provider connections", or "check website, extension or Android flows" with tracked journeys.
lov-publish-wechat-channels
A browser-based assistant for checking, uploading, saving, scheduling, and publishing local videos to WeChat Channels, WeChat’s short-video platform. It also verifies the resulting draft or publication status.
lov-fill-web-form
Fill web forms by fetching form fields from a URL, deep-searching the user's local knowledge base for relevant info, and generating a markdown document with all answers pre-filled. Use when the user provides a URL to a web form (conference application, speaker submission, event registration, profile form) and wants…
preview-json
Render and preview JSON files in browser with syntax highlighting, collapsible tree view, and search.