Skip to content

About

CodeCharta is a visualization tool that transforms complex software architecture and code metrics into interactive, customizable visual maps, empowering everyone to communicate and analyze your codebase. Improve code quality, maintainability, and architectural decisions

Topics

Resources

Stars

556 stars

Watchers

11 watching

Forks

Latest commit

 

History

11,401 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CodeCharta logo

CodeCharta

See how your code is built, and what it is about.

CodeCharta turns any codebase into a 3D city of metrics, a map of its domain language and a graph of its dependencies.
Find the hotspots in minutes, and show your team what you mean instead of explaining it.

▶ Try the live demo • Staging demo • Quickstart • Documentation • Releases

Analysis Version Badge Visualization Version Badge Release Analysis Badge Release Visualization Badge
Quality Gate Analysis Quality Gate Visualization License
Web Studio Badge Web Studio Staging Badge

Three views of one codebase

🏙️ Metric view: find the hotspots

Every file is a building. You pick what area, height and color mean: lines of code, complexity, number of commits, number of authors, function length and dozens more. The files that need your attention stick out of the skyline.

  • Hotspots: big + tall + red = large, complex and changed all the time
  • Knowledge silos: color by number of authors to find code only one person understands
  • Temporal coupling: edges connect files that always change together, even without an import
  • Filter and focus: search, flatten or exclude files, also by rule like complexity > 50
  • Scenarios: built-in and saved presets for complexity, code smells, authors and more
  • 3D print: export the city as a 3D model and put your codebase on the table

Hovering and selecting buildings in CodeCharta's metric city, focusing the visualization folder from the context menu and turning the map

Hover a building to see its values and dependencies, select it for all its metrics, focus a folder to zoom in.

🔤 Domain view: read what the code is about

The domain language parser reads identifiers, comments and strings, filters out keywords and technical noise, and scores every word by frequency and TF-IDF. The result is the vocabulary of your business, not of your framework.

  • Word cloud per folder: pick any file or folder and see the words it is written in
  • Where does a word live? Open a word and get its breakdown over the file tree
  • Phrases, not just words: bigrams like commit hash or merge commit
  • Jump between views: from any node, Show in Metrics or Show in Domain

The word 'commit' opened in the domain explorer: 95% of its occurrences are in the analysis folder

Where does "commit" live? 95% in analysis, where the git log parser is.

🔗 Dependencies view: see the structure

The dependency parser reads the imports of your code, and the graph stacks every folder by level: what a box depends on lies below it. In a cleanly layered codebase every edge points down, so the ones that don't stand out.

  • Cycles and upward dependencies: red edges and badges mark what breaks the layering
  • Open what you need: double-click a folder to see its contents, a file to see its declarations
  • Uses and used by: select a box and the inspector lists its dependencies in both directions
  • Folders or packages: arrange the graph by folder or by the packages the code declares

Opening the analysis and analysers folders in the dependency graph, hovering and selecting parsers to see its edges and inspector, then selecting filters and opening its Uses list

Open a folder, hover a box to see its edges, select it to see what it uses and what uses it.

📈 Compare: see what changed

Load two versions and compare them. Green grew, red shrank, and you see where the work actually happened.

Delta between CodeCharta 2.0 and today: green buildings grew, red shrank

Quickstart

1. Install the CodeCharta Shell (Node ≥ 22.19 and Java 22 or newer)

npm i -g codecharta-analysis

2. Analyse your project

cd my-project
ccsh analyse    # opinionated selection of parsers and options to get started, merged into my-project.cc.json.gz

Want more control? Run the parsers one by one and merge their results:

ccsh unifiedparser . -o metrics.cc.json.gz                   # size, complexity, functions
ccsh gitlogparser repo-scan --repo-path . -o git.cc.json.gz  # commits, authors, coupling
ccsh domainlanguageparser . --ngrams=2 -o domain.cc.json.gz  # domain words and phrases
ccsh dependencyparser . -o deps.cc.json.gz                   # imports, cycles, layering
ccsh merge metrics.cc.json.gz git.cc.json.gz domain.cc.json.gz deps.cc.json.gz -o my-project.cc.json.gz

Not sure which command you need? ccsh without arguments suggests the analysers that fit the current folder, and ccsh -i walks you through any command step by step.

3. Open it in the Web Studio with the folder button (Load cc.json files).

Prefer Docker or the desktop app? See Getting started.

Keep it in shape

ccsh gate checks a project against your own limits per metric and against its dependency rules, and fails the build when one breaks. Run it in CI, in a git hook or after an AI agent. The gate is experimental; see the quality gate.

Your data stays local

All analysis and visualization run entirely on your machine. Nothing is uploaded, shared or sent anywhere. There is no analytics, tracking or telemetry.

What CodeCharta can read

Source code Unified parser: Java, Kotlin, TypeScript, JavaScript, Python, C#, C, C++, Go, Rust, PHP, Ruby, Swift, Objective-C, Vue, Bash, Delphi, Angular templates, SQL
Dependencies Dependency parser: imports between files, cycles and upward dependencies
Domain language Domain language parser: words and phrases with frequency and TF-IDF
Version control Git log, SVN log
Any text Raw text: indentation levels for any language
Your other tools SonarQube, Coverage, Tokei, Code Maat, SourceMonitor, CSV

Merge any combination into one map, reshape its folder tree, or export it to CSV.

Get involved

Found a bug, have a feature request or a question? Please open a new issue. Feedback is always welcome, and so are pull requests: start with the contributing guide.

Service Offerings

Your company needs professional support to analyse your code base? We offer a service to help you with that.

Software Health Check

A full Software Health Check for your codebase and everything around it. Click the link to learn more: Software Health Check

Links

License

BSD-3-Clause License


Made with ❤ by MaibornWolff  ·  GitHub @MaibornWolff

About

CodeCharta is a visualization tool that transforms complex software architecture and code metrics into interactive, customizable visual maps, empowering everyone to communicate and analyze your codebase. Improve code quality, maintainability, and architectural decisions

Topics

Resources

Stars

556 stars

Watchers

11 watching

Forks

Releases

Packages

Used by

Contributors

Languages