| name | kuri-agent |
| description | Use kuri-agent to automate Chrome — navigate pages, interact with elements via a11y refs, capture screenshots, run security audits, enumerate cookies/JWTs, probe for IDOR vulnerabilities, and make authenticated fetches. Use when the user wants to automate a browser, test a web app, scrape data, or run security trajectories against a live site. |
| argument-hint | [command] [args...] |
| allowed-tools | Bash |
kuri-agent — Agentic Chrome CLI
kuri-agent drives Chrome via CDP. It stores session state in ~/.kuri/session.json so commands chain together naturally.
Binary location
After building: ./zig-out/bin/kuri-agent
After installing to PATH: kuri-agent
Build: zig build agent -Doptimize=ReleaseFast
Workflow
Every session follows this pattern:
kuri-agent tabs
kuri-agent use ws://127.0.0.1:9222/devtools/page/ABC...
kuri-agent go https://example.com
kuri-agent snap --interactive
kuri-agent click e2
kuri-agent type e3 "hello world"
kuri-agent shot
All commands
Discovery & session
kuri-agent tabs [--port N]
kuri-agent use <ws_url>
kuri-agent status
Navigation
kuri-agent go <url>
kuri-agent back / forward / reload
Page inspection
kuri-agent snap
kuri-agent snap --interactive
kuri-agent snap --text
kuri-agent snap --depth 3
kuri-agent text
kuri-agent text "css-selector"
kuri-agent eval "document.title"
kuri-agent shot [--out path.png]
Actions (require a prior snap)
kuri-agent click <ref>
kuri-agent type <ref> <text>
kuri-agent fill <ref> <value>
kuri-agent select <ref> <value>
kuri-agent hover <ref>
kuri-agent focus <ref>
kuri-agent scroll
Security testing
kuri-agent cookies
kuri-agent headers
kuri-agent audit
kuri-agent storage [local|session|all]
kuri-agent jwt
kuri-agent fetch <METHOD> <url> [--data <json>]
kuri-agent probe <url-template> <start> <end>
Auth headers (persisted across commands)
kuri-agent set-header Authorization "Bearer eyJ..."
kuri-agent set-header X-Custom-Auth "my-token"
kuri-agent show-headers
kuri-agent clear-headers
Headers set with set-header are automatically applied via Network.setExtraHTTPHeaders on every subsequent CDP connection.
Security trajectory examples
Enumerate cookies after login
kuri-agent go https://target.example.com
kuri-agent cookies
Full security audit
kuri-agent audit
Find and decode JWTs
kuri-agent jwt
IDOR probe — enumerate resource IDs
kuri-agent set-header Authorization "Bearer eyJ..."
kuri-agent probe "https://api.example.com/v2/courses/{id}/assessments" 30 40
Authenticated fetch with different token
kuri-agent fetch GET "https://api.example.com/v2/user"
kuri-agent fetch POST "https://api.example.com/v2/submissions" --data '{"score":100}'
Output tips
All commands output JSON. audit and headers return CDP wrapper — extract with:
kuri-agent audit | jq '.result.result.value | fromjson'
kuri-agent headers | jq '.result.result.value | fromjson | .headers'
Tips
- Always run snap before using click/type/fill — it saves the @eN refs to session
- set-header is persistent — set auth token once, all fetch/probe/go commands use it
- Use eval for arbitrary JS: kuri-agent eval "localStorage.getItem('token')"
- probe reports status per ID — look for 200s on IDs you should not have access to
- Chain commands in shell scripts for automated security trajectories