cssprobe-cli
Runtime CSS probe — inspect layout, scroll, colors, backgrounds, fonts and more in a live browser. Built for both humans and AI agents.
Installation
For Humans
npm install -g cssprobe-cli
For LLM Agents
cssprobe-cli skill-install
Quick Start
1. Inspect a Page
cssprobe-cli open https://getbootstrap.com/docs/5.3/examples/checkout
cssprobe-cli open https://example.com --viewport 1280x720
cssprobe-cli inspect .container
cssprobe-cli tree .container --depth 3
cssprobe-cli layout .container
cssprobe-cli findings .container
cssprobe-cli close
2. Login-Protected Pages
cssprobe-cli open https://mysite.com --headed
cssprobe-cli inspect .dashboard
cssprobe-cli inject-css ".sidebar { background: #f0f0f0; }"
cssprobe-cli screenshot
cssprobe-cli close
3. Import Cookies
cssprobe-cli state-import cookies.txt --out ~/.cssprobe-cli/states/mysite.json
cssprobe-cli state-import cookies.txt --name mysite
cssprobe-cli open https://mysite.com --state ~/.cssprobe-cli/states/mysite.json
4. JSON Output
cssprobe-cli open https://getbootstrap.com/docs/5.3/examples/checkout
cssprobe-cli inspect body --json
cssprobe-cli inspect body --json | jq '.findings[] | {id, confidence, message}'
cssprobe-cli close
Session Mode
cssprobe-cli uses a session-based architecture for non-browser interaction:
cssprobe-cli open <url>
cssprobe-cli inspect <selector>
cssprobe-cli tree <selector>
cssprobe-cli layout <selector>
cssprobe-cli findings <selector>
cssprobe-cli inject-css <css>
cssprobe-cli screenshot
cssprobe-cli eval <expression>
cssprobe-cli status
cssprobe-cli close
Commands
Session Management
cssprobe-cli open [url]
cssprobe-cli open [url] --viewport 1280x720
cssprobe-cli open [url] --state ~/.cssprobe-cli/states/mysite.json
cssprobe-cli close
cssprobe-cli status
CSS Inspection
cssprobe-cli inspect <selector>
cssprobe-cli tree <selector>
cssprobe-cli layout <selector>
cssprobe-cli findings <selector>
CSS Injection
cssprobe-cli inject-css <css>
Browser
cssprobe-cli resize <width> <height>
cssprobe-cli eval <expression>
cssprobe-cli playwright <call>
cssprobe-cli screenshot
State
cssprobe-cli state-import [file]
Configuration
cssprobe-cli config-show
cssprobe-cli config-set <key> <value>
cssprobe-cli config-list
cssprobe-cli config-use <name>
cssprobe-cli config-new <name>
cssprobe-cli config-path
inspect Options
cssprobe-cli inspect <selector> [options]
Arguments:
<selector> CSS selector for root element
Options:
--json Output structured JSON
--brief Compact output: tree sketch + warnings/errors only
--layout ASCII layout diagram
--depth <n> DOM tree depth (default: auto, max 20)
tree Options
cssprobe-cli tree <selector> [options]
Arguments:
<selector> CSS selector for root element
Options:
--depth <n> Tree depth (default: auto, max 20)
inject-css
cssprobe-cli inject-css <css>
Arguments:
<css> CSS code to inject into the current page
state-import
Import cookies from Netscape format (browser export standard) into a Playwright state file.
cssprobe-cli state-import cookies.txt --out mystate.json
cssprobe-cli state-import cookies.txt --name mysite
cat cookies.txt | cssprobe-cli state-import --out mystate.json
cssprobe-cli state-import new-cookies.txt --merge existing.json --out merged.json
Netscape format (tab-separated):
.example.com TRUE / TRUE 1813025057 session_id abc123
.example.com TRUE / FALSE -1 lang zh-CN
Confidence Model
Every finding carries a confidence level:
| DEFINITE | Based on computed values (facts from getComputedStyle) or accessible declared values |
| INDEFINITE | Declared value uses % — resolves at runtime |
| UNVERIFIABLE | Declared value missing or from blocked cross-origin stylesheet |
The report header shows: confidence: DEFINITE 8 | INDEFINITE 0 | UNVERIFIABLE 1
Configuration
cssprobe-cli config-set browser chromium
cssprobe-cli config-set depth 8
cssprobe-cli config-set viewport 375x812
cssprobe-cli config-show
cssprobe-cli config-new staging
cssprobe-cli -p staging config-set browser firefox
cssprobe-cli config-use staging
cssprobe-cli config-list
Priority: CLI flags > Environment variables > Config file
--browser CSSPROBE_BROWSER
--depth CSSPROBE_DEPTH
--headed CSSPROBE_HEADED
--viewport CSSPROBE_VIEWPORT
-p, --profile CSSPROBE_PROFILE
Config file: ~/.cssprobe-clirc
Agent Skill
cssprobe-cli skill-install
cssprobe-cli skill-install --target opencode
cssprobe-cli skill-install --target claude
cssprobe-cli skill-uninstall
Global Options
--json Output as JSON (default: Markdown)
--raw Output raw result without formatting
--help [command] Show help for a command or global
--version Show version
-p, --profile Use named config profile
Development
npm install
npm run build
npm test
npx tsc --noEmit
License
MIT