{"adoption": {"forks": 201, "observed_at": "2026-08-28T04:07:50.334157+00:00", "stars": 3238}, "canonical_url": "https://ross.abutalabs.com/products/chrome-cdp-skill", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Give your AI agent access to your live Chrome session — works out of the box, connects to tabs you already have open", "domain": ["developer-tools", "browser-extensions"], "enriched": true, "function": ["browser-extension", "cli", "developer-tools", "agent-framework", "mcp"], "health_score": 93, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["pasky/chrome-cdp-skill"], "name": "pasky/chrome-cdp-skill", "platform": ["windows", "cli"], "pushed_at": "2026-06-28T13:22:13+00:00", "repo": "pasky/chrome-cdp-skill", "stars": 3238, "tags": ["chrome-devtools-protocol", "cdp", "browser-automation", "ai-agent-skill", "live-browser-session", "screenshot", "accessibility-tree", "automation", "ai-agents", "macos", "linux", "nodejs"], "topics": [], "urls": [], "use_cases": ["let an AI agent read pages I'm logged into like Gmail or GitHub", "automate interactions with my currently open Chrome tabs", "take screenshots and accessibility snapshots of live pages for an agent", "have an agent click, type, and navigate in my real browser session", "scrape or inspect page state mid-workflow without a fresh browser instance", "control Chrome from Claude Code, Cursor, or other agent tools"], "what_it_is": "A CLI tool and AI agent skill that connects AI agents to your live Chrome session via the Chrome DevTools Protocol, letting them read, screenshot, and interact with tabs you already have open. It runs a persistent daemon per tab and requires only Node.js 22+ with a single Chrome remote-debugging toggle.", "when_to_avoid": ["you need headless browser automation in CI or on servers", "you prefer isolated browser profiles for security or reproducibility", "you don't want to enable Chrome remote debugging on your daily browser"], "when_to_choose": ["you want browser automation over your existing logged-in Chrome session instead of a fresh isolated browser", "you need an agent to see real page state mid-workflow", "you have many tabs open and need reliable, persistent CDP connections", "you want a zero-install skill that works with any Chrome-based browser"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/chrome-cdp-skill", "repo": "pasky/chrome-cdp-skill", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.334157+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.359286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd5a436e85f6cc917e2b725fda485ea8dbf2465f4b956759d50c5ec0ef747d8", "fetched_at": "2026-08-28T04:07:50.334157+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pasky/chrome-cdp-skill"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.334157+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.359286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd5a436e85f6cc917e2b725fda485ea8dbf2465f4b956759d50c5ec0ef747d8", "fetched_at": "2026-08-28T04:07:50.334157+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pasky/chrome-cdp-skill"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.359286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd5a436e85f6cc917e2b725fda485ea8dbf2465f4b956759d50c5ec0ef747d8", "fetched_at": "2026-08-28T04:07:50.334157+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pasky/chrome-cdp-skill"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.334157+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.334157+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.334157+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.359286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd5a436e85f6cc917e2b725fda485ea8dbf2465f4b956759d50c5ec0ef747d8", "fetched_at": "2026-08-28T04:07:50.334157+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pasky/chrome-cdp-skill"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.334157+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.334157+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.359286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd5a436e85f6cc917e2b725fda485ea8dbf2465f4b956759d50c5ec0ef747d8", "fetched_at": "2026-08-28T04:07:50.334157+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pasky/chrome-cdp-skill"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.334157+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.334157+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.334157+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.359286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd5a436e85f6cc917e2b725fda485ea8dbf2465f4b956759d50c5ec0ef747d8", "fetched_at": "2026-08-28T04:07:50.334157+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pasky/chrome-cdp-skill"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.334157+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.334157+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.359286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd5a436e85f6cc917e2b725fda485ea8dbf2465f4b956759d50c5ec0ef747d8", "fetched_at": "2026-08-28T04:07:50.334157+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pasky/chrome-cdp-skill"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.359286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd5a436e85f6cc917e2b725fda485ea8dbf2465f4b956759d50c5ec0ef747d8", "fetched_at": "2026-08-28T04:07:50.334157+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pasky/chrome-cdp-skill"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.359286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd5a436e85f6cc917e2b725fda485ea8dbf2465f4b956759d50c5ec0ef747d8", "fetched_at": "2026-08-28T04:07:50.334157+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pasky/chrome-cdp-skill"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.359286+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9bd5a436e85f6cc917e2b725fda485ea8dbf2465f4b956759d50c5ec0ef747d8", "fetched_at": "2026-08-28T04:07:50.334157+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pasky/chrome-cdp-skill"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 89, "longevity": 12, "rhythm": 66}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 174, "days_push": 66, "days_rel": 66, "gap_med": 106, "n_releases_24m": 2}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}