control-chrome-cdp

control-chrome-cdp is a skill for Claude Code, Codex from bpc-oss/chrome-faithful. It costs 95 tokens per session (896 once invoked), scanned A, original, MIT.

A skill for controlling one specific existing Chrome profile through a browser connection, including profiles and tabs that may be running in the background.

In plain words
What is it for?
It is for browser tasks involving existing sessions, tab control, screenshots, raw browser debugging, and saving media exposed by a page.
Why use it?
It helps agents use logged-in browser state while avoiding the wrong Chrome profile or tab.

Skill for Claude CodeCodex

Written for Claude Code and Codex: shipped in a Claude Code plugin, but also agents/openai.yaml present. Also seen: mentions Codex.

Part of the agentos-chrome-cdp plugin — 1 skill, 1 MCP server shipped together

Good fit It is for browser tasks involving existing sessions, tab control, screenshots, raw browser debugging, and saving media exposed by a page.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/bpc-oss/chrome-faithful/control-chrome-cdp
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add bpc-oss/chrome-faithful --skill control-chrome-cdp
Clone the repo
git clone --depth 1 https://github.com/bpc-oss/chrome-faithful

Made for: Claude Code, Codex.

Or install agentos-chrome-cdp, the plugin that ships this one along with the rest of its 1 skill, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for control-chrome-cdp

README.md
[![agentmods](https://agentmods.dev/badge/skills/bpc-oss/chrome-faithful/control-chrome-cdp/github.svg)](https://agentmods.dev/skills/bpc-oss/chrome-faithful/control-chrome-cdp)
Your own site
<a href="https://agentmods.dev/skills/bpc-oss/chrome-faithful/control-chrome-cdp"><img src="https://agentmods.dev/badge/skills/bpc-oss/chrome-faithful/control-chrome-cdp/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for control-chrome-cdp

Your own site · 80×15
<a href="https://agentmods.dev/skills/bpc-oss/chrome-faithful/control-chrome-cdp"><img src="https://agentmods.dev/badge/skills/bpc-oss/chrome-faithful/control-chrome-cdp.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 95 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 896 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00095 $0.00896
Opus 5 $0.00048 $0.00448
Sonnet 5 $0.00019 $0.00179
Haiku 4.5 $0.00010 $0.00090

Measured 9d ago against content hash 88ca4b768411, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

control-chrome-cdp scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/control-chrome-cdp/SKILL.md · 61 lines

What it actually says

Control Chrome CDP

  1. Call chrome_profiles.
  2. Match exactly one target by metadata.profileName; never choose a generic default when multiple profiles are connected.
  3. If the exact target is not connected, call chrome_profile_catalog, resolve one exact existing profile by display name or profile-directory name, then call chrome_profile_start. This is the normal path when the requested profile—or all of Chrome—is closed. Do not ask the user to open Chrome first. Missing or ambiguous names are hard stops. After start returns, call chrome_profiles again and require the expected metadata.profileName.
  4. Before creating a tab, call chrome_session_v2 with action=name, give the task a descriptive name, and record the current tab IDs as the baseline. Tabs created through chrome_tabs action=new belong to this MCP session; baseline tabs do not.
  5. List tabs, select an exact tab id in that profile, and call chrome_selftest before any page-changing tab action.
  6. Reuse one task-created tab where the workflow requires continuous browser state.
  7. Prefer locator operations. Use chrome_cdp only for operations the locator surface cannot express. When a selector matches multiple elements, pass index to chrome_locator (0 for the first match, 1 for the second, -1 for the last). Mutating locator actions automatically wait for visibility and are serialized within the same profile and tab. Still issue user-visible actions in logical order and read back each result before continuing. fill replaces existing input, textarea, or contenteditable content. Always read the value or text back before the next externally visible action. Locator waits/actions and screenshots enable CDP focus emulation, allowing virtualized page controls to render while Chrome remains in the background. For durable evidence, pass an absolute .png savePath to chrome_screenshot; it creates parent directories and returns the saved path and byte count together with the image.
  8. For local file upload, use the JavaScript adapter's injectFilesViaPageFile; it creates page File objects through DataTransfer. Do not use a chooser or DOM.setFileInputFiles.
  9. To save media already exposed by the current page, call chrome_page_asset_v2 with the same profileName and tabId, a precise sourceSelector, sourceIndex, sourceProperty (currentSrc, src, or href), an absolute savePath, and the expected video/ or image/ MIME prefix. This selector-only entry point keeps signed URLs out of tool arguments, results, and conversation logs. chrome_page_asset remains for backward compatibility. Verify the returned byte count and SHA-256.
  10. Surface bridge, profile, tab, and CDP errors directly. Do not ask the user to inspect the extension console for errors already available to the agent.
  11. A successful bridge connection or Chrome process start is not readiness. Readiness requires exact profile re-registration plus the self-test's tab query and Runtime.evaluate result.
  12. Finish every browser task with chrome_session_v2 action=finalize for each profile used. It closes only tabs created by this MCP session and preserves baseline/user tabs. If a task-created tab must intentionally remain open, mark it handoff or deliverable first; cleanup is caller-selected, not a plugin-wide policy. Report baseline, created, closed, and remaining tab IDs.
Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 61 lines · 95 tokens per session scan A 88ca4b768411

Subscribe to this mod's changes

control-chrome-cdp is a skill published in the GitHub repository bpc-oss/chrome-faithful (5 stars, last pushed 19d ago), licensed MIT. It adds 95 tokens to every session and 896 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

surf

Control Chrome browser via CLI for testing, automation, and debugging. Use when the user needs browser automation, screenshots, form filling, page inspection, network/CPU emulation, DevTools streaming, or AI queries via ChatGPT/Gemini/Perplexity/Grok/AI Studio.

nicobailon/surf-cli · 60 tokens

agent-first-screenshots

Agent-first screenshots — an agent drives the real app via CDP and produces clean, defect-free product screenshots (newsletters, landing pages, social, decks, PR). Dual-channel verification (DOM + pixels + vision) in a capture loop. Use for any "take/redo screenshots of the app" task.

Devin-AXIS/iPolloWork · 69 tokens

daytona-chrome-cdp

Launch and control standalone Chrome in a Daytona sandbox via CDP. Use for web sign-in, OAuth, Den Web setup, browser-only flows, or when the app should not be driven through Electron CDP.

Devin-AXIS/iPolloWork · 49 tokens

bilibili-keywords-search

A search tool for finding newly published videos on Bilibili, a Chinese video-sharing platform, by keyword. It can sort results, limit them by publication date, and show additional result pages.

redfox-data/redfox-community-dsh · 95 tokens

wechat-video-downloader

A video-link parser for WeChat Channels, WeChat's short-video platform. Give it a shared video link to receive the title, cover image, and a temporary direct link to the original video without a watermark.

redfox-data/redfox-community-dsh · 77 tokens

codex-control-chrome-mcp

Use Codex Control Chrome MCP to control the user's normal Chrome profile through the Codex Chrome extension. Use when a task needs existing Chrome tabs, cookies, logged-in sessions, installed extensions, CDP commands, page inspection, navigation, screenshots, network/console events, or browser automation from an MCP…

iola1999/codex-control-chrome-mcp · 79 tokens