ludo-technologies/pyscn

GitHub: ludo-technologies/pyscn

一款高性能 Python 代码质量分析器,专为 AI 辅助编程场景设计,支持死代码检测、复杂度分析和 MCP 集成。

Stars: 979 | Forks: 48

pyscn **面向 Python Vibe Coding 开发者的代码质量分析器。** 正在使用 Cursor、Claude 或 ChatGPT 进行构建?pyscn 执行结构分析以保持代码库的可维护性。 [![文章](https://img.shields.io/badge/dev.to-Article-0A0A0A?style=flat-square&logo=dev.to)](https://dev.to/daisukeyoda/pyscn-the-code-quality-analyzer-for-vibe-coders-18hk) [![PyPI](https://img.shields.io/pypi/v/pyscn?style=flat-square&logo=pypi)](https://pypi.org/project/pyscn/) [![下载量](https://img.shields.io/pypi/dm/pyscn?style=flat-square&logo=pypi&label=downloads)](https://pypi.org/project/pyscn/) [![Go](https://img.shields.io/github/go-mod/go-version/ludo-technologies/pyscn?style=flat-square&logo=go)](https://go.dev/) [![许可证](https://img.shields.io/github/license/ludo-technologies/pyscn?style=flat-square)](LICENSE) *使用 JavaScript/TypeScript?试试 [jscan](https://github.com/ludo-technologies/jscan)*
## 快速开始 ``` # 运行 analysis 而无需安装 uvx pyscn@latest analyze . # 或 pipx run pyscn analyze . ``` ## 演示 https://github.com/user-attachments/assets/71d7a126-9c5e-4254-99f4-f2cdedd526ad ## 功能特性 - 🔍 **基于 CFG 的死代码检测** – 在详尽的 if-elif-else 链后查找不可达代码 - 📋 **多算法克隆检测(Type 1-4)** – 利用 LSH 加速识别重构机会 - 🔗 **耦合度量(CBO)** – 追踪架构质量和模块依赖关系 - 📊 **圈复杂度分析** – 找出需要拆分的函数 **每秒处理 100,000+ 行代码** • 使用 Go + tree-sitter 构建 ## MCP 集成 通过 Model Context Protocol (MCP) 直接在 AI 编程助手中运行 pyscn 分析。捆绑的 `pyscn-mcp` 服务器向 Claude Code、Cursor、ChatGPT 和其他 MCP 客户端暴露了 CLI 中使用的相同工具。 ### MCP 使用案例 你可以通过 AI 编程工具与 pyscn 交互: 1. “分析 app/ 目录的代码质量” 2. “查找重复代码并帮助我重构” 3. “展示复杂代码并帮我简化” ### Claude Code 设置 **选项 1:通过插件市场安装(推荐)** ``` claude plugin marketplace add ludo-technologies/pyscn claude plugin install pyscn-mcp@pyscn-marketplace ``` **选项 2:手动 MCP 设置** ``` claude mcp add pyscn-mcp uvx -- pyscn-mcp ``` ### Cursor / Claude Desktop 设置 添加到你的 MCP 设置(`~/.config/claude-desktop/config.json` 或 Cursor 设置): ``` { "mcpServers": { "pyscn-mcp": { "command": "uvx", "args": ["pyscn-mcp"], "env": { "PYSCN_CONFIG": "/path/to/.pyscn.toml" } } } } ``` 诸如“分析代码质量”之类的指令会通过 MCP 触发 pyscn。 请深入阅读 `mcp/README.md` 了解设置步骤,以及 `docs/MCP_INTEGRATION.md` 了解架构详情。 ## 安装 ``` # 使用 pipx 安装(推荐) pipx install pyscn # 或使用 uv uv tool install pyscn ```
其他安装方法 ### 从源码构建 ``` git clone https://github.com/ludo-technologies/pyscn.git cd pyscn make build ``` ### Go install ``` go install github.com/ludo-technologies/pyscn/cmd/pyscn@latest ```
## 常用命令 ### `pyscn analyze` 运行全面分析并生成 HTML 报告 ``` pyscn analyze . # All analyses with HTML report pyscn analyze --json . # Generate JSON report pyscn analyze --select complexity . # Only complexity analysis pyscn analyze --select deps . # Only dependency analysis pyscn analyze --select complexity,deps,deadcode . # Multiple analyses ``` ### `pyscn check` 快速且适合 CI 的质量门禁 ``` 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 --allow-circular-deps . # Allow circular dependencies (warning only) ``` ### `pyscn init` 创建配置文件 ``` pyscn init # Generate .pyscn.toml ``` ## 配置 创建 `.pyscn.toml` 文件或将 `[tool.pyscn]` 添加到你的 `pyproject.toml`: ``` # .pyscn.toml [complexity] max_complexity = 15 [dead_code] min_severity = "warning" [output] directory = "reports" ``` ## Pyscn Bot (GitHub App) [Pyscn Bot](https://github.com/marketplace/pyscn-bot) 自动监控你的 Python 代码质量。 ### 功能特性 - **PR 代码审查** - 对每个 Pull Request 进行自动代码审查 - **每周代码审计** - 扫描整个代码仓库并针对架构问题创建 Issue ## 文档 📚 **[开发指南](docs/DEVELOPMENT.md)** • **[架构](docs/ARCHITECTURE.md)** • **[测试](docs/TESTING.md)** ## 企业支持 如需商业支持、自定义集成或咨询服务,请通过 contact@ludo-tech.org 联系我们 ## 许可证 MIT 许可证 — 详见 [LICENSE](LICENSE) *使用 Go 和 tree-sitter 用 ❤️ 构建*
标签:AI编程助手, CFG, ChatGPT, Claude, CMS安全, Cursor, CVE检测, Dead Code Detection, EVTX分析, Go, JavaScript, LSH, MCP, Promptflow, PyPI, Python, Ruby工具, tree-sitter, TypeScript, 云安全监控, 代码克隆检测, 代码规范, 代码质量分析, 圈复杂度, 多模态安全, 威胁情报, 安全插件, 开发者工具, 开源框架, 弱口令爆破, 持续集成, 数据管道, 无后门, 日志审计, 模块依赖分析, 软件工程, 逆向工具, 重构, 静态分析