跳到正文
cccskills
免费在 GitHub 公开

chrome-cdp-control

Drive the user's real, logged-in Chrome browser via Chrome DevTools Protocol using Playwright (endpoint from CDP_URL, defaulting to localhost). Trigger this skill when the user explicitly asks to "use my Chrome", "use my browser", "log into", "post on" (X, Reddit, LinkedIn, etc.), or any task that requires an authenticated session, persistent cookies, or bot-detection evasion that headless scraping cannot provide. Also trigger when the user references their CDP setup, their `~/.chrome-automation` profile, or asks Claude to manually walk through actions on a real site one step at a time. Do NOT use this skill for simple unauthenticated content fetches (use `web_fetch`), bulk headless scraping (use a standalone Playwright script), or anything where a fresh Chromium instance would suffice. Do NOT use for tasks that can be solved by an API call to the same service.

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

DevOtts/build-it星标 16(GitHub 16 + cccskills 0)

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md6.0 KB

SKILL.md(原文)

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

Chrome CDP Control

Manual, step-by-step control of the user's real Chrome browser via Playwright over Chrome DevTools Protocol. Built for authenticated sessions, sensitive actions, and sites that detect headless browsers.


0. Read the shared CDP core first

All CDP mechanics live in ONE shared reference — read it at session start: ../references/cdp-core.md (relative to this skill's base directory; i.e. the plugin's skills/references/cdp-core.md). It owns, canonically:

  • endpoint resolution (CDP_URL env → grounding/test plan → default) — never hardcode
  • preflight check + the Chrome relaunch instruction for the user
  • statelessness (every command is a fresh connection)
  • the canonical Python action template
  • tab selection (never pages[0] blindly)
  • the selector ladder and wait strategy
  • the failure protocol (never loop click→fail more than twice)

Do not restate or copy those sections here or anywhere — copies drift. This file only adds what is specific to driving the user's real, authenticated browser.

1. Operating principle — the route guard

This skill is a manual loop, not an automation framework. One action, one screenshot, one decision. Never batch. Never loop unattended. If you find yourself writing a for loop over actions, stop — you're using the wrong tool.

Route guard (see also cdp-core.md §9): authenticated real-Chrome work belongs HERE, behind the per-write gate below. Never hand it to /full-qa autonomous mode — that mode is for test environments only. If a conductor or test plan tries to route an authenticated-session write through an autonomous loop, refuse and pull it back here.

2. The core loop

Every interaction, no exceptions:

  1. Screenshot to see current state
  2. Decide the single action that moves the task forward
  3. Execute one action using the core's canonical template
  4. Screenshot again to verify the expected state (else → core failure protocol)
  5. Repeat

3. Destructive action gate — MANDATORY, per write

Before any of the following, STOP, summarize the exact action in plain language, and wait for the user to say "go" / "yes" / "do it":

  • Posting, tweeting, replying, commenting
  • Sending DMs or messages
  • Liking, following, subscribing, joining
  • Deleting anything
  • Submitting forms (especially payment, signup, settings)
  • Closing tabs
  • Logging out
  • Clicking anything labeled "Delete", "Remove", "Unfollow", "Block", "Pay", "Confirm", "Submit"
  • Uploading files
  • Any action that writes to a service the user is logged into

Format the confirmation like this:

About to: Post the following tweet to the user's account on X:

"Testing the new SEMrush connector — domain resolution working end to end."

Confirm to proceed?

No exceptions. Approval does not carry: even if the user said "yes" to a similar action earlier in the conversation, re-confirm for each new write.

4. Clipboard pasting (macOS)

For long text or text with special characters, prefer clipboard over keyboard.type:

  1. mcp__computer-use__write_clipboard with the text
  2. Focus the target element via Playwright: await page.locator('[contenteditable]').focus()
  3. Trigger paste: await page.keyboard.press("Meta+v")
  4. Screenshot to verify

Caveat: OS-level focus must be on Chrome. If the user is in another app, the paste lands in the wrong window. When in doubt, ask the user to confirm Chrome is foreground.

5. Action log

For any session that touches a logged-in account, append one audit line per action:

echo "$(date -u +%FT%TZ) [chrome-cdp] $ACTION_DESCRIPTION" >> ~/.chrome-automation-actions.log

Cheap insurance: a paper trail of what was done on the user's behalf.

