obra/superpowers-chrome
Claude Code plugin for direct Chrome browser control via DevTools Protocol - zero dependencies
https://skillcdn.ai/gh/obra/superpowers-chromeConnect this address to your AI to use these skills. How to connect
- Unverified
- Default branch
main - Commit
37d40e1 - License
MIT
Explore this repository
Searches the original text of skills and documents; display translations are not searched.
Documents
- CDP Reference (for maintainers)Internal reference for working on the CDP transport layer in superpowers-chrome. Not user-facing documentation — this is the "why we did it this way" record for the next person modifying skills/brows…docs/cdp/INDEX.md
- waitForDebuggerOnStart + runIfWaitingForDebugger is how popup dialog shims get there before the page runsThis is the headline timing card for the dialog subsystem.docs/cdp/autoattach-popup-timing.md
- Flatten mode makes sessionId a message-envelope field, not a connection propertyThe CDP protocol originally handled child-target sessions by nesting: to send a command to a page, you wrapped it inside Target.sendMessageToTarget, and Chrome replied with Target.receivedMessageFrom…docs/cdp/flatten-mode.md
- --headless=new vs chrome-headless-shell: two different things since Chrome 132Chrome had two headless implementations for years. Knowing which is which matters for debugging feature gaps and container builds.docs/cdp/headless-variants.md
- Register the load-event listener before issuing Page.navigate, or fast pages will lose the eventThe naive shape for "navigate and wait for load":docs/cdp/navigation-listener-race.md
- Each CDP session has its own message-id counter; collapsing id space silently breaks correlationWhen you multiplex multiple sessions on one WebSocket via flatten mode, you have to decide whether id numbers are scoped per WebSocket connection or per session. The protocol's rule (from the Lushnik…docs/cdp/per-session-id-counters.md
- setDiscoverTargets is passive observation; setAutoAttach actively captures childrenThese two methods look similar in the protocol reference and are easy to conflate. They are not interchangeable.docs/cdp/target-lifecycle.md