Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add hamzahamidi/claude-in-chrome-cli/plugin install claude-in-chromeWrote 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.
[](https://agentmods.dev/skills/hamzahamidi/claude-in-chrome-cli/using-claude-in-chrome)<a href="https://agentmods.dev/skills/hamzahamidi/claude-in-chrome-cli/using-claude-in-chrome"><img src="https://agentmods.dev/badge/skills/hamzahamidi/claude-in-chrome-cli/using-claude-in-chrome/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.
<a href="https://agentmods.dev/skills/hamzahamidi/claude-in-chrome-cli/using-claude-in-chrome"><img src="https://agentmods.dev/badge/skills/hamzahamidi/claude-in-chrome-cli/using-claude-in-chrome.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00140 | $0.02795 |
| Opus 5 | $0.00070 | $0.01398 |
| Sonnet 5 | $0.00028 | $0.00559 |
| Haiku 4.5 | $0.00014 | $0.00280 |
Grade A, and why
using-claude-in-chrome 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 10d 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.
How it starts
The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Using Claude in Chrome
Prefer yoke for driving a page
yoke replaces this plugin for anything that drives a browser, and it is the
better tool for the job: every tab in every window is addressable, there is no
tab group boundary to work around, elements are acted on by reference rather than
by coordinate, and a click reports what was actually under the point instead of a
hardcoded success.
npm install -g yoke-mcp
yoke install
Then load its extension and register the yoke MCP server. Its own skill,
driving-chrome, carries the operational detail. https://github.com/hamzahamidi/yoke
What is below still describes this plugin accurately, and still applies if you
are using the Claude in Chrome bridge or the cic CLI. Two things here have no
equivalent in yoke and remain the right tool: list_open_tabs, which reads
tabs from Chrome's session files on disk with no extension and no running
browser at all, and the chrome-devtools guidance further down for tracing,
heap snapshots and Lighthouse, which are CDP features yoke does not expose.
First: is the question "what is open?"
Then do not drive a browser at all. Call list_open_tabs, from the chrome-tabs server this plugin ships. It reads Chrome and Chromium session data from disk, so it sees every tab it can recover across readable profiles, with no debugging port, no extension and no tab group. Encrypted, unsupported or unreadable profiles are reported rather than silently counted as empty. Measured on one machine: the bridge could see 4 tabs, list_open_tabs saw 29, of which 25 were outside the group.
Pass include_urls: false for counts and hosts only, or profile to narrow to one Chrome profile. URLs are redacted to a safe origin and path by default; full_urls: true exposes the raw URL, which can contain credentials, query strings or session tokens, so use it only when the raw value is necessary.
It returns URLs and titles, not page content, and it cannot drive a page. It also does not track which tab or window currently has focus, only which page each tab is showing, and Chromium history-pruning events can leave that page stale: do not use it to answer "which tab is the user looking at right now". For either page content or drive, read on.
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.
- 10d ago First seen · 104 lines · 140 tokens per session scan A 269d6f381352
using-claude-in-chrome is a skill published in the GitHub repository hamzahamidi/claude-in-chrome-cli (3 stars, last pushed 17d ago), licensed MIT. It adds 140 tokens to every session and 2,795 once invoked, about $0.0007 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.
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.
core
Core chrome-use usage guide. Read this before running any chrome-use commands. Covers the snapshot-and-ref workflow, navigating pages, interacting with elements (click, fill, type, select), extracting text and data, taking screenshots, managing tabs, handling forms and auth, waiting for content, running multiple…
wbrowser
Use when a task needs a browser that is already signed in — reading a dashboard, checking a web app, filling a form, taking a screenshot of a real page, or debugging a site's console. Drives a real Chrome window the user signed into by hand, so no re-login and no API keys. Do not guess selectors; run wb read first and…
slack
Interact with Slack workspaces using browser automation. Use when the user needs to check unread channels, navigate Slack, send messages, extract data, find information, search conversations, or automate any Slack task. Triggers include "check my Slack", "what channels have unreads", "send a message to", "search Slack…
electron
Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using chrome-use via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include…
sessions
Run multiple isolated browser sessions in parallel (each --session = own cookies/tabs/refs), recover a stranded tab by CDP targetId across sessions, --reuse-tab, and reset stuck daemons (daemon status/restart). Use for multi-user flows, parallel scraping, or when a session's tab/handle got stuck.