Cssgraph

io.github.mack-pengPublished by GitHub account mack-pengv0.6.3Updated Oct 24, 2026

CSS intelligence for AI coding agents — surgical style context, fewer tool calls. 100% local.

VerifiedSTDIODesktop onlyKnowledge & MemoryDeveloper Tools

Overview

AI-generated overview

Gives an AI coding assistant a local CSS knowledge graph so it can look up class definitions, cascade overrides, and affected files in one call.

What you can do
cssgraph indexes a project's stylesheets (CSS, SCSS, Less, Sass, PostCSS, CSS Modules, Tailwind) plus JSX/TSX and view templates into a local SQLite graph of classNames, properties, variables, at-rules, and edges such as contains, nests, overrides, imports, and references. Its 13 MCP tools answer questions like where a class is defined, what cascades over it, which components reference it, what a change would affect, which classes are unused, and how a cascade path runs. A file watcher keeps the index in sync as code changes.
When to use it
Useful when an assistant works on front-end styling in a real project and would otherwise grep and read files one at a time to reconstruct the cascade. It fits refactors, impact checks before changing a class, and finding unused or overridden selectors. It is static analysis only; runtime rendering questions need a separate browser-based tool.
Requirements
A local process started over stdio, installed from the npm package cssgraph. Requires Node.js >= 22.5.0 (for node:sqlite) and a project to index; run cssgraph init in the project first. No accounts, API keys, or environment variables are declared. Desktop only, not available as a web executable.
Before you install
It reads project source files and writes a local index under .cssgraph/ in the project, and it watches files for changes. The README's setup path asks an agent to fetch an installation guide from a URL and run commands, and cssgraph mcp-install rewrites MCP server configuration and installs a skill file for detected agents, so review those changes. No credentials or payments are involved.

Installation

In SourceWeft

  1. Open Cssgraph in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

cssgraph

CSS Intelligence for AI Coding Agents

Surgical style context · fewer tool calls · faster answers · 100% local

[License: MIT] [Node.js] [npm version] [npm downloads] [GitHub stars]

[macOS] [Linux] [Windows]


Why cssgraph?

When an AI agent needs to understand CSS — where is .btn-primary defined, what properties does it have, which selectors cascade over it, which JSX components reference it — it discovers style the slow way: grep, glob, and Read, one file at a time, reconstructing the cascade by hand.

cssgraph hands the agent the exact style context it needs in one call. It's a pre-built knowledge graph of every className, CSS property, variable, and at-rule in your stylesheets — so instead of crawling files, the agent asks one question and gets back the properties, overrides, specificity, callers, and file-level impact in full.


Installation

For Humans

Copy and paste this prompt to your LLM agent (Claude Code, Cursor, Codex, etc.):

text
Install and configure cssgraph by following the instructions here:https://raw.githubusercontent.com/mack-peng/cssgraph/main/docs/guide/installation.md

Or read the Installation Guide, but seriously, let an agent do it. Humans fat-finger configs.

For LLM Agents

Fetch the installation guide and follow it:

bash
curl -s https://raw.githubusercontent.com/mack-peng/cssgraph/main/docs/guide/installation.md

Quick Start

1. Initialize

bash
npm i -g cssgraphcd your-projectcssgraph init --workers 8

Indexes all style files (CSS, SCSS, Less, Sass), JSX/TSX className references, CSS-in-JS, CSS Modules, and view templates (ERB/Haml/HTML) — enabling every MCP tool.

Pass --workers <n> to control parallel parse threads (default: cpu cores - 1).

Requires Node.js >= 22.5.0 (for node:sqlite).

2. Wire up your agent

bash
cssgraph mcp-install

Auto-detects and configures opencode, Claude Code, Cursor, Codex CLI, Gemini CLI, Hermes Agent, Antigravity IDE, and Kiro. Writes MCP server config, instructions block, and an Agent Skill (SKILL.md + references/pitfalls.md) that teaches agents when to use each of the 13 cssgraph tools, how to chain them into workflows, and what pitfalls to avoid.

