โโโโโโโ โโโโโโโ โโโโ โโโ โโโโโโโ โโโโโโโโโโโ โโโโโโโ โโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโ โโโโโโโโโโโโ โโโ โโโโโโโโโโโโโโโโโ โโโโโโ โโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโ โโโ โโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโ โโโ โโโโโโโโโโโโ โโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโ โโโ โโโโโโโ โโโ โโโโโโ โโโโโ โโโโโโโ โโโโโโโโโโโ โโโโโโโ โโโ โโโ โโโ
Beautiful interactive codebase visualizations โ single HTML, zero dependencies.
CodeVista analyzes your codebase and generates a stunning single-page HTML report โ no server, no internet, no external dependencies. Just share one file and everyone can explore your code visually.
pip install codevista
codevista analyze ./my-project/
Thatโs it. Open report.html in any browser. No server needed.
pip install codevista
Zero external dependencies โ pure Python stdlib.
| Command | Description |
|---|---|
codevista analyze ./project/ |
Full analysis with all features |
codevista analyze ./project/ -o report.html |
Custom output path |
codevista analyze ./project/ --no-git |
Skip git analysis |
codevista analyze ./project/ --depth 3 |
Limit directory depth |
codevista quick ./project/ |
Fast analysis (~3 seconds) |
codevista serve ./project/ --port 8080 |
Serve report on HTTP server |
codevista compare ./v1/ ./v2/ |
Compare two codebases |
codevista watch ./project/ |
Re-analyze on file changes |
codevista smells ./project/ |
Detect code smells and anti-patterns |
codevista architecture ./project/ |
Detect architecture patterns |
codevista code-age ./project/ |
Analyze file age, churn, and risk |
codevista export ./project/ -f sarif |
Export as SARIF for CI |
codevista export ./project/ --all |
Export to all formats |
codevista health ./project/ |
Health score only |
codevista security ./project/ |
Security scan only |
codevista deps ./project/ |
Dependency analysis |
codevista git-stats ./project/ |
Git repository statistics |
codevista languages ./project/ |
Language distribution breakdown |
codevista complexity ./project/ |
Complexity analysis and top functions |
codevista snapshot ./project/ |
Save analysis snapshot for trend tracking |
codevista trends ./project/ |
Show project health trends over time |
codevista diff-snapshots ./project/ 1 2 |
Compare two snapshots |
codevista team ./project/ |
Team productivity & collaboration analysis |
codevista ci-output ./project/ -f sarif |
CI/CD output (SARIF, Checkstyle, etc.) |
codevista decay ./project/ |
Architectural decay analysis |
codevista dna ./project/ |
Generate CodeDNA fingerprint |
codevista lint ./project/ |
Language-specific lint rules |
CodeVista detects 19 categories of code smells that go beyond typical linters:
| Smell | Description |
|---|---|
| God Classes | Classes with too many methods/fields/responsibilities |
| Long Parameter Lists | Functions with too many params, especially with =None |
| Feature Envy | Methods using another classโs data more than their own |
| Divergent Change | Classes modified for multiple unrelated reasons |
| Shotgun Surgery | Single logical change requiring edits across many files |
| Parallel Inheritance | Adding a subclass of A always requires subclassing B |
| Speculative Generality | Unused abstractions, abstract methods never overridden |
| Temporary Fields | Instance variables set only in certain methods |
| Message Chains | Long dot chains: a.b.c.d.e.f |
| Middle Man | Classes that only delegate to another class |
| Comment Smells | Comments describing WHAT code does, not WHY |
| Dead Code | Variables assigned but never read, functions never called |
| Magic Numbers | Unnamed numeric literals scattered in code |
| Copy-Paste Code | Near-duplicate blocks within and across files |
| Missing Error Handling | I/O operations without try/catch or error checks |
| Inconsistent Naming | Mixing camelCase and snake_case conventions |
| Boolean Parameters | Flags indicating method should be split |
| isinstance Chains | Type checking chains suggesting missing polymorphism |
Each smell comes with severity, location, and actionable remediation advice.
codevista smells ./my-project/
Automatically identifies architectural patterns from project structure and code:
Includes architecture quality scoring (organization, coupling, modularity, balance) and text-based architecture diagrams.
codevista architecture ./my-project/
Track file age, change frequency, and identify files most likely to have bugs:
| Category | Description |
|---|---|
| ๐ฅ Hot | Changed in the last 7 days |
| ๐ค๏ธ Warm | Changed in the last 30 days |
| โ๏ธ Cold | Changed 30-365 days ago |
| ๐ง Cold Stable | Old but few changes (stable) |
| ๐ Dead | Unchanged for >1 year |
Risk Analysis correlates age ร complexity ร churn to identify the files most likely to contain bugs:
codevista code-age ./my-project/
Track code quality over time with snapshots and trend visualization.
# Save a snapshot of the current state
codevista snapshot ./my-project/
# Save with a label
codevista snapshot ./my-project/ --label "before-refactor"
# View trends
codevista trends ./my-project/
# Compare two specific snapshots
codevista diff-snapshots ./my-project/ 1 2
๐ Health Score Timeline
100 โคโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโ
0 โคโโโโโโโโโโโโโโโโโโโโโ
Current: 78/100 โ
Analyze developer productivity and collaboration patterns.
codevista team ./my-project/
| Metric | Description |
|---|---|
| Lines per Author | Added/removed/net per developer |
| Commit Frequency | Commits per day, burst vs steady patterns |
| Files Touched | Unique files per author |
| Bus Factor | People needed to understand 50% of code |
| Code Ownership | Pie chart data showing contribution share |
| Review Coverage | Estimate from commit messages |
| Pair Programming | Co-authored commit detection |
| Time Zone Distribution | When the team commits |
| Onboarding Complexity | How hard for a new contributor to ramp up |
Track how your codebase degrades over time using git history. Detects growing complexity, increasing coupling, code duplication, and predicts future state.
codevista decay ./my-project/
What it analyzes:
| Metric | Description |
|---|---|
| Complexity Growth | How cyclomatic complexity changes across commits |
| Coupling Growth | How module interdependencies grow over time |
| Duplication Growth | Code duplication ratio changes |
| Debt Velocity | Technical debt accumulation rate per week |
| Decay Hotspots | Files degrading fastest (ranked by decay score) |
| Predictions | Linear regression forecasts for 12 weeks ahead |
| Inflection Points | Key commits where quality shifted significantly |
| Interventions | Prioritized refactoring recommendations |
ASCII Report Example:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐๏ธ ARCHITECTURAL DECAY ANALYSIS โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ Repository: my-project โ
โ Is Git: Yes โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ COMPLEXITY GROWTH
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-01-15 avg CC: 8.2 [โโโโโโโโโโโโโโโโโโโโโโ]
2026-02-01 avg CC: 9.5 [โโโโโโโโโโโโโโโโโโโโโโ]
2026-02-15 avg CC: 11.3 [โโโโโโโโโโโโโโโโโโโโโโ]
2026-03-01 avg CC: 13.8 [โโโโโโโโโโโโโโโโโโโโโโ]
Trend: ๐ GROWING
๐ฅ DECAY HOTSPOTS (top 10)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ด 1. 45.2 [โโโโโโโโโโโโโโโโโโโโโโ] src/core/engine.py
๐ 2. 28.7 [โโโโโโโโโโโโโโโโโโโโโโ] src/api/handler.js
๐ก 3. 12.4 [โโโโโโโโโโโโโโโโโโโโโโ] src/utils/parser.py
๐ฎ PREDICTIONS (12 weeks forward)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Avg complexity: 18.5
Debt lines: 2450
Confidence: moderate
๐ก RECOMMENDED INTERVENTIONS
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ด [CRITICAL] src/core/engine.py
Action: refactor
break into smaller functions/modules; stabilize โ changes are volatile
Create unique DNA fingerprints for codebases โ identify projects, detect forks, spot cloned code.
# Generate fingerprint with ASCII barcode
codevista dna ./my-project/
# Save fingerprint for later comparison
codevista dna ./my-project/ --save fingerprint.json
# Compare two projects
codevista dna ./project-a/ --compare fingerprint.json
# Detect cloned files
codevista dna ./my-project/ --clones
What it captures:
| Component | Description |
|---|---|
| Hash Patterns | SHA-based profile of code structure patterns |
| Language Distribution | Language mix signature |
| Complexity Distribution | Complexity bucket fingerprint |
| Dependency Topology | Import graph topology hash |
| Naming Conventions | camelCase/snake_case/PascalCase ratios |
| Comment Density | Documentation coverage fingerprint |
| Function Size | Function size distribution |
| File Size | File size distribution |
| Clone Detection | Exact and near-clone detection via block hashing |
Barcode Example:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐งฌ CodeDNA Barcode โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Project: my-project files: 42โ
โ Languages: Python 45.2%, JS 30.1%, HTML 15.3% โ
โ Naming: snake_case โ
โ Hash: a3f7c2b1e9d04586 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Compact: [โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ]
a3f7c2b1e9d045867f2a9c3d1e8b4f6a...
CodeVista includes 38 language-specific lint rules across 5 languages, enforcing popular style guides:
# Lint entire project
codevista lint ./my-project/
# Lint specific file
codevista lint ./src/app.py
# Filter by language
codevista lint ./project/ -l python -l javascript
# Filter by severity
codevista lint ./project/ -s error -s warning
# Include/exclude specific rules
codevista lint ./project/ --include-rule PY001 --exclude-rule PY010
# JSON output for CI
codevista lint ./project/ --json
# List all available rules
codevista lint --rules
| Language | Style Guide | Rules | Severity |
|---|---|---|---|
| Python | PEP 8 / Black | PY001โPY011 (11 rules) | error/warning/info |
| JavaScript | Airbnb | JS001โJS009 (9 rules) | error/warning/info |
| TypeScript | Airbnb (shared) | JS001โJS009 (9 rules) | error/warning/info |
| Go | gofmt | GO001โGO005 (5 rules) | error/warning |
| Rust | clippy-lite | RS001โRS005 (5 rules) | error/warning/info |
| Java | Google Style | JA001โJA006 (6 rules) | error/warning/info |
| Rule | Severity | Description |
|---|---|---|
| PY001 | warning | Max line length (88 for Black) |
| PY002 | error | No wildcard imports (from x import *) |
| PY003 | info | Import order: stdlib โ third-party โ local, alphabetized |
| PY004 | info | Two blank lines before top-level definitions |
| PY005 | info | One blank line before methods |
| PY006 | info | Spaces around operators |
| PY007 | info | Prefer f-strings over .format() / %-formatting |
| PY008 | info | Type hints on public functions |
| PY009 | warning | Naming conventions (snake_case, PascalCase, UPPER_CASE) |
| PY010 | info | No trailing whitespace |
| PY011 | warning | No multiple statements on one line |
| Rule | Severity | Description |
|---|---|---|
| JS001 | error | No var โ use const or let |
| JS002 | info | Prefer template literals over string concatenation |
| JS003 | info | Use arrow functions for callbacks |
| JS004 | warning | Use === instead of == |
| JS005 | warning | 2-space indentation (no tabs) |
| JS006 | warning | No unused variables |
| JS007 | info | Prefer destructuring for repeated property access |
| JS008 | info | Use object shorthand syntax |
| JS009 | info | Trailing comma conventions |
| Rule | Severity | Description |
|---|---|---|
| GO001 | error | Tab indentation required |
| GO002 | error | No unused imports |
| GO003 | warning | Exported names must have doc comment |
| GO004 | error | Error handling โ do not discard errors |
| GO005 | warning | No variable shadowing in inner scopes |
| Rule | Severity | Description |
|---|---|---|
| RS001 | error | No .unwrap() in production code |
| RS002 | warning | Use Option/Result properly (no is_some().unwrap()) |
| RS003 | error | No mutable statics |
| RS004 | info | Lint suppressions should be avoided |
| RS005 | error | Naming conventions (snake_case functions/vars) |
| Rule | Severity | Description |
|---|---|---|
| JA001 | error | 4-space indentation (no tabs) |
| JA002 | warning | Javadoc on public methods |
| JA003 | error | No wildcard imports |
| JA004 | error | Braces required for control statements |
| JA005 | warning | Catch specific exceptions |
| JA006 | info | Use logger instead of System.out.print |
| Code | Meaning |
|---|---|
0 |
Clean โ no violations |
2 |
Errors found |
Export analysis results in multiple formats for different use cases:
| Format | Use Case | Command |
|---|---|---|
| HTML | Interactive report in browser | codevista export . -f html |
| JSON | Programmatic access, APIs | codevista export . -f json |
| Markdown | Documentation, READMEs, wikis | codevista export . -f markdown |
| SARIF | GitHub Code Scanning, CI/CD | codevista export . -f sarif |
| CSV | Spreadsheets, data analysis | codevista export . -f csv |
| YAML | CODE_METRICS format | codevista export . -f yaml |
| Printable reports | codevista export . -f pdf |
|
| All formats | Everything at once | codevista export . --all |
# CI integration with GitHub Code Scanning
codevista export ./project/ -f sarif -o results.sarif.json
# Export everything
codevista export ./project/ -o ./reports/codevista --all
CodeVista provides dedicated CI output formats with threshold-based pass/fail.
| Format | Platform | Command |
|---|---|---|
| SARIF | GitHub Code Scanning | codevista ci-output . -f sarif |
| GitLab Code Quality | GitLab | codevista ci-output . -f gitlab |
| Checkstyle XML | Jenkins, GitHub Actions | codevista ci-output . -f checkstyle |
| JUnit XML | Any CI with JUnit support | codevista ci-output . -f junit |
| Markdown | PR comments | codevista ci-output . -f markdown |
| Terminal | Quick terminal output | codevista ci-output . -f terminal |
| Code | Meaning | Description |
|---|---|---|
0 |
Clean | All thresholds passed |
1 |
Warnings | Medium-severity threshold violations |
2 |
Errors | High-severity violations (health, complexity) |
3 |
Critical | Critical security issues or severe degradation |
Create .codevista.json in your project root:
{
"max_security_critical": 0,
"max_security_high": 0,
"max_security_medium": 5,
"max_security_total": 10,
"max_avg_complexity": 10,
"max_technical_debt_ratio": 0.25,
"min_health_score": 60,
"max_duplicates": 10,
"max_circular_deps": 0,
"max_todo_count": 50
}
# Run with exit codes (CI will fail if thresholds violated)
codevista ci-output ./project/ -f sarif -o results.sarif.json
echo "Exit code: $?" # 0=clean, 1=warnings, 2=errors, 3=critical
# Build
docker build -t codevista .
# Analyze a project
docker run --rm -v $(pwd):/workspace codevista analyze /workspace
# Use docker-compose
docker-compose up
The Docker image uses multi-stage builds for minimal size, runs as non-root, and includes wkhtmltopdf for PDF export.
| Feature | CodeVista | SonarQube | CodeClimate | lizard |
|---|---|---|---|---|
| Setup | pip install |
Docker/Server | SaaS | pip install |
| Dependencies | Zero | Heavy | None | None |
| Output | Single HTML | Web UI | Web UI | CLI |
| Offline | โ | โ | โ | N/A |
| Security scan | โ | โ | โ | โ |
| Git analysis | โ | โ | โ | โ |
| Visual charts | โ | โ | โ | โ |
| Code smell detection | โ 19 types | Limited | Limited | โ |
| Architecture patterns | โ 12+ patterns | โ | โ | โ |
| Code age analysis | โ | โ | โ | โ |
| SARIF export | โ | โ | โ | โ |
| Cost | Free | Free/Paid | Paid | Free |
| Server needed | No | Yes | Yes | No |
codevista/
โโโ cli.py # CLI interface (argparse)
โโโ analyzer.py # Core analysis engine
โโโ report.py # HTML report generator
โโโ metrics.py # Health scores & recommendations
โโโ smells.py # Code smell detection (19 categories)
โโโ architecture.py # Architecture pattern detector
โโโ code_age.py # Code age & risk analysis
โโโ export.py # Multi-format export (HTML/JSON/MD/SARIF/CSV/YAML/PDF)
โโโ security.py # Secret/vulnerability scanning
โโโ dependencies.py # Dependency parsing & analysis
โโโ git_analysis.py # Git stats extraction
โโโ trends.py # Trend analysis & snapshot tracking
โโโ team.py # Team metrics & collaboration analysis
โโโ integrations.py # CI/CD output (SARIF, Checkstyle, JUnit, GitLab)
โโโ decay.py # Architectural decay detector
โโโ codedna.py # CodeDNA fingerprinter
โโโ lint_rules.py # Language-specific lint rules (PEP 8, Airbnb, gofmt, clippy, Google)
โโโ languages.py # Language definitions & colors
โโโ config.py # Configuration & ignore patterns
โโโ utils.py # Utilities & color schemes
โโโ templates/ # HTML templates
git checkout -b feature/amazing)git commit -m 'Add amazing feature')git push origin feature/amazing)MIT ยฉ 2026 โ see LICENSE
| Use Case | How |
|---|---|
| Individual Developers | Get a health score for your project, find security issues |
| Engineering Teams | Track code quality trends, compare team member metrics |
| CI/CD Pipelines | Generate SARIF reports for GitHub Code Scanning |
| Open Source Maintainers | Analyze PR quality, detect code smells automatically |
| Code Reviews | Get automated feedback on architecture, complexity, and duplication |
| Education | Teach code quality concepts with visual, interactive reports |
Built with โค๏ธ by rudra496 ยท LinkedIn
MIT License ยท Free & Open Source Forever