DSH Hub

bpc-oss/chrome-faithful

chrome-faithful

BundleWorkflow2 GitHub stars· updated 2026-08-21

Faithful control of your real, logged-in Chrome profiles: MCP server + MV3 extension + authenticated localhost bridge. No copied profiles, no debug profile, no remote-debugging port, no Edge.

Install

npx @deepseek-ai/dsh plugin --profile web add @bpc-oss/[email protected]

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

chrome-faithful DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/chrome-faithful.svg)](https://dshhub.dev/plugins/chrome-faithful)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from bpc-oss/chrome-faithful, cleaned of badges and images.

Chrome Faithful

Faithful control of your real, logged-in Chrome profiles.

An MCP server + MV3 Chrome extension + authenticated localhost bridge that lets AI agents drive the Chrome that already holds your logins, extensions, and history. No copied profiles, no debug profile, no --remote-debugging-port, no Edge, no global mouse/keyboard automation.

English · 简体中文


Why this exists

Browser-control tools optimize for different jobs:

ApproachWhat you getWhat you lose
Chrome DevTools MCP (Google)Excellent DevTools, performance, and CDP workflows; Chrome 144+ can autoConnect to a running local browser with user approvalChrome must already be running, and when several profiles are active Chrome chooses the default profile rather than accepting an exact profile name
Playwright / Puppeteer MCP serversDeterministic, isolated browsers that are ideal for CI and repeatable testsExisting logins, extensions, history, and two-factor sessions are not present unless separately provisioned
Extension-based MCPs (BrowserMCP, real-browser-mcp)Control of an existing logged-in browserA strong fit for live sessions; multi-profile setups may require separate server instances and ports, and normally expect Chrome to be running

Chrome Faithful focuses on exact-profile, multi-profile control with a fail-closed local bridge:

  • Exact multi-profile routing. Every profile registers with its exact profileName; duplicate registrations are rejected, so concurrent agents cannot interleave inside one profile.
  • Launches a closed profile. If the target profile — or all of Chrome — is closed, it starts the exact profile with ordinary Chrome and waits for the exact extension registration before reporting success. No --user-data-dir hacks.
  • Security depth. The bridge binds only 127.0.0.1 and requires a generated 256-bit secret. Bootstrap uses one-use tokens; sessions use scoped grants. Configuration is closed-schema and must live outside the source tree. Installers are transactional with SHA-256-verified, DPAPI-encrypted backups (Windows).
  • File upload the honest way. Files are injected as page File/DataTransfer objects — not DOM.setFileInputFiles, not an OS file chooser.
  • Media export without leaking URLs. chrome_page_asset streams page-exposed media using the tab's user agent, referer, and matching profile cookies; signed URLs, cookies, and headers never appear in MCP arguments or results.
  • Durable virtual-list capture. Scroll capture with asset parity, fail-closed manifests, exclusive cross-process locks, and resume that rewinds the tab through serialized wheel events — built for infinite-scroll feeds.
  • Works minimized. Locator waits/actions and screenshots use CDP focus emulation, so virtualized controls keep rendering even when the Chrome window is minimized or obscured.
  • Raw CDP when you need it, with an explicit trust boundary. chrome_cdp event reads redact Network headers, query strings, and post data; the bounded request/response projection actions reject sensitive selected fields. Its send action is deliberately unrestricted raw CDP and must be exposed only to a fully trusted MCP client: it can read authenticated page content,

Related plugins