AI investigates the browser crime scene
Let AI drive the Chrome you already use — with your real login sessions — to navigate, click, type, screenshot, and read pages.
Quick start
Get the extension from the Chrome Web Store or a GitHub Release. The daemon is always a prebuilt binary from Releases — no source build.
1. Install the extension from the Chrome Web Store:
Open Chrome Web Store2. Install the local daemon and skills (skip the unpacked zip — the store already has the extension):
curl -fsSL https://raw.githubusercontent.com/ximing/csi/master/scripts/install.sh | bash -s -- --no-extension3. Open the extension popup and confirm it shows “connected”.
Check it’s ready:
curl -s http://127.0.0.1:10088/statusOnce installed, the skill auto-engages whenever you ask AI to interact with a site — no manual invocation.
Skills for other coding agents
The installer covers Claude Code. The same skills ship as thin plugin manifests for other coding tools:
/plugin marketplace add ximing/csi
/plugin install csi@csicodex plugin marketplace add ximing/csi
codex plugin add csi@csi/add-plugin csigrok plugin install csi@xai-official --trustxAI 官方市场收录 PR 审核中 / xAI official marketplace listing in review/plugins install https://github.com/ximing/csi"plugin": ["csi@git+https://github.com/ximing/csi.git"] // opencode.jsonpi install git:github.com/ximing/csiThe daemon is still required; the extension comes from the store or a Release zip — see the Coding Agent Skills section in the README.
Scenarios
Three typical scenarios — one toolkit, different jobs
Agent inspects the browser
Read page structure, search, extract, answer questions
Agent debugs a web page
Read the console, capture network, locate the bug
E2E regression suites
Turn natural-language scenarios into replayable tests
Describe
The model writes e2e/cases/<name>.md: the URL under test + numbered steps with machine-checkable expectations.
Verify
It executes live in your real Chrome via the daemon, iterating until every expectation holds.
Solidify
What passed becomes e2e/suites/<name>.mjs — plain Node scripts over HTTP.
Replay
node e2e/run.mjs — no model involved, replay anytime.
Architecture
The daemon is an HTTP server for AI clients and a WebSocket server for the extension. The extension runs in your real Chrome and executes tools via CDP.
21 investigation tools
Covering the full browser interaction chain — exact contract in protocol.md §4
navigateOpen/switch tab, navigate to a URLfind_tabFind an open tab by title or URLsnapshotAccessibility tree with @e element refsclickClick an element by @e reffillFill inputs or contenteditableevaluateRun arbitrary JS in the pagenetworkMonitor/capture network requestsmouse_clickTrusted coordinate-level clickswaitWait for text, an element, or a URLscrollScroll the page or an element into viewhoverHover to open CSS :hover menuskey_typeType keys character by charactersend_keysSend key events (with modifiers)cdpRaw CDP passthroughscreenshotScreenshot, returns a file pathsave_as_pdfSave page as PDFuploadUpload a filelist_tabsList all open tabsclose_tabClose a specific tabclose_sessionClose all tabs in a sessionlist_framesList all frames; cross-origin marked isolatedSecurity notes
Loopback is the boundary
The daemon binds 127.0.0.1 only; v1 has no auth — loopback is the isolation boundary. Anything running as your user can drive your browser.
Designed capability
evaluate and cdp are arbitrary code execution channels in the page. That is a designed capability, not a bug — treat skill prompts accordingly.