Introduction¶
In the DSH “Everything is a Plugin” workflow, browser control plugins often face two types of tasks: one is isolated, repeatable CI browsers; the other is a local Chrome profile already logged in, with local session state.
The second type usually complicates login states and permission boundaries if you rely on copied profiles, debug profiles, remote-debugging port, or Edge to accommodate it. bpc-oss/chrome-faithful targets the second scenario: allowing agents to directly drive a real, logged-in Chrome profile.
What is this¶
bpc-oss/chrome-faithful is maintained by bpc-oss. Verified data indicates:
- License is
MIT, stated in both README andpackage.json. package.jsonspecifies version0.4.0.- README badges indicate
Node >= 22.12. - README has both English and Simplified Chinese versions.
It combines an MCP server, an MV3 Chrome extension, and an authenticated localhost bridge. The README describes its MCP tool surface as 38 tools.
Core Features¶
Precise Multi-Profile Routing¶
It uses metadata.profileName for exact multi-profile routing. The caller must select an exact metadata.profileName. Duplicate live registrations for the same profile name are rejected to prevent multiple agents from interleaving operations on the same profile.
Startup and Disconnect Recovery¶
If the target profile or the entire Chrome is closed, it uses ordinary Chrome to launch the exact profile and waits for the exact extension profileName to register before reporting success. Verified data indicates no fallback to generic profiles, port 9222, Edge, or UI automation.
When the target is disconnected, the caller uses:
chrome_profile_catalog
chrome_profile_start
The success condition here is that the exact extension profileName is registered.
Local Bridging and Permission Boundaries¶
The bridge binds only to 127.0.0.1 and requires a generated secret. Verified data describes this secret as 256-bit.
Extension host access is restricted to:
http://127.0.0.1/*
for the local bridge. The Extension uses broad capabilities, including debugger, history, downloads, and clipboard permissions. Data also specifies that configuration is closed-schema and must be located outside the source tree.
File Upload and Media Export¶
File uploads are completed by injecting page File / DataTransfer objects; DOM.setFileInputFiles is not used, nor is reliance on the OS file chooser.
Media export uses:
chrome_page_asset
It streams page-exposed media along with the tab’s user agent, referer, and matching profile cookies.
Scroll Capture and Minimized Windows¶
It has durable virtual-list/scroll capture, including asset parity, fail-closed manifests, exclusive cross-process locks, and resume. Locator waits/actions and screenshots use CDP focus emulation, ensuring that controls can continue to render even if the Chrome window is minimized or obscured.
Raw CDP and Verification¶
Raw CDP access is provided via:
chrome_cdp
Its event reads redact Network headers, query strings, and post data. The send action is deliberately unrestricted raw CDP, exposed only to fully trusted MCP clients. chrome_cdp with action=send lies outside the safe-projection boundary and should not be enabled for untrusted clients or shared MCP hosts.
Verification processing includes challenge detection, click-first solving, and human handoff.
Codex-Compatible JS API¶
It provides a Codex-compatible JS API:
src/agent-browser.mjs
This file implements agent.browsers, allowing JavaScript agents to call the same browser surface.
Installation and Enablement¶
Verified data does not contain the full DSH installation command; the DSH first-class integration section in the README is also truncated. Therefore, no guesswork is provided here.
Verified prerequisites are as follows.
https://github.com/bpc-oss/chrome-faithful
This is the GitHub repository URL, not an installation command.
MIT
0.4.0
Node >= 22.12
These are the License, package.json version, and Node requirement from the README badge, respectively.
Before enabling, refer to the complete DSH integration instructions in the repository README; do not simply concatenate the repository name into an installation command.
Typical Usage¶
The following sequence comes from verified data.
- First, select an exact profile.
metadata.profileName
This is the routing identifier, indicating that the caller must select an exact profile.
- If the target is disconnected, query and start.
chrome_profile_catalog
chrome_profile_start
The prerequisite for successful startup is that the exact extension profileName is registered.
- Before performing browser work, run a live self-test.
tabs
Runtime.evaluate
Both of these must pass first.
- When exporting media resources exposed by the page, use
chrome_page_asset.
chrome_page_asset
It brings along the tab’s user agent, referer, and matching profile cookies.
- When raw CDP is needed, use
chrome_cdp.
chrome_cdp
Note that the send action is unrestricted and should only be given to a fully trusted client.
Applicable Scenarios and Notes¶
Suitable¶
- Teams that need to control a real, logged-in Chrome profile within a DSH agent.
- Multi-profile concurrency, requiring isolation by exact
profileName. - Who do not want to use copied profiles, debug profiles,
remote-debugging port, or Edge.
Not Suitable¶
- When deterministic, disposable CI browsers are needed; the README suggests switching to Playwright or Puppeteer.
Notes¶
- The plugin runs with the permissions of the current DSH process. Source code and license should be reviewed before installation.
- The Extension has broad capabilities:
debugger,history,downloads, and clipboard permissions. - Configuration is closed-schema and must be located outside the source tree.
- Windows installers are described as transactional, with SHA-256-verified, DPAPI-encrypted backups.
- The
sendaction ofchrome_cdpis outside the safe-projection boundary; do not enable it for untrusted clients or shared MCP hosts.
Conclusion¶
The value of bpc-oss/chrome-faithful lies in converging “controlling a logged-in Chrome” into exact profiles, localhost bridges, and explicit trust boundaries. It is not a browser solution for general CI, but a DSH browser control plugin for real local profiles.
DSH’s philosophy is “Everything is a Plugin,” and the community directory is a separate site. Verified data does not include the specific directory page URL; the GitHub address is as follows:
https://github.com/bpc-oss/chrome-faithful