跳到正文
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(原文)

安装前可以查看交给 AI 代理的指令内容。

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.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

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/omowright52026年10月16日 更新

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/omowright52026年10月16日 更新

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

中文简介正在准备中。当前显示原文说明。

code-yeongyu/omowright52026年10月16日 更新

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/omowright52026年10月16日 更新

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/omowright52026年10月16日 更新

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/omowright52026年10月16日 更新

查看 code-yeongyu 的全部技能

报告此技能的问题