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

agent-events

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.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md2.6 KB

SKILL.md(原文)

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

Agent Events

TREAT THESE AS PUSH NOTIFICATIONS — NEVER POLL Target.getTargets TO DETECT OPENS, CLOSES, POPUPS, OR DOWNLOADS.

One events capability per connection; await ready before trusting baseline discovery or download configuration:

import { createEvents, createAgentTabs } from "omowright";

const events = createEvents(connection, {
  downloadBehavior: "allow",
  downloadPath: "/absolute/path/to/downloads",
});
const tabs = createAgentTabs(connection);
await Promise.all([events.ready, tabs.ready]);

Subscribe before acting

Install the listener or waitForEvent() before the action that produces the event. Waits are bounded; predicates may be async:

const opened = events.waitForEvent("popupOpened", {
  timeout: 30_000,
  predicate: tab => tab.openerTargetId === mainTargetId,
});
await mainPage.evaluate("window.open('https://example.com')");
const popup = await opened;

Six push events: tabOpened, tabClosed, popupOpened, downloadStarted, downloadProgress, downloadFinished. Only page targets produce tab events. A popup produces both tabOpened and popupOpened; about:blank is a valid URL and popup placeholder. Download progress is not coalesced; terminals fire exactly once.

Own temporary tabs through the manager

CREATE TABS ONLY THROUGH createAgentTabs(connection). NEVER SEND Target.createTarget YOURSELF, NEVER CALL Target.activateTarget, NEVER BRING A TAB TO THE FRONT. The manager always requests background creation so automation cannot steal focus, and it owns cleanup.

const tab = await tabs.create("about:blank", {
  viewport: { width: 1440, height: 900 },
});
try {
  await tab.page.goto("https://example.com");
  await tabs.repin(tab);
} finally {
  await tabs.close(tab);
}

CloakBrowser headless defers renderer startup for background targets, so the manager activates immediately before attaching — only for connections launched with a --headless argument. Headed connections attach without activation.

tabs.list() / tabs.get(targetId) expose only manager-created tabs. The manager pins the viewport after attach and after main-frame navigation; child-frame navigation needs no re-pin. tabs.repin forces a fresh pin before a coordinate action.

Cleanup: await tabs.closeAll() or await tabs.dispose() (owns its tabs by default); events.dispose() closes neither the browser nor the agent tabs.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

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日 更新

chrome

無料

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

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

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 のスキルをすべて見る

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