Push browser tab and download lifecycle events plus manager-owned background tabs. Read this when an agent needs lifecycle notifications or a temporary tab without polling.
日本語の概要は準備中です。原文の説明を表示しています。
Read this when you need Chrome MV3-shaped APIs — bookmarks, tabs, windows, history, downloads, or top sites — in standalone OmOWright.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
createChromeApi(connection, options?) returns MV3-shaped namespaces backed by
CDP and the browser's own profile files — no extension required.
import { createChromeApi } from "omowright";
const chrome = createChromeApi(connection, {
profilePath: "/path/to/user-data-dir", // enables bookmarks/history/topSites/downloads.search
downloadDir: "/path/to/downloads", // optional, defaults to a temp dir
});
PROFILE-BACKED METHODS THROW UnsupportedOperationError WITHOUT profilePath.
A connectPipe browser gets a fresh profile, so bookmarks and history are empty
there — these APIs matter when attaching to a real user browser via connect() or
reading a real profile directory. Profile reads are read-only and WAL-safe against a running
browser.
Target.getTargetschrome.tabs.query({ url?: string | string[], title?, windowId? }) — url
takes MV3 match patterns (*://*.example.com/*), title is a substring match. THESE THREE
ARE THE ONLY HONORED FILTERS.chrome.tabs.get(tabId) — tabId is a string; throws when no tab has it.{ id, url, title, windowId, active, pinned, audible, discarded, groupId, index }.
IDS ARE CDP TARGET-ID STRINGS, NOT MV3 NUMBERS, and the last six fields are
fixed defaults — they are not observable over CDP.Tab lifecycle stays on connection.newTab(url) / page.close(); interaction on
page.goto() / page.locator().
Browser.getWindowForTargetget(windowId, queryOptions?), getCurrent(queryOptions?),
getLastFocused(queryOptions?), getAll(queryOptions?).
queryOptions: { populate?: boolean } — populate: true adds a tabs array.{ id, focused, type, state, alwaysOnTop, incognito, tabs? }.getCurrent/getLastFocused return
the first.Bookmarks JSON, read-onlyget(idOrIdList), getChildren(id), getRecent(numberOfItems),
getSubTree(id), getTree(), search(query) where query is a string or
{ query?, url?, title? }.
Nodes: { id, title, type: "url" | "folder", url?, dateAdded?, children? }.
History SQLite, read-onlysearch({ text, startTime?, endTime?, maxResults? }) — times are Unix ms.
Returns [{ id, url, title, visitCount, lastVisitTime }], newest first.getVisits({ url }) — returns [{ id, url, visitTime, transition }].History SQLite + Browser.setDownloadBehaviorsearch({ url?, filename?, limit? }) — returns
[{ id, url, filename, startTime, bytesReceived, totalBytes, state }]; state is
complete | canceled | interrupted | in_progress. Needs profilePath.download({ url, filename? }) — downloads through the real browser and resolves
{ id, url, filename, state: "complete" } with filename as the absolute saved
path. 30s timeout; rejects when the URL starts no download. It uses an in-page
anchor click rather than Page.navigate, which hangs on download navigations,
and re-asserts the download behavior on every call because tab initialization
resets it.Top Sites SQLiteget() returns [{ url, title }] ordered by rank, max 50.
These throw UnsupportedOperationError because they would mutate the user's own
browser state: bookmarks.create/update/move/remove/removeTree,
history.addUrl/deleteUrl/deleteRange,
downloads.pause/resume/cancel/erase, and all of chrome.tabGroups.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Push browser tab and download lifecycle events plus manager-owned background tabs. Read this when an agent needs lifecycle notifications or a temporary tab without polling.
日本語の概要は準備中です。原文の説明を表示しています。
Interact with challenge widgets in an authorized automation flow using checkbox clicks, slider drags, text OCR, and image-grid input. Verify completion with an application-specific condition.
日本語の概要は準備中です。原文の説明を表示しています。
Use when a user-driven CloakBrowser profile needs MV3 Chrome writes/events through the native messaging bridge.
日本語の概要は準備中です。原文の説明を表示しています。
Read the network instead of the DOM. Snoop JSON API responses, wait for a request instead of sleeping, collect items while scrolling, record a QA flight trace (jsonl, HAR, screenshots), and intercept requests with routes.
日本語の概要は準備中です。原文の説明を表示しています。
The default code-driven browser path for interactive browsing work: drives any browser from code with token-efficient a11y snapshots (57% smaller via compactSnapshot), ref-based clicks, coordinate control (CUA), viewport pinning, CAPTCHA solving (reCAPTCHA, Turnstile, hCaptcha, slider, OCR), Chrome MV3 APIs (tabs/bookmarks/history/downloads/topSites), network snoop (read API JSON instead of DOM), flight-recorder trace (jsonl + HAR + screenshots), OOPIF-aware snapshots, dialog policy, human handoff for login/OTP, device emulation, request routes, stealth via CloakBrowser as the default owned engine with zero exposed CDP ports, and an attached engine that drives the user's own signed-in browser through BrowserSkill (connectBrowserSkill, bskSnapshot, one-click onboarding via bskOnboard). MUST USE for interactive browser work: scraping, blocked/WAF/JS-rendered pages, logins, the user's logged-in sites and open tabs, extension popups, form filling, screenshots, web QA, CAPTCHAs. The ulw-research browsing lane runs on ultimate-browsing, not this skill.
日本語の概要は準備中です。原文の説明を表示しています。
Coordinate-level browser control for UI that snapshots, refs, and locators cannot target - canvas apps, extension popups, OS-drawn dialogs, custom drag surfaces. Read this when a DOM-targeted action fails twice, when the next decision depends on rendered pixels, or when CUA clicks land on the wrong element.
日本語の概要は準備中です。原文の説明を表示しています。