Chrome Actuator
Chrome Actuator
Unofficial companion: drive the Chrome window you already have open from an agent (tested with Grok Build). New work lands in a pink Actuator tab group in the current session, not a new Chrome window.
tabs_create → snapshot → press @e12 / fill @e5 "text" → settlev1 is an actuator, not a side-panel chatbot. The agent stays in the terminal.
The extension sees the page, assigns @eN refs, and clicks/types. Your cookies
and logins stay in Chrome.
Not affiliated with, endorsed by, or sponsored by xAI. "Grok" and "Grok Build" are xAI marks, used here only to describe compatibility. See NOTICE.
Status
Phases 0–3 are in. pnpm gauntlet covers unit tests, the content-script
actuator, and a live Chromium tab driven through native messaging.
Phase | What | State |
0 | Workspace, stable extension id, side panel | done |
1 | Native messaging heartbeat | done |
2 | snapshot / press / fill on a real tab | done |
3 | Agent plugin + | done |
Load the extension
cd /path/to/chrome-actuator
pnpm install
pnpm --filter @chrome-actuator/extension buildOpen
chrome://extensionsEnable Developer mode
Load unpacked →
packages/extension/distPin the extension and click it (or
Cmd+Shift+G)
Then register the native host (once) and fully quit Chrome:
node packages/host/dist/install.js--trust on the plugin install lets the agent operate this Chrome profile.
Only do that if you trust the agent.
grok plugin install ./packages/plugin --trustSide panel should say connected once the MCP host is running.
pnpm gauntlet # unit + L3 + live native-messaging L4Stable unpacked id (from the committed manifest key): lgkcgenkjaalkfnpmglgpfclkaokblfj
Decisions we will not reopen
Brain in the agent, body in Chrome. No in-extension LLM loop in v1.
Native messaging, not WebSocket, not Playwright, not agent-device-the-binary.
agent-device contract only (
snapshot/press/fill).No
chrome.debuggerin v1 (no yellow infobar).Independent implementation. Do not copy another vendor's brand, marks, or reverse-engineered internals into this tree.
Layout
packages/shared protocol, snapshot grammar, target parser
packages/extension MV3 side panel + service worker
packages/host MCP + native host
packages/plugin Grok Build plugin (compatibility layer)Tests
pnpm --filter @chrome-actuator/shared test