Or add to any MCP agent manually:

json
{  "mcpServers": {    "cssgraph": {      "type": "stdio",      "command": "cssgraph",      "args": ["serve", "--mcp"]    }  }}

3. No more syncing

Auto-sync is enabled by default. The MCP server watches your project and updates the graph on every file change — while your agent edits code, or you add/modify/delete CSS files. The index is never stale.


How It Works

┌───────────────────────────────────────────────────────────┐│                      AI Agent                              ││                                                           ││  "What code files use .btn-primary?"                      ││      calls cssgraph_rule — one tool call                  ││                             │                             │└─────────────────────────────┬─────────────────────────────┘                              │                              ▼┌───────────────────────────────────────────────────────────┐│                  cssgraph MCP Server                       ││                                                           ││ rule · O(1) exact selector lookup · loose/strict impact   ││ explore · properties + overrides + specificity + callers  ││                             │                             ││                             ▼                             ││               SQLite knowledge graph                      ││     classNames · properties · variables · at-rules        ││            edges · FTS5 full-text search                  │└───────────────────────────────────────────────────────────┘
  1. Extraction — PostCSS parses CSS/SCSS/Less/Sass into ASTs. CSS-in-JS (styled.div), JSX className references, and template class attributes extracted from .jsx/.tsx/.erb/.haml files.
  2. Storage — Everything goes into a local SQLite database (.cssgraph/cssgraph.db) with FTS5 full-text search. WAL-mode + batch commits for write performance. FTS triggers and unique indexes are deferred during bulk load for speed.
  3. Graph — Edges connect related nodes: contains (selector→property), nests (parent→child selector), overrides (higher specificity selector overrides lower), imports (file→imported file), references (JSX/view file→className, property→CSS variable).
  4. Git-first scanning — git ls-files for instant file discovery. Falls back to filesystem walk on non-git projects.
  5. Parallel parsing — Files dispatched in batches to worker threads via Promise.all. Parses complete concurrently; results flushed in file order for correctness.
  6. Auto-Sync — Native OS file events, debounced, incrementally synced.

CLI Reference

bash
cssgraph init [path] [-w, --workers <n>]  # Initialize + build graphcssgraph index [path] [-w, --workers <n>]  # Rebuild from scratchcssgraph query <className>                 # Search for className selectorscssgraph explore <query...>                # Full style context for a classNamecssgraph details <selector>                # O(1) exact selector → file:line lookupcssgraph rule <selector> [--strict]        # Selector impact: exact + loose/strict filescssgraph impact-selector <selector>       # Code files affected by a selectorcssgraph impact <className>                # Blast radius of changing a classNamecssgraph unused                            # Find unreferenced class selectorscssgraph cascade <className>               # Visualize cascade pathcssgraph diagnose <className> [chain...]   # Static anchor diagnosis (height/scroll)cssgraph property <query...>               # Search by CSS property valuecssgraph files [path]                      # Project style file treecssgraph status [path]                     # Index statisticscssgraph sync [path]                       # Incremental updatecssgraph serve --mcp                       # Start MCP servercssgraph mcp-install                       # Auto-wire to your AI agent (alias: install)cssgraph skill-install                     # Install/update SKILL.md only (no MCP config changes)cssgraph skill-uninstall                   # Remove SKILL.md only (no MCP config changes)cssgraph mcp-uninstall                     # Remove from your AI agent (alias: uninstall)cssgraph version                           # Print installed version

JSX and View File Scanning (default)

cssgraph always scans:

  • JSX/TSX/JS/TS/ES6 — className references, CSS-in-JS, CSS Modules
  • View templates — .erb, .haml, .html files for class="..." attributes and Haml .classname shorthand

This enables cssgraph_impact, cssgraph_callers, and cssgraph_rule to track both component files AND template files that reference each className.

ProjectTotal filesFirst indexNodesEdges
Small~50~15s~16K~50K
Production monorepo~11K~3-5m~780K~22M

MCP Tools

ToolPurpose
cssgraph_explorePRIMARY: Full style context for a className — properties, overrides, specificity, callers
cssgraph_searchSearch for className selectors by name
cssgraph_callersFind JSX components referencing a className
cssgraph_impactBlast radius of changing a className
cssgraph_ruleBlast radius of a full CSS selector (exact match + loose/strict file impact)
cssgraph_impact_selectorFind code files (JS/TS/JSX/TSX) affected by a CSS selector
cssgraph_detailsO(1) exact selector lookup (no edges, lightweight)
cssgraph_unusedFind class selectors with no incoming references
cssgraph_cascadeVisualize the cascade path for a className
cssgraph_diagnoseStatic anchor diagnosis for scroll/height issues — classifies height declarations as DEFINITE / INDEFINITE / UNVERIFIABLE along the ancestor chain
cssgraph_propertySearch selectors by CSS property value
cssgraph_filesIndexed style file tree
cssgraph_statusIndex health check

Complementary Tool: cssprobe-cli

cssgraph is a static analysis tool — it reads your source code and answers where a class is defined, what cascades over it, and what a change would affect. For runtime questions — what a page actually renders in a browser (overflow, scroll chains, computed height chains, containing block hijacks) — use cssprobe-cli, which opens a real browser and reads computed styles plus DOM metrics. The two tools complement each other:

cssgraph (static)cssprobe-cli (runtime)
Analyzessource code (CSS/SCSS/Less + JSX/TSX + templates)live browser (computed styles + DOM)
Answerswhere a class is defined, cascade, impact, unused CSSactual rendered layout, overflow, scroll, height chains
Whenbefore/without a browserafter static analysis, to verify at runtime
Usagecssgraph init + explore/rule/impactopen + inspect/layout/findings

Recommended workflow for a style problem — go static first, then verify at runtime:

bash
# 1. Static: find the definitions, cascade, and blast radius (cssgraph)cssgraph explore .btn-primarycssgraph cascade .btn-primary
# 2. Runtime: confirm what actually renders (cssprobe-cli)npm i -g cssprobe-clicssprobe-cli open https://example.comcssprobe-cli inspect .btn-primarycssprobe-cli findings .btn-primary

Install: npm install -g cssprobe-cli (requires Node.js >= 22.5.0). See npm / GitHub.


Supported Languages

LanguageExtensionExtraction
CSS.cssPostCSS standard
SCSS.scsspostcss-scss plugin
Less.lesspostcss-less plugin
Sass (indented).sassCompile → PostCSS
PostCSS custom.pcssPostCSS standard
JSX / TSX.jsx .tsxclassName + CSS-in-JS
JavaScript / TypeScript.js .ts .es6className + CSS Modules
ERB (Rails).erbclass="..." extraction
Haml (Rails).haml.classname + {:class =>} extraction
HTML.htmlclass="..." extraction
CSS Modules.module.css .module.scss .module.lessDynamic import resolution
Tailwindtailwind.config.js + CSS @themev3 JS config + v4 CSS config

Production Scale

ProjectTotal filesFirst indexNodesEdges
Small~50~15s~16K~50K
Production monorepo~11K~3-5m~780K~22M

Project Configuration

Zero-config by default. Optional .cssgraph.json at your project root:

json
{  "exclude": ["static/vendor/", "**/legacy/**"],  "extensions": {    ".pcss": "css"  }}

Built-in default excludes (always applied): **/*.test.*, **/*.stories.*, **/*.spec.*, **/*.min.*, **/__tests__/**, **/__snapshots__/**, **/__mocks__/**, **/generated/**, **/spec/**, **/vendor/**.


Supported Platforms

PlatformArchitecturesInstall
macOSx64, arm64npm
Linuxx64, arm64npm
Windowsx64, arm64npm

If cssgraph is useful

A ⭐ star helps other developers discover it — and tells us to keep shipping.


License

MIT

Source: README.md at commit 6f8726d

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.6.3LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts