Skip to content

πŸ” Analyze and visualize code health with metrics like cyclomatic complexity, TODOs, and more β€” for C#, Java, and beyond.

Notifications You must be signed in to change notification settings

blueheron786/code-health

Repository files navigation

Code Health

.NET

Project dashboard screenshot

Code Health is a fast, local-first code analysis tool that helps you understand and improve your codebase without installing giant IDE plugins, setting up servers, or wiring up a SaaS.

πŸš€ Scan your code. Catch issues. Stay fast.


πŸ’‘ Why Code Health?

Most code quality tools are either:

  • Heavyweight and slow (hello SonarQube), or
  • Language-specific (like Detekt or ESLint), or
  • Locked behind subscriptions accounts

Code Health gives you:

  • βœ… Lightweight, fast CLI scanning
  • βœ… Consistent results across languages
  • βœ… A visual, interactive UI (built in Blazor)
  • βœ… Zero external dependencies at runtime

Analyze what matters. Skip the noise.

🧱 Why Not Use Detekt (and Friends)?

Simplicity and scan speed are the core of Code Health.

  • Tools like Detekt, PMD, or SpotBugs are powerfulβ€”but come with baggage
  • They require platform-specific binaries, slow startup times, and their output isn’t made for custom pipelines
  • We need something fast, portable, and minimal: no build steps, no IDE integration, just scan and go

This means we avoid runtime scanning (build warnings, unit test coverage, etc.) but we think the trade-off is well worthi t.


🧠 What It Checks

  • Cyclomatic complexity
  • TODOs / tech debt comments
  • Long methods
  • Large classes
  • Empty try/catch blocks
  • And more ...

βš™οΈ Supported Languages

Currently in active development. Support varies per analysis type.

Language Static Analysis
C# βœ… Working
Java βœ… Working
Kotlin βœ… Working
JavaScript βœ… Working

πŸ› οΈ Getting Started

Make sure you have .NET 8 installed.

Run the app:

dotnet run --project CodeHealth.UI

πŸ”§ Developer Notes

The architecture is intentionally modular:

  • Scanners do the hard work β€” language-specific, single-responsibility analyzers
  • UI renders clean summaries grouped by file, language, and issue type
  • Data is stored locally in JSON files so you can inspect, diff, or reprocess them

πŸš€ Roadmap Highlights

  • Visual dashboards of complexity and hotspots
  • Language usage graphs
  • Language-agnostic analysis (e.g. duplication)

❀️ Contributing

PRs, feedback, and issue reports are welcome. This project is early and evolving fast β€” feel free to jump in and help shape it.