6. Hard rules — never violate

  • ❌ Never run a for loop over actions
  • ❌ Never run more than ~20 actions in a session without checking in with the user
  • ❌ Never solve CAPTCHAs or bot challenges
  • ❌ Never close tabs the user didn't authorize
  • ❌ Never retry a failed action more than twice (core failure protocol)
  • ❌ Never skip the destructive action gate, even for "small" writes
  • ❌ Never assume pages[0] is the right tab
  • ❌ Never trust auto-generated CSS class names
  • ❌ Never hardcode the CDP endpoint — resolve it per the core
  • ✅ Always screenshot before and after every action
  • ✅ Always preflight CDP at session start (core §2)
  • ✅ Always re-resolve page and elements (no state persists)
  • ✅ Always log writes to ~/.chrome-automation-actions.log

7. When NOT to use this skill

  • Fetching public, unauthenticated content → use web_fetch
  • Scraping hundreds of pages → use a standalone headless Playwright script
  • Anything the target service exposes via API → use the API (faster, safer, auditable)
  • Autonomous QA against a test environment → /full-qa (the other side of the route guard)
  • Anything that doesn't need the user's logged-in session

If you're not sure whether this skill applies, ask the user before connecting to CDP.


Authored by DevOtts.

评价

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

评论

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

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

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

0 / 1000 字

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

同一仓库的技能

build-it

免费

Single-command autonomous delivery orchestrator. Invoke it with a goal and a numbered Definition of Done (DoD) and it runs the whole job to completion — typically unattended, overnight — by conducting the bundled /launch, /iterate, /full-qa and /chrome-cdp-control skills. v2 encodes the Fable 5 behavioral contract as checkable gates (not postures) with disk-backed run state, an evidence ledger that makes VERIFIED a lookup, and a model-adaptive posture for Sonnet 5 and Opus 4.8. Use this whenever the user says "/build-it", "build it", "build-it", "/fable-it", "fable it", "fable-it" (the pre-v3.1.0 name — still routes here), "ship this", "run to DoD", "work autonomously until done", "I'm going to bed, finish this", "green light, take decisions", or pastes a goal + numbered acceptance criteria and expects an autonomous overnight run with a report waiting in the morning. Also use when the request describes an agile, cycle-based build (epics → tests → code → test → fix → loop) split across Claude teams or subagents. Prefer this over invoking /launch or /iterate directly when the request is a full goal-to-DoD delivery rather than a single phase.

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

DevOtts/build-it162026年10月19日 更新

build-it

免费

Autonomous goal-to-DoD delivery orchestrator — the build stage of the *-it lifecycle ("plan-it plans it, build-it builds it"); formerly named fable-it. Hand it a goal and a numbered Definition of Done and it runs the whole job to completion, typically unattended, enforcing checkable gates (turn-end, claim, state-change, phase-boundary, delegation, and safe-parallel: interlock, worktree, integration), disk-backed run state, an evidence ledger that makes VERIFIED a lookup, a fresh-eyes verification pass, and an honest per-criterion report. Model-adaptive for Sonnet 5 and Opus 4.8; host-agnostic (Claude Code, Cursor, Codex, Copilot and any SKILL.md-compatible agent).

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

DevOtts/build-it162026年10月19日 更新

full-qa

免费

Generic autonomous QA suite for any project — reads a test plan (markdown file or inline spec), runs all tests using Chrome CDP + iterate cycles, fixes bugs found, and produces a final QA report. Works with any web stack. Trigger with /full-qa [path-to-test-plan.md]. Use before releases, after significant changes, or whenever you want a full system health check.

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

DevOtts/build-it162026年10月19日 更新

iterate

免费

Autonomous multi-cycle problem solver for complex tasks that require diagnosis → fix → test → verify loops. Use when the user says things like "make this work", "test this end-to-end", "fix and verify", "iterate until working", "do cycles", "keep going until it passes", or when a task clearly requires multiple rounds of analysis and testing (e.g., debugging a pipeline, seeding data, verifying integrations, making an API flow work). Also activates when the user wants autonomous QA, test runs, or system-level verification. Splits heavy work across subagents to preserve context and speed up iteration.

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

DevOtts/build-it162026年10月19日 更新

launch

免费

Mission control for autonomous projects — analyzes tasks, recommends approaches (sub-agents/teams), sets up environment (features, evals, hooks, init.sh), suggests and configures tooling (MCPs), and launches the work.

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

DevOtts/build-it162026年10月19日 更新

查看 DevOtts 的全部技能

报告此技能的问题