본문으로 건너뛰기
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(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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 / 1,000자

이 양식은 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의 스킬 모두 보기

이 스킬의 문제 신고