Code quality analysis for Python in the age of AI coding.
See the codeEnglish | 日本語 | 简体中文 | Français
Code quality analysis for Python in the age of AI coding.
Building with Cursor, Claude, or ChatGPT? pyscn keeps AI-generated code maintainable with structural analysis.
# Run analysis without installation
uvx pyscn@latest analyze .
# or
pipx run pyscn analyze .
One command scores your whole codebase (0-100 with an A-F grade) and generates an HTML report that shows what to fix first.
pyscn looks at your code from five angles:
100,000+ lines/sec • Built with Go + tree-sitter
pyscn is the Python analyzer of polyscan. For JavaScript, TypeScript, Go, Rust and C++, run:
npx polyscan analyze .
Same five angles, same 0-100 score, one HTML report.
Polyscan App files a weekly audit report as a GitHub Issue. Free for public repositories.
pyscn ships Agent Skills that teach AI coding agents when and how to run each analysis: health checks, refactoring, architecture review, and CI-friendly reports.
uvx add-skills ludo-technologies/pyscn
This installs the Skills into your project. They work with Claude Code, Cursor, Codex, Gemini CLI, and many other agents (add --agent cursor etc. to target one, --global for all projects).
Then just ask your agent:
"Analyze the code quality of the app/ directory"
"Find duplicate code and help me refactor it"
"Show me complex code and help me simplify it"
For tighter integration, the bundled pyscn-mcp server exposes the same analyses as MCP tools to Claude Code, Cursor, ChatGPT, and other MCP clients.
Claude Code plugin (sets up the MCP server and the Skills together):
claude plugin marketplace add ludo-technologies/pyscn
claude plugin install pyscn-mcp@pyscn-marketplace
Manual setup for Claude Code:
claude mcp add pyscn-mcp uvx -- pyscn-mcp
Cursor / Claude Desktop: add to your MCP settings (~/.config/claude-desktop/config.json or Cursor settings):
{
"mcpServers": {
"pyscn-mcp": {
"command": "uvx",
"args": ["pyscn-mcp"],
"env": {
"PYSCN_CONFIG": "/path/to/.pyscn.toml"
}
}
}
}
Dive deeper in mcp/README.md for setup walkthroughs and docs/MCP_INTEGRATION.md for architecture details.
# Install with pipx (recommended)
pipx install pyscn
# Or with uv
uv tool install pyscn
macOS Intel (x86_64): PyPI wheels are built for Apple Silicon only (the Intel wheel was dropped in v1.5.1), so
uvx,pipx,uv, andpipcannot install pyscn on Intel Macs. Usebrew install pyscnorgo install github.com/ludo-technologies/pyscn/cmd/pyscn@latestinstead.
git clone https://github.com/ludo-technologies/pyscn.git
cd pyscn
make build
go install github.com/ludo-technologies/pyscn/cmd/pyscn@latest
pyscn analyzeRun comprehensive analysis with HTML report
pyscn analyze . # All analyses with HTML report
pyscn analyze --json . # Generate JSON report
pyscn analyze --json --output - . | jq # JSON report on stdout
pyscn analyze --json --html --no-open . # JSON and HTML reports from one run
pyscn analyze --select complexity . # Only complexity analysis
pyscn analyze --select deps . # Only dependency analysis
pyscn analyze --select complexity,deps,deadcode . # Multiple analyses
pyscn analyze --skip-communities . # Skip module community detection
pyscn checkFast CI-friendly quality gate
pyscn check . # Quick pass/fail check
pyscn check --max-complexity 15 . # Custom thresholds
pyscn check --max-cycles 0 . # Only allow 0 cycle dependency
pyscn check --select deps . # Check only for circular dependencies
pyscn check --select di . # Detect DI anti-patterns (opt-in)
pyscn check --allow-circular-deps . # Allow circular dependencies (warning only)
pyscn initCreate configuration file
pyscn init # Generate .pyscn.toml
💡 Run
pyscn --helporpyscn <command> --helpfor complete options
Create a .pyscn.toml file or add [tool.pyscn] to your pyproject.toml:
# .pyscn.toml
[complexity]
max_complexity = 15
[dead_code]
min_severity = "warning"
[output]
directory = "reports"
⚙️ Run
pyscn initto generate a full configuration file with all available options
📖 pyscn documentation site — installation, rule catalog, CLI reference, configuration, output specification
For contributors: Development Guide • Architecture • Testing
For commercial support, custom integrations, or consulting services, contact us at contact@ludo-tech.org
MIT License — see LICENSE
Built with ❤️ using Go and tree-sitter
88 followers · starred Oct 2025
267 followers · starred Oct 2025
478 followers · starred Oct 2025
59 followers · starred Oct 2025
Code quality analysis for Python in the age of AI coding.
See the codeEnglish | 日本語 | 简体中文 | Français
Code quality analysis for Python in the age of AI coding.
Building with Cursor, Claude, or ChatGPT? pyscn keeps AI-generated code maintainable with structural analysis.
# Run analysis without installation
uvx pyscn@latest analyze .
# or
pipx run pyscn analyze .
One command scores your whole codebase (0-100 with an A-F grade) and generates an HTML report that shows what to fix first.
pyscn looks at your code from five angles:
100,000+ lines/sec • Built with Go + tree-sitter
pyscn is the Python analyzer of polyscan. For JavaScript, TypeScript, Go, Rust and C++, run:
npx polyscan analyze .
Same five angles, same 0-100 score, one HTML report.
Polyscan App files a weekly audit report as a GitHub Issue. Free for public repositories.
pyscn ships Agent Skills that teach AI coding agents when and how to run each analysis: health checks, refactoring, architecture review, and CI-friendly reports.
uvx add-skills ludo-technologies/pyscn
This installs the Skills into your project. They work with Claude Code, Cursor, Codex, Gemini CLI, and many other agents (add --agent cursor etc. to target one, --global for all projects).
Then just ask your agent:
"Analyze the code quality of the app/ directory"
"Find duplicate code and help me refactor it"
"Show me complex code and help me simplify it"
For tighter integration, the bundled pyscn-mcp server exposes the same analyses as MCP tools to Claude Code, Cursor, ChatGPT, and other MCP clients.
Claude Code plugin (sets up the MCP server and the Skills together):
claude plugin marketplace add ludo-technologies/pyscn
claude plugin install pyscn-mcp@pyscn-marketplace
Manual setup for Claude Code:
claude mcp add pyscn-mcp uvx -- pyscn-mcp
Cursor / Claude Desktop: add to your MCP settings (~/.config/claude-desktop/config.json or Cursor settings):
{
"mcpServers": {
"pyscn-mcp": {
"command": "uvx",
"args": ["pyscn-mcp"],
"env": {
"PYSCN_CONFIG": "/path/to/.pyscn.toml"
}
}
}
}
Dive deeper in mcp/README.md for setup walkthroughs and docs/MCP_INTEGRATION.md for architecture details.
# Install with pipx (recommended)
pipx install pyscn
# Or with uv
uv tool install pyscn
macOS Intel (x86_64): PyPI wheels are built for Apple Silicon only (the Intel wheel was dropped in v1.5.1), so
uvx,pipx,uv, andpipcannot install pyscn on Intel Macs. Usebrew install pyscnorgo install github.com/ludo-technologies/pyscn/cmd/pyscn@latestinstead.
git clone https://github.com/ludo-technologies/pyscn.git
cd pyscn
make build
go install github.com/ludo-technologies/pyscn/cmd/pyscn@latest
pyscn analyzeRun comprehensive analysis with HTML report
pyscn analyze . # All analyses with HTML report
pyscn analyze --json . # Generate JSON report
pyscn analyze --json --output - . | jq # JSON report on stdout
pyscn analyze --json --html --no-open . # JSON and HTML reports from one run
pyscn analyze --select complexity . # Only complexity analysis
pyscn analyze --select deps . # Only dependency analysis
pyscn analyze --select complexity,deps,deadcode . # Multiple analyses
pyscn analyze --skip-communities . # Skip module community detection
pyscn checkFast CI-friendly quality gate
pyscn check . # Quick pass/fail check
pyscn check --max-complexity 15 . # Custom thresholds
pyscn check --max-cycles 0 . # Only allow 0 cycle dependency
pyscn check --select deps . # Check only for circular dependencies
pyscn check --select di . # Detect DI anti-patterns (opt-in)
pyscn check --allow-circular-deps . # Allow circular dependencies (warning only)
pyscn initCreate configuration file
pyscn init # Generate .pyscn.toml
💡 Run
pyscn --helporpyscn <command> --helpfor complete options
Create a .pyscn.toml file or add [tool.pyscn] to your pyproject.toml:
# .pyscn.toml
[complexity]
max_complexity = 15
[dead_code]
min_severity = "warning"
[output]
directory = "reports"
⚙️ Run
pyscn initto generate a full configuration file with all available options
📖 pyscn documentation site — installation, rule catalog, CLI reference, configuration, output specification
For contributors: Development Guide • Architecture • Testing
For commercial support, custom integrations, or consulting services, contact us at contact@ludo-tech.org
MIT License — see LICENSE
Built with ❤️ using Go and tree-sitter
88 followers · starred Oct 2025
267 followers · starred Oct 2025
478 followers · starred Oct 2025
59 followers · starred Oct 2025