CodeCharta turns any codebase into a 3D city of metrics and a map of its domain language.
Spot hotspots in seconds. Show your team what you mean instead of explaining it.
▶ Try the live demo • Staging demo • Quickstart • Documentation • Releases
CodeCharta analysing itself. Left: every building is a file, big and red means large and complex. Right: the words the code is written in.
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, including 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
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 hashormerge commit - Jump between views: from any node, Show in Metrics or Show in Domain
Where does "commit" live? 95% in analysis, where the git log parser is.
Load two versions and compare them. Green grew, red shrank, and you see where a release actually happened.
1. Install the CodeCharta Shell (Node ≥ 22.19 and Java 17 to 21)
npm i -g codecharta-analysis2. Analyse your project
cd my-project
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 merge metrics.cc.json.gz git.cc.json.gz domain.cc.json.gz -o my-project.cc.json.gzOr let simplecc.sh run every analysis available on your machine and merge the
results for you. Not sure which command you need? ccsh -i asks you step by step.
3. Open it in the Web Studio: drag and drop the file, done.
Prefer a desktop app or Docker? See Getting started.
All analysis and visualization run entirely on your machine. Nothing is uploaded, shared or sent anywhere. There is no analytics, tracking or telemetry.
| Source code | Unified parser: Java, Kotlin, TypeScript, JavaScript, Python, C#, C, C++, Go, Rust, PHP, Ruby, Swift, Objective-C, Vue, Bash, Delphi |
| 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, DependaCharta, Tokei, Code Maat, SourceMonitor, CSV |
Merge any combination into one map, reshape its folder tree, or export it to CSV.
Do you have a bug, feature request, or question? Please open a new issue. Feedback is always welcome.
Want more information? Check out our documentation and release notes.
Your company needs professional support to analyse your code base? We offer a service to help you with that.
A full Software Health Check for your codebase and everything around it. Click the link to learn more: Software Health Check
- Documentation
- Quickstart Guide
- Releases
- Coverage
- Analysis - Changelog | Visualization - Changelog
- Contributing
- Code of Conduct
- Dev Start Guide
- License
BSD-3-Clause License
Made with ❤ by MaibornWolff · GitHub @MaibornWolff




