No server. No account. One binary.
AST Metrics analyzes your codebase (complexity, architecture, coupling, bus factor...) and runs anywhere.
Drop it in any CI. Works offline: no data leaves your machine.
Fast: 20,000+ lines of code analyzed per second, on a laptop.
Go · PHP · Python · Rust · Java · C# · TypeScript
AST Metrics analyzing itself. Explore this report live, or try it on any public repository, without installing anything.
Install with Homebrew (macOS, Linux):
brew install ast-metrics/tap/ast-metricsor with the install script (any platform, downloads an ./ast-metrics binary in the current directory):
curl -fsSL https://install.ast-metrics.dev | shThen analyze your project:
ast-metrics analyze /path/to/your/codeYou get a summary right in your terminal: maintainability, estimated bug probability, coupling, and the hotspots worth refactoring first. Add --report-html=<dir> when you want a full report, or --tui to explore the results in a full-screen dashboard. Nothing is written to disk unless you ask for it.
Docker image,
.deb/.rpmpackages and manual downloads: see the installation instructions.
| Architectural analysis | Coupling, instability, community detection: catch design drift early |
| Code metrics | Cyclomatic complexity, maintainability index, lines of code |
| Activity metrics | Commit history and bus factor: know who owns what |
| Linter | Enforce thresholds on complexity, coupling, volume and architecture |
| CI/CD ready | GitHub Actions, GitLab CI, any pipeline; exits non-zero on violations |
| Report formats | HTML dashboard, JSON, Markdown, SARIF, OpenMetrics |
| MCP server | Give AI coding agents architectural awareness |
The dependency graph: hubs, natural communities and circular dependencies at a glance.
ast-metrics init # create a .ast-metrics.yaml config file
ast-metrics ruleset add architecture # pick rulesets (volume, complexity...)
ast-metrics lintThresholds live in your YAML config: maximum complexity, coupling limits, forbidden dependencies between components, size limits per method... Legacy codebase with hundreds of violations? Run ast-metrics baseline once: it snapshots today's violations, and lint only fails on new ones.
➡️ Rulesets, thresholds and baseline
ast-metrics ci runs the linter, generates every report (HTML, JSON, Markdown, SARIF, OpenMetrics) and exits non-zero when violations are found. On GitHub, a single step is enough:
- uses: ast-metrics/action-ast-metrics@v2On each pull request, the action runs ast-metrics review and comments with only the new or worsened findings.
➡️ CI/CD guides: GitHub Actions, GitLab CI
AI coding agents read code linearly. Running as an MCP server, AST Metrics gives Claude Code, Cursor or Copilot on-demand access to complexity, coupling, dependencies and risk, so you can ask things like "What are the riskiest files to refactor?" or "What would break if I change the UserService class?".
ast-metrics mcp .Go, PHP, Python, Rust, Java, C# and TypeScript.
Discussions, bug reports and pull requests are welcome: start here. AST Metrics is open-source software licensed under the MIT license.
AST Metrics is built and maintained on free time. If it saved you some of yours:
- ⭐ Star the repository. It costs nothing and it is how most developers discover the tool.
- ❤️ Become a sponsor. Sponsorship directly funds maintenance time and the addition of new languages and metrics.
