The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Cssprobe Cli listing page.
Runtime CSS probe — inspect layout, scroll, colors, backgrounds, fonts and more in a live browser. Built for both humans and AI agents.
Static + runtime CSS diagnosis for AI agents — pair with cssgraph (the CSS knowledge graph) for the full picture.
When an AI agent needs to debug CSS — why is this element overflowing, what's the actual rendered layout, is this container scrollable — it can't see the browser. It guesses from static code, missing runtime-only issues like overflow, scroll chains, and containing block hijacks.
cssprobe-cli gives the agent eyes. It opens a real browser, collects computed styles and metrics via injected JavaScript, analyzes them with a confidence model, and returns structured findings — all in one command. The agent asks a question about any selector and gets back the DOM tree, ASCII layout diagram, overflow warnings, and scroll diagnosis without leaving the terminal.
Copy and paste this prompt to your LLM agent (Claude Code, Cursor, Codex, etc.):
Or read the Installation Guide, but seriously, let an agent do it. Humans fat-finger configs.
Fetch the installation guide and follow it:
Or install directly:
open spawns a daemon process managing a browser. Commands connect via Unix socket.cssprobe-cli ships an MCP server (stdio), so AI clients call it as a native tool — no shell needed:
Manual configuration for any MCP client:
Exposes 10 tools: cssprobe_open, cssprobe_inspect, cssprobe_tree, cssprobe_layout,
cssprobe_findings, cssprobe_eval, cssprobe_screenshot, cssprobe_inject_css,
cssprobe_close, cssprobe_status. Remove with cssprobe-cli mcp-uninstall.
| Command | Description |
|---|---|
open [url] | Open browser in session mode (non-blocking) |
open [url] --headed | Show browser window |
open [url] --state <file> | Open with saved cookies + localStorage |
open [url] --viewport 1280x720 | Custom viewport size |
close | Close browser session |
close --all | Close all sessions across all workspaces |
status | Show session status |
| Command | Description |
|---|---|
inspect <selector> | Full CSS diagnosis (computed values, declared values, findings) |
inspect <selector> --layout | Include ASCII layout diagram |
inspect <selector> --brief | Compact: tree sketch + warnings/errors only |
inspect <selector> --json | Structured JSON output |
tree <selector> | DOM tree structure |
layout <selector> | ASCII layout diagram |
findings <selector> | Only issues/warnings/errors |
| Command | Description |
|---|---|
inject-css <css> | Inject CSS into current page |
| Command | Description |
|---|---|
resize <width> <height> | Resize browser viewport |
eval <expression> | Evaluate JavaScript (browser context) |
playwright <call> | Execute Playwright API (Node.js context) |
screenshot | Take screenshot (saves to ~/.cssprobe-cli/screenshots/, --out to override) |
| Command | Description |
|---|---|
state-import <file> | Import cookies from Netscape format |
state-save | Save current browser session state (cookies + localStorage) |
| Command | Description |
|---|---|
config-show | Show current config |
config-set <key> <value> | Set config value |
config-list | List all profiles |
config-use <name> | Switch active profile |
config-new <name> | Create new profile |
config-path | Show config file path |
Every finding carries a confidence level:
| Level | Meaning |
|---|---|
| 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
cssprobe-cli is a runtime CSS probe — it opens a real browser and reads what is actually rendered. For static questions about the source code — where is .btn-primary defined, what cascades over it, which components reference it, what would change if I edited it — use cssgraph, a local SQLite knowledge graph of every className, property, variable, and at-rule in your stylesheets. The two tools complement each other:
| cssgraph (static) | cssprobe-cli (runtime) | |
|---|---|---|
| Analyzes | source code (CSS/SCSS/Less + JSX/TSX + templates) | live browser (computed styles + DOM) |
| Answers | where a class is defined, cascade, impact, unused CSS | actual rendered layout, overflow, scroll, height chains |
| When | before/without a browser | after static analysis, to verify at runtime |
| Usage | cssgraph init + explore/rule/impact | open + inspect/layout/findings |
Recommended workflow for a style problem — go static first, then verify at runtime:
Install: npm install -g cssgraph (requires Node.js >= 22.5.0). It exposes 12 MCP tools (cssgraph_explore, cssgraph_rule, cssgraph_impact, …) plus CLI commands. See npm / GitHub.
Priority: CLI flags > Environment variables > Config file
Config file: ~/.cssprobe-clirc
| Platform | Architectures |
|---|---|
| macOS | x64, arm64 |
| Linux | x64, arm64 |
| Windows | x64, arm64 |
A ⭐ star helps other developers discover it — and tells us to keep shipping.
MIT