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
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
Hover a building to see its values and dependencies, select it for all its metrics, focus a folder to zoom in.
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.
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
Open a folder, hover a box to see its edges, select it to see what it uses and what uses it.
Load two versions and compare them. Green grew, red shrank, and you see where the work actually happened.
1. Install the CodeCharta Shell (Node ≥ 22.19 and Java 22 or newer)
npm i -g codecharta-analysis2. Analyse your project
cd my-project
ccsh analyse # opinionated selection of parsers and options to get started, merged into my-project.cc.json.gzWant 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.gzNot 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.
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.
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, 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.
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.
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
- Getting started
- Examples
- Releases
- Analysis - Changelog | Visualization - Changelog
- Contributing
- Code of Conduct
- Dev Start Guide
- License
BSD-3-Clause License
Made with ❤ by MaibornWolff · GitHub @MaibornWolff



