本文へ移動
cccskills
無料GitHub で公開

chrome

Read this when you need Chrome MV3-shaped APIs — bookmarks, tabs, windows, history, downloads, or top sites — in standalone OmOWright.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md3.7 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Chrome MV3 APIs (standalone)

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.

tabs — CDP Target.getTargets

  • chrome.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.
  • Returns { 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().

windows — CDP Browser.getWindowForTarget

get(windowId, queryOptions?), getCurrent(queryOptions?), getLastFocused(queryOptions?), getAll(queryOptions?).

  • queryOptions: { populate?: boolean } — populate: true adds a tabs array.
  • Returns { id, focused, type, state, alwaysOnTop, incognito, tabs? }.
  • Headless sessions have exactly one window; getCurrent/getLastFocused return the first.

bookmarks — profile Bookmarks JSON, read-only

get(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 — profile History SQLite, read-only

  • search({ text, startTime?, endTime?, maxResults? }) — times are Unix ms. Returns [{ id, url, title, visitCount, lastVisitTime }], newest first.
  • getVisits({ url }) — returns [{ id, url, visitTime, transition }].

downloads — History SQLite + Browser.setDownloadBehavior

  • search({ 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.

topSites — profile Top Sites SQLite

get() returns [{ url, title }] ordered by rank, max 50.

Write methods require the extension bridge

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.

日本語の概要は準備中です。原文の説明を表示しています。

code-yeongyu/omowright42026年10月10日 更新

captcha

無料

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.

日本語の概要は準備中です。原文の説明を表示しています。

code-yeongyu/omowright42026年10月10日 更新

Use when a user-driven CloakBrowser profile needs MV3 Chrome writes/events through the native messaging bridge.

日本語の概要は準備中です。原文の説明を表示しています。

code-yeongyu/omowright42026年10月10日 更新

network

無料

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.

日本語の概要は準備中です。原文の説明を表示しています。

code-yeongyu/omowright42026年10月10日 更新

omowright

無料

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.

日本語の概要は準備中です。原文の説明を表示しています。

code-yeongyu/omowright42026年10月10日 更新

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.

日本語の概要は準備中です。原文の説明を表示しています。

code-yeongyu/omowright42026年10月10日 更新

code-yeongyu のスキルをすべて見る

このスキルの問題を報告する