{"id":50692821,"url":"https://github.com/rudra496/codevista","last_synced_at":"2026-06-09T04:33:44.709Z","repository":{"id":347175143,"uuid":"1193098724","full_name":"rudra496/codevista","owner":"rudra496","description":"🔍 CodeVista — AI-powered code analysis \u0026 visualization tool. Understand complex codebases instantly. Dependency graphs, architecture insights \u0026 quality metrics.","archived":false,"fork":false,"pushed_at":"2026-06-05T22:12:54.000Z","size":452,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-05T22:20:40.048Z","etag":null,"topics":["ci-cd","code-analysis","code-metrics","code-quality","code-review","code-security","code-smell","developer-tools","devsecops","hacktoberfest","html-reports","linter","open-source","python","sast","security-audit","software-quality","static-analysis","technical-debt","vulnerability"],"latest_commit_sha":null,"homepage":"https://rudra496.github.io/codevista","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rudra496.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["rudra496"]}},"created_at":"2026-03-26T21:51:11.000Z","updated_at":"2026-06-05T22:12:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rudra496/codevista","commit_stats":null,"previous_names":["rudra496/codevista"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/rudra496/codevista","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rudra496%2Fcodevista","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rudra496%2Fcodevista/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rudra496%2Fcodevista/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rudra496%2Fcodevista/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rudra496","download_url":"https://codeload.github.com/rudra496/codevista/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rudra496%2Fcodevista/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34092260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci-cd","code-analysis","code-metrics","code-quality","code-review","code-security","code-smell","developer-tools","devsecops","hacktoberfest","html-reports","linter","open-source","python","sast","security-audit","software-quality","static-analysis","technical-debt","vulnerability"],"created_at":"2026-06-09T04:33:44.058Z","updated_at":"2026-06-09T04:33:44.699Z","avatar_url":"https://github.com/rudra496.png","language":"Python","funding_links":["https://github.com/sponsors/rudra496"],"categories":[],"sub_categories":[],"readme":"\u003c!-- CodeVista — Code Analysis \u0026 Security Scanner | Static Analysis Tool --\u003e\n\u003c!-- Meta: CodeVista is a free, zero-dependency code analysis and security scanner that generates stunning single-page HTML reports. Supports 65+ languages, 36 lint rules, DNA fingerprinting, architectural decay detection, code smells, and more. --\u003e\n\u003c!-- Keywords: code analysis, static analysis, security scanner, code quality, code metrics, code smells, architecture detection, health score, technical debt, SARIF, CI/CD, lint rules, code fingerprinting --\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003c!-- Badges --\u003e\n  \u003ca href=\"https://pypi.org/project/codevista/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Python-3.9+-3776AB?style=flat\u0026logo=python\u0026logoColor=white\" alt=\"Python 3.9+\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/rudra496/codevista/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-green.svg\" alt=\"MIT License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/rudra496/codevista/actions\"\u003e\u003cimg src=\"https://img.shields.io/badge/Tests-190%20passing-brightgreen\" alt=\"Tests\"\u003e\u003c/a\u003e\n  \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/Coverage-coming%20soon-yellow\" alt=\"Coverage\"\u003e\u003c/a\u003e\n  \u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/Languages-65%2B-blue\" alt=\"Languages\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/rudra496/codevista/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/rudra496/codevista?style=social\" alt=\"Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/rudra496/codevista/network/members\"\u003e\u003cimg src=\"https://img.shields.io/github/forks/rudra496/codevista?style=social\" alt=\"Forks\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/rudra496/codevista/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/rudra496/codevista\" alt=\"Issues\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cpre\u003e\n ██████╗ ██████╗ ███╗   ██╗ ██████╗ ███████╗██╗ ██████╗ ██╗  ██╗████████╗\n██╔═══██╗██╔══██╗████╗  ██║██╔════╝ ██╔════╝██║██╔════╝ ██║  ██║╚══██╔══╝\n██║   ██║██████╔╝██╔██╗ ██║██║  ███╗███████╗██║██║  ███╗███████║   ██║\n██║   ██║██╔══██╗██║╚██╗██║██║   ██║╚════██║██║██║   ██║██╔══██║   ██║\n╚██████╔╝██║  ██║██║ ╚████║╚██████╔╝███████║██║╚██████╔╝██║  ██║   ██║\n ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═══╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝  ╚═╝   ╚═╝\n  \u003c/pre\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003e\u003cstrong\u003eCodeVista — Code Analysis \u0026 Security Scanner\u003c/strong\u003e\u003c/h3\u003e\n\u003ch4 align=\"center\"\u003eDeep analytics for your code — a powerful static analysis tool\u003c/h4\u003e\n\u003cp align=\"center\"\u003e\n  Beautiful interactive codebase visualizations — single HTML, zero dependencies.\n\u003c/p\u003e\n\n---\n\n## ✨ What is CodeVista?\n\nCodeVista 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.\n\n![CodeVista Demo](https://img.shields.io/badge/🎬_Demo_Screenshot-Coming_Soon-8b5cf6?style=for-the-badge)\n\n## 🚀 Quick Start\n\n```bash\npip install codevista\ncodevista analyze ./my-project/\n```\n\nThat's it. Open `report.html` in any browser. No server needed.\n\n## 📦 Installation\n\n```bash\npip install codevista\n```\n\nZero external dependencies — pure Python stdlib.\n\n## 🎯 Commands\n\n| Command | Description |\n|---------|-------------|\n| `codevista analyze ./project/` | Full analysis with all features |\n| `codevista analyze ./project/ -o report.html` | Custom output path |\n| `codevista analyze ./project/ --no-git` | Skip git analysis |\n| `codevista analyze ./project/ --depth 3` | Limit directory depth |\n| `codevista quick ./project/` | Fast analysis (~3 seconds) |\n| `codevista serve ./project/ --port 8080` | Serve report on HTTP server |\n| `codevista compare ./v1/ ./v2/` | Compare two codebases |\n| `codevista watch ./project/` | Re-analyze on file changes |\n| `codevista smells ./project/` | Detect code smells and anti-patterns |\n| `codevista architecture ./project/` | Detect architecture patterns |\n| `codevista code-age ./project/` | Analyze file age, churn, and risk |\n| `codevista export ./project/ -f sarif` | Export as SARIF for CI |\n| `codevista export ./project/ --all` | Export to all formats |\n| `codevista health ./project/` | Health score only |\n| `codevista security ./project/` | Security scan only |\n| `codevista deps ./project/` | Dependency analysis |\n| `codevista git-stats ./project/` | Git repository statistics |\n| `codevista languages ./project/` | Language distribution breakdown |\n| `codevista complexity ./project/` | Complexity analysis and top functions |\n| `codevista snapshot ./project/` | Save analysis snapshot for trend tracking |\n| `codevista trends ./project/` | Show project health trends over time |\n| `codevista diff-snapshots ./project/ 1 2` | Compare two snapshots |\n| `codevista team ./project/` | Team productivity \u0026 collaboration analysis |\n| `codevista ci-output ./project/ -f sarif` | CI/CD output (SARIF, Checkstyle, etc.) |\n| `codevista decay ./project/` | Architectural decay analysis |\n| `codevista dna ./project/` | Generate CodeDNA fingerprint |\n| `codevista lint ./project/` | Language-specific lint rules |\n\n## 📊 What It Analyzes\n\n### 🏗️ Architecture Map\n- File dependency graph — who imports whom\n- Interactive directory tree with line counts\n- Module cluster detection\n\n### 📈 Code Metrics\n- Lines of code per file (interactive bar chart)\n- Cyclomatic complexity (hot spot detection)\n- Code duplication detection (hash-based)\n- Comment coverage tracking\n- File size distribution\n\n### 🧩 Technology Detection\n- Language detection (65+ languages)\n- Framework detection (React, Django, Flask, Express, etc.)\n- Dependency inventory with versions\n\n### 🏥 Health Score\n- Overall health: 0-100 (composite score)\n- Per-category: readability, complexity, duplication, coverage, security, dependencies\n- Color-coded indicators (green/yellow/red)\n- Specific improvement recommendations\n\n### 🔒 Security Scan\n- Hardcoded secrets (AWS, GitHub, Stripe, API keys, passwords, tokens)\n- Dangerous functions (eval, exec, shell=True, pickle)\n- Private key detection\n- Severity scoring (critical/high/medium/low)\n\n### 👥 Git Insights\n- Contribution heatmap (52-week calendar)\n- Top contributors with commit share\n- Most active files\n- Commit statistics\n\n### 👃 Code Smell Detection\nCodeVista detects **19 categories of code smells** that go beyond typical linters:\n\n| Smell | Description |\n|-------|-------------|\n| **God Classes** | Classes with too many methods/fields/responsibilities |\n| **Long Parameter Lists** | Functions with too many params, especially with `=None` |\n| **Feature Envy** | Methods using another class's data more than their own |\n| **Divergent Change** | Classes modified for multiple unrelated reasons |\n| **Shotgun Surgery** | Single logical change requiring edits across many files |\n| **Parallel Inheritance** | Adding a subclass of A always requires subclassing B |\n| **Speculative Generality** | Unused abstractions, abstract methods never overridden |\n| **Temporary Fields** | Instance variables set only in certain methods |\n| **Message Chains** | Long dot chains: `a.b.c.d.e.f` |\n| **Middle Man** | Classes that only delegate to another class |\n| **Comment Smells** | Comments describing WHAT code does, not WHY |\n| **Dead Code** | Variables assigned but never read, functions never called |\n| **Magic Numbers** | Unnamed numeric literals scattered in code |\n| **Copy-Paste Code** | Near-duplicate blocks within and across files |\n| **Missing Error Handling** | I/O operations without try/catch or error checks |\n| **Inconsistent Naming** | Mixing camelCase and snake_case conventions |\n| **Boolean Parameters** | Flags indicating method should be split |\n| **isinstance Chains** | Type checking chains suggesting missing polymorphism |\n\nEach smell comes with severity, location, and **actionable remediation advice**.\n\n```bash\ncodevista smells ./my-project/\n```\n\n### 🏗️ Architecture Pattern Detection\nAutomatically identifies architectural patterns from project structure and code:\n\n- **MVC / MVVM / MVP** — UI patterns\n- **Layered Architecture** — presentation, business, data layers\n- **Clean Architecture** — entities, use cases, controllers, adapters\n- **Hexagonal** — ports \u0026 adapters pattern\n- **Repository Pattern** — data access mediation\n- **Service Layer** — application boundary with coordinating operations\n- **CQRS** — command/query separation\n- **Event-Driven** — event publishers, subscribers, handlers\n- **Microservices** — independent service architecture\n- **Singleton / Factory / Strategy / Observer / Decorator** — design patterns\n- **Dependency Injection** — DI framework and manual injection\n\nIncludes architecture quality scoring (organization, coupling, modularity, balance) and text-based architecture diagrams.\n\n```bash\ncodevista architecture ./my-project/\n```\n\n### 📅 Code Age \u0026 Risk Analysis\nTrack file age, change frequency, and identify files most likely to have bugs:\n\n| Category | Description |\n|----------|-------------|\n| 🔥 **Hot** | Changed in the last 7 days |\n| 🌤️ **Warm** | Changed in the last 30 days |\n| ❄️ **Cold** | Changed 30-365 days ago |\n| 🧊 **Cold Stable** | Old but few changes (stable) |\n| 💀 **Dead** | Unchanged for \u003e1 year |\n\n**Risk Analysis** correlates age × complexity × churn to identify the files most likely to contain bugs:\n- Files with high age, high complexity, and high change frequency get the highest risk scores\n- Statistical correlation analysis between age, complexity, and churn\n- Actionable recommendations for high-risk files\n\n```bash\ncodevista code-age ./my-project/\n```\n\n## 📈 Trend Analysis\n\nTrack code quality over time with snapshots and trend visualization.\n\n### How It Works\n\n1. **Save snapshots** after each analysis run\n2. **Compare snapshots** to see how your codebase evolves\n3. **Get alerted** when metrics cross critical thresholds\n4. **Track technical debt** ratio over time\n\n```bash\n# Save a snapshot of the current state\ncodevista snapshot ./my-project/\n\n# Save with a label\ncodevista snapshot ./my-project/ --label \"before-refactor\"\n\n# View trends\ncodevista trends ./my-project/\n\n# Compare two specific snapshots\ncodevista diff-snapshots ./my-project/ 1 2\n```\n\n### ASCII Timeline Example\n\n```\n  📈 Health Score Timeline\n  100 ┤████████████████████\n      │████████████████████\n      │████████████████████\n      │████████████████████\n      │████████████████████\n      │████████████████████\n      │████████████████████\n      │████████████████████\n      │████████████████████\n      │████████████████████\n      │████████████████████\n      │████████████████████\n    0 ┤─────────────────────\n  Current: 78/100 ↑\n```\n\n### Features\n\n- **Trend arrows**: ↑ improving, ↓ degrading, → stable\n- **Threshold alerts**: Get warned when health drops or security issues spike\n- **Technical debt tracking**: Monitor debt ratio over time\n- **Review cadence**: Suggests optimal review frequency based on change rate\n- **Code age distribution**: Track how your codebase ages\n\n## 👥 Team Metrics\n\nAnalyze developer productivity and collaboration patterns.\n\n```bash\ncodevista team ./my-project/\n```\n\n### What It Analyzes\n\n| Metric | Description |\n|--------|-------------|\n| **Lines per Author** | Added/removed/net per developer |\n| **Commit Frequency** | Commits per day, burst vs steady patterns |\n| **Files Touched** | Unique files per author |\n| **Bus Factor** | People needed to understand 50% of code |\n| **Code Ownership** | Pie chart data showing contribution share |\n| **Review Coverage** | Estimate from commit messages |\n| **Pair Programming** | Co-authored commit detection |\n| **Time Zone Distribution** | When the team commits |\n| **Onboarding Complexity** | How hard for a new contributor to ramp up |\n\n### 🏚️ Architectural Decay Detector\nTrack how your codebase degrades over time using git history. Detects growing complexity, increasing coupling, code duplication, and predicts future state.\n\n```bash\ncodevista decay ./my-project/\n```\n\n**What it analyzes:**\n\n| Metric | Description |\n|--------|-------------|\n| **Complexity Growth** | How cyclomatic complexity changes across commits |\n| **Coupling Growth** | How module interdependencies grow over time |\n| **Duplication Growth** | Code duplication ratio changes |\n| **Debt Velocity** | Technical debt accumulation rate per week |\n| **Decay Hotspots** | Files degrading fastest (ranked by decay score) |\n| **Predictions** | Linear regression forecasts for 12 weeks ahead |\n| **Inflection Points** | Key commits where quality shifted significantly |\n| **Interventions** | Prioritized refactoring recommendations |\n\n**ASCII Report Example:**\n\n```\n  ╔═══════════════════════════════════════════════════════════╗\n  ║          🏚️  ARCHITECTURAL DECAY ANALYSIS                 ║\n  ╠═══════════════════════════════════════════════════════════╣\n  ║  Repository: my-project                                    ║\n  ║  Is Git:     Yes                                          ║\n  ╚═══════════════════════════════════════════════════════════╝\n\n  📈 COMPLEXITY GROWTH\n  ────────────────────────────────────────────────────────\n    2026-01-15  avg CC:   8.2  [████░░░░░░░░░░░░░░░░░░]\n    2026-02-01  avg CC:   9.5  [█████░░░░░░░░░░░░░░░░░]\n    2026-02-15  avg CC:  11.3  [██████░░░░░░░░░░░░░░░░]\n    2026-03-01  avg CC:  13.8  [████████░░░░░░░░░░░░░░]\n    Trend: 📈 GROWING\n\n  🔥 DECAY HOTSPOTS (top 10)\n  ────────────────────────────────────────────────────────\n    🔴  1.  45.2 [████████████████████░░] src/core/engine.py\n    🟠  2.  28.7 [█████████████░░░░░░░░░] src/api/handler.js\n    🟡  3.  12.4 [██████░░░░░░░░░░░░░░░░] src/utils/parser.py\n\n  🔮 PREDICTIONS (12 weeks forward)\n  ────────────────────────────────────────────────────────\n    Avg complexity:   18.5\n    Debt lines:       2450\n    Confidence:       moderate\n\n  💡 RECOMMENDED INTERVENTIONS\n  ────────────────────────────────────────────────────────\n    🔴 [CRITICAL] src/core/engine.py\n       Action: refactor\n       break into smaller functions/modules; stabilize — changes are volatile\n```\n\n### 🧬 CodeDNA Fingerprinter\nCreate unique DNA fingerprints for codebases — identify projects, detect forks, spot cloned code.\n\n```bash\n# Generate fingerprint with ASCII barcode\ncodevista dna ./my-project/\n\n# Save fingerprint for later comparison\ncodevista dna ./my-project/ --save fingerprint.json\n\n# Compare two projects\ncodevista dna ./project-a/ --compare fingerprint.json\n\n# Detect cloned files\ncodevista dna ./my-project/ --clones\n```\n\n**What it captures:**\n\n| Component | Description |\n|-----------|-------------|\n| **Hash Patterns** | SHA-based profile of code structure patterns |\n| **Language Distribution** | Language mix signature |\n| **Complexity Distribution** | Complexity bucket fingerprint |\n| **Dependency Topology** | Import graph topology hash |\n| **Naming Conventions** | camelCase/snake_case/PascalCase ratios |\n| **Comment Density** | Documentation coverage fingerprint |\n| **Function Size** | Function size distribution |\n| **File Size** | File size distribution |\n| **Clone Detection** | Exact and near-clone detection via block hashing |\n\n**Barcode Example:**\n\n```\n  ┌─────────────────────────────────────────────────────┐\n  │              🧬 CodeDNA Barcode                     │\n  ├─────────────────────────────────────────────────────┤\n  │  ▓▓▒▒░░████▓▓▒░████░▒▒▓▓████░░▒▒▓▓░░████▒▒░░████│\n  │  ██▓▓░░▒▒████░░▓▓██▒▒░░▓▓▒▒████░░▓▓██▒▒░░▓▓▒▒░░░│\n  │  ░░▒▒██▓▓░░▒▒████░░▓▓██▒▒████░░▓▓░░▒▒████░░▓▓██▓▓│\n  │  ░░████░░▓▓▒▒██▓▓░░▒▒████░░▓▓░░████░░▒▒██▓▓░░▒▒░░│\n  ├─────────────────────────────────────────────────────┤\n  │  Project: my-project                    files:   42│\n  │  Languages: Python 45.2%, JS 30.1%, HTML 15.3%    │\n  │  Naming: snake_case                                   │\n  │  Hash: a3f7c2b1e9d04586                              │\n  └─────────────────────────────────────────────────────┘\n\n  Compact: [█████░░████░░░░████████░░██░░░░████░░████░░]\n  a3f7c2b1e9d045867f2a9c3d1e8b4f6a...\n```\n\n## 📏 Lint Rules\n\nCodeVista includes **36 language-specific lint rules** across 5 languages, enforcing popular style guides:\n\n```bash\n# Lint entire project\ncodevista lint ./my-project/\n\n# Lint specific file\ncodevista lint ./src/app.py\n\n# Filter by language\ncodevista lint ./project/ -l python -l javascript\n\n# Filter by severity\ncodevista lint ./project/ -s error -s warning\n\n# Include/exclude specific rules\ncodevista lint ./project/ --include-rule PY001 --exclude-rule PY010\n\n# JSON output for CI\ncodevista lint ./project/ --json\n\n# List all available rules\ncodevista lint --rules\n```\n\n### Supported Languages \u0026 Rules\n\n| Language | Style Guide | Rules | Severity |\n|----------|------------|-------|----------|\n| **Python** | PEP 8 / Black | PY001–PY011 (11 rules) | error/warning/info |\n| **JavaScript** | Airbnb | JS001–JS009 (9 rules) | error/warning/info |\n| **TypeScript** | Airbnb (shared) | JS001–JS009 (9 rules) | error/warning/info |\n| **Go** | gofmt | GO001–GO005 (5 rules) | error/warning |\n| **Rust** | clippy-lite | RS001–RS005 (5 rules) | error/warning/info |\n| **Java** | Google Style | JA001–JA006 (6 rules) | error/warning/info |\n\n### Python (PEP 8 / Black)\n\n| Rule | Severity | Description |\n|------|----------|-------------|\n| PY001 | warning | Max line length (88 for Black) |\n| PY002 | error | No wildcard imports (`from x import *`) |\n| PY003 | info | Import order: stdlib → third-party → local, alphabetized |\n| PY004 | info | Two blank lines before top-level definitions |\n| PY005 | info | One blank line before methods |\n| PY006 | info | Spaces around operators |\n| PY007 | info | Prefer f-strings over `.format()` / %-formatting |\n| PY008 | info | Type hints on public functions |\n| PY009 | warning | Naming conventions (snake_case, PascalCase, UPPER_CASE) |\n| PY010 | info | No trailing whitespace |\n| PY011 | warning | No multiple statements on one line |\n\n### JavaScript/TypeScript (Airbnb)\n\n| Rule | Severity | Description |\n|------|----------|-------------|\n| JS001 | error | No `var` — use `const` or `let` |\n| JS002 | info | Prefer template literals over string concatenation |\n| JS003 | info | Use arrow functions for callbacks |\n| JS004 | warning | Use `===` instead of `==` |\n| JS005 | warning | 2-space indentation (no tabs) |\n| JS006 | warning | No unused variables |\n| JS007 | info | Prefer destructuring for repeated property access |\n| JS008 | info | Use object shorthand syntax |\n| JS009 | info | Trailing comma conventions |\n\n### Go (gofmt)\n\n| Rule | Severity | Description |\n|------|----------|-------------|\n| GO001 | error | Tab indentation required |\n| GO002 | error | No unused imports |\n| GO003 | warning | Exported names must have doc comment |\n| GO004 | error | Error handling — do not discard errors |\n| GO005 | warning | No variable shadowing in inner scopes |\n\n### Rust (clippy-lite)\n\n| Rule | Severity | Description |\n|------|----------|-------------|\n| RS001 | error | No `.unwrap()` in production code |\n| RS002 | warning | Use Option/Result properly (no `is_some().unwrap()`) |\n| RS003 | error | No mutable statics |\n| RS004 | info | Lint suppressions should be avoided |\n| RS005 | error | Naming conventions (snake_case functions/vars) |\n\n### Java (Google Style)\n\n| Rule | Severity | Description |\n|------|----------|-------------|\n| JA001 | error | 4-space indentation (no tabs) |\n| JA002 | warning | Javadoc on public methods |\n| JA003 | error | No wildcard imports |\n| JA004 | error | Braces required for control statements |\n| JA005 | warning | Catch specific exceptions |\n| JA006 | info | Use logger instead of `System.out.print` |\n\n### Exit Codes\n\n| Code | Meaning |\n|------|---------|\n| `0` | Clean — no violations |\n| `2` | Errors found |\n\n## 📤 Export Formats\n\nExport analysis results in multiple formats for different use cases:\n\n| Format | Use Case | Command |\n|--------|----------|---------|\n| **HTML** | Interactive report in browser | `codevista export . -f html` |\n| **JSON** | Programmatic access, APIs | `codevista export . -f json` |\n| **Markdown** | Documentation, READMEs, wikis | `codevista export . -f markdown` |\n| **SARIF** | GitHub Code Scanning, CI/CD | `codevista export . -f sarif` |\n| **CSV** | Spreadsheets, data analysis | `codevista export . -f csv` |\n| **YAML** | CODE_METRICS format | `codevista export . -f yaml` |\n| **PDF** | Printable reports | `codevista export . -f pdf` |\n| **All formats** | Everything at once | `codevista export . --all` |\n\n```bash\n# CI integration with GitHub Code Scanning\ncodevista export ./project/ -f sarif -o results.sarif.json\n\n# Export everything\ncodevista export ./project/ -o ./reports/codevista --all\n```\n\n## 🔌 CI/CD Integration\n\nCodeVista provides dedicated CI output formats with threshold-based pass/fail.\n\n### Supported Formats\n\n| Format | Platform | Command |\n|--------|----------|---------|\n| **SARIF** | GitHub Code Scanning | `codevista ci-output . -f sarif` |\n| **GitLab Code Quality** | GitLab | `codevista ci-output . -f gitlab` |\n| **Checkstyle XML** | Jenkins, GitHub Actions | `codevista ci-output . -f checkstyle` |\n| **JUnit XML** | Any CI with JUnit support | `codevista ci-output . -f junit` |\n| **Markdown** | PR comments | `codevista ci-output . -f markdown` |\n| **Terminal** | Quick terminal output | `codevista ci-output . -f terminal` |\n\n### Exit Codes\n\n| Code | Meaning | Description |\n|------|---------|-------------|\n| `0` | Clean | All thresholds passed |\n| `1` | Warnings | Medium-severity threshold violations |\n| `2` | Errors | High-severity violations (health, complexity) |\n| `3` | Critical | Critical security issues or severe degradation |\n\n### Threshold Configuration\n\nCreate `.codevista.json` in your project root:\n\n```json\n{\n  \"max_security_critical\": 0,\n  \"max_security_high\": 0,\n  \"max_security_medium\": 5,\n  \"max_security_total\": 10,\n  \"max_avg_complexity\": 10,\n  \"max_technical_debt_ratio\": 0.25,\n  \"min_health_score\": 60,\n  \"max_duplicates\": 10,\n  \"max_circular_deps\": 0,\n  \"max_todo_count\": 50\n}\n```\n\n```bash\n# Run with exit codes (CI will fail if thresholds violated)\ncodevista ci-output ./project/ -f sarif -o results.sarif.json\necho \"Exit code: $?\"  # 0=clean, 1=warnings, 2=errors, 3=critical\n```\n\n## 🐳 Docker\n\n```bash\n# Build\ndocker build -t codevista .\n\n# Analyze a project\ndocker run --rm -v $(pwd):/workspace codevista analyze /workspace\n\n# Use docker-compose\ndocker-compose up\n```\n\nThe Docker image uses multi-stage builds for minimal size, runs as non-root, and includes `wkhtmltopdf` for PDF export.\n\n## 🎨 Report Features\n\n- **Single HTML file** — share anywhere, works offline forever\n- **Dark/light mode** toggle\n- **Interactive tables** — sort by any column, filter by language, search\n- **Inline SVG charts** — no external JS libraries\n- **Collapsible sections**\n- **Print-friendly**\n- **Responsive** — works on mobile\n\n## 🏆 Comparison\n\n| Feature | CodeVista | SonarQube | CodeClimate | lizard |\n|---------|-----------|-----------|-------------|--------|\n| Setup | `pip install` | Docker/Server | SaaS / CLI | `pip install` |\n| Dependencies | **Zero** | Heavy (Java + DB) | Docker (CLI) | None |\n| Output | **Single HTML** | Web UI | Web UI | CLI text |\n| Offline | ✅ | ❌ | ❌ | ✅ |\n| Security scan | ✅ 60+ patterns | ✅ extensive | ✅ plugins | ❌ |\n| Git analysis | ✅ | ✅ | ✅ | ❌ |\n| Visual charts | ✅ inline SVG | ✅ | ✅ | ❌ |\n| Code smell detection | ✅ 19 categories | ✅ extensive | ✅ maintainability | ❌ |\n| Architecture patterns | ✅ **12+ patterns** | ❌ | ❌ | ❌ |\n| Code age analysis | ✅ | Partial | ❌ | ❌ |\n| SARIF export | ✅ | ✅ | ❌ | ❌ |\n| Cost | **Free** | Free/Paid | Paid | Free |\n| Server needed | **No** | Yes | Yes | No |\n\n\u003e **Note:** SonarQube and CodeClimate are mature enterprise tools with deeper language coverage and IDE integrations. CodeVista differentiates by being zero-setup, offline-capable, and producing shareable single-file HTML reports — ideal for quick audits, CI pipelines, and open-source projects.\n\n## 💎 What Makes CodeVista Unique\n\n1. **Zero dependencies** — pure Python stdlib, no pip install headaches\n2. **Single HTML output** — share one file, works offline forever, no server\n3. **Code smell detection** — 19 smell categories with AST-level Python analysis\n4. **Architecture pattern detection** — identifies 12+ patterns from structure + code\n5. **Code age × risk correlation** — statistical analysis of age, complexity, and churn\n6. **Multi-format export** — HTML, JSON, Markdown, SARIF, CSV, YAML, PDF\n7. **Docker support** — multi-stage build, non-root user, PDF-ready\n8. **Beautiful design** — dark mode, glassmorphism, inline SVG charts, animations\n9. **Works on any codebase** — 65+ languages, no configuration needed\n10. **CI/CD ready** — SARIF export for GitHub Code Scanning integration\n\n## 🏗️ Architecture\n\n```\ncodevista/\n├── cli.py            # CLI interface (argparse)\n├── analyzer.py       # Core analysis engine\n├── report.py         # HTML report generator\n├── metrics.py        # Health scores \u0026 recommendations\n├── smells.py         # Code smell detection (19 categories)\n├── architecture.py   # Architecture pattern detector\n├── code_age.py       # Code age \u0026 risk analysis\n├── export.py         # Multi-format export (HTML/JSON/MD/SARIF/CSV/YAML/PDF)\n├── security.py       # Secret/vulnerability scanning\n├── dependencies.py   # Dependency parsing \u0026 analysis\n├── git_analysis.py   # Git stats extraction\n├── trends.py         # Trend analysis \u0026 snapshot tracking\n├── team.py           # Team metrics \u0026 collaboration analysis\n├── integrations.py   # CI/CD output (SARIF, Checkstyle, JUnit, GitLab)\n├── decay.py          # Architectural decay detector\n├── codedna.py        # CodeDNA fingerprinter\n├── lint_rules.py     # Language-specific lint rules (PEP 8, Airbnb, gofmt, clippy, Google)\n├── languages.py      # Language definitions \u0026 colors\n├── config.py         # Configuration \u0026 ignore patterns\n├── utils.py          # Utilities \u0026 color schemes\n└── templates/        # HTML templates\n```\n\n## 🛠️ Tech Stack\n\n- **Python 3.9+** (stdlib only)\n- **Inline SVG** for all charts\n- **CSS custom properties** for theming\n- **Vanilla JavaScript** for interactivity\n- **AST parsing** for deep code analysis (Python)\n\n## 🤝 Contributing\n\n1. Fork it\n2. Create your feature branch (`git checkout -b feature/amazing`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing`)\n5. Open a Pull Request\n\n## ⭐ Star History\n\n\u003ca href=\"https://star-history.com/#rudra496/codevista\u0026Date\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=rudra496/codevista\u0026type=Date\u0026theme=dark\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=rudra496/codevista\u0026type=Date\" /\u003e\n   \u003cimg alt=\"Star History\" src=\"https://api.star-history.com/svg?repos=rudra496/codevista\u0026type=Date\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n## 📄 License\n\nMIT © 2026 — see [LICENSE](LICENSE)\n\n## 💡 Why CodeVista?\n\n- **Zero dependencies** — Pure Python, no Node.js, no databases, no external tools\n- **65+ languages** — Works with virtually any codebase out of the box\n- **Stunning HTML reports** — Beautiful, interactive reports you'll actually want to read\n- **Security-first** — 60+ secret detection patterns including Stripe, AWS, GitHub tokens\n- **Unique features** — CodeDNA fingerprinting and architectural decay detection (no other tool has this)\n- **CI/CD ready** — SARIF, Checkstyle, and JUnit XML output formats\n\n## 👥 Use Cases\n\n| Use Case | How |\n|----------|-----|\n| **Individual Developers** | Get a health score for your project, find security issues |\n| **Engineering Teams** | Track code quality trends, compare team member metrics |\n| **CI/CD Pipelines** | Generate SARIF reports for GitHub Code Scanning |\n| **Open Source Maintainers** | Analyze PR quality, detect code smells automatically |\n| **Code Reviews** | Get automated feedback on architecture, complexity, and duplication |\n| **Education** | Teach code quality concepts with visual, interactive reports |\n\n## 🔗 Other Projects\n\nCheck out more open-source tools:\n\n| Project | Description | Stars |\n|---------|-------------|-------|\n| [🛡️ AI Code Trust Validator](https://github.com/rudra496/ai-code-trust-validator) | Detect security flaws, hallucinations \u0026 logic errors in AI-generated code | ![Stars](https://img.shields.io/github/stars/rudra496/ai-code-trust-validator?style=social) |\n| [🤖 TermMind](https://github.com/rudra496/termmind) | AI-powered terminal assistant with 7 providers | ![Stars](https://img.shields.io/github/stars/rudra496/termmind?style=social) |\n\n---\n\n## 🌐 Connect\n\n- [![GitHub](https://img.shields.io/badge/GitHub-rudra496-181717?logo=github)](https://github.com/rudra496)\n- [![LinkedIn](https://img.shields.io/badge/LinkedIn-rudrasarker-0A66C2?logo=linkedin)](https://www.linkedin.com/in/rudrasarker)\n- [![X/Twitter](https://img.shields.io/badge/X-@Rudra496-000000?logo=x)](https://x.com/Rudra496)\n- [![Facebook](https://img.shields.io/badge/Facebook-rudrasarker130-1877F2?logo=facebook)](https://www.facebook.com/rudrasarker130)\n- [![YouTube](https://img.shields.io/badge/YouTube-@rudrasarker9732-FF0000?logo=youtube)](https://youtube.com/@rudrasarker9732)\n- [![Dev.to](https://img.shields.io/badge/Dev.to-rudra__sarker-000000?logo=devdotto)](https://dev.to/rudra_sarker)\n- [![ResearchGate](https://img.shields.io/badge/ResearchGate-Rudra_Sarker-00CCBB?logo=researchgate)](https://www.researchgate.net/profile/Rudra-Sarker-3)\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eBuilt with ❤️ by \u003ca href=\"https://github.com/rudra496\"\u003erudra496\u003c/a\u003e · \u003ca href=\"https://www.linkedin.com/in/rudrasarker\"\u003eLinkedIn\u003c/a\u003e\u003c/strong\u003e\u003cbr\u003e\n  \u003csub\u003eMIT License · Free \u0026 Open Source Forever\u003c/sub\u003e\n\u003c/p\u003e\n\n---\n\n## More Open Source Projects\n\n| Project | Stars | Description |\n|---------|-------|-------------|\n| [StealthHumanizer](https://github.com/rudra496/StealthHumanizer) | ![Stars](https://img.shields.io/github/stars/rudra496/StealthHumanizer?style=social) | Free AI text humanizer — 13 providers, no login |\n| [EdgeBrain](https://github.com/rudra496/EdgeBrain) | ![Stars](https://img.shields.io/github/stars/rudra496/EdgeBrain?style=social) | Edge AI inference — sub-100ms, no cloud |\n| [DevRoadmaps](https://github.com/rudra496/devroadmaps) | ![Stars](https://img.shields.io/github/stars/rudra496/devroadmaps?style=social) | 17 career paths, 1700+ free resources |\n| [Nexus Agent](https://github.com/rudra496/nexus-agent) | ![Stars](https://img.shields.io/github/stars/rudra496/nexus-agent?style=social) | Self-evolving local AI agent framework |\n| [MindWell](https://github.com/rudra496/mindwell) | ![Stars](https://img.shields.io/github/stars/rudra496/mindwell?style=social) | Free mental health support platform |\n| [ScienceLab 3D](https://github.com/rudra496/sciencelab3d) | ![Stars](https://img.shields.io/github/stars/rudra496/sciencelab3d?style=social) | 40+ virtual STEM experiments |\n| [SightlineAI](https://github.com/rudra496/sightlineai) | ![Stars](https://img.shields.io/github/stars/rudra496/sightlineai?style=social) | AI smart glasses for the blind |\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**[⭐ Star this repo](../../stargazers) · [🍴 Fork it](../../fork) · [👤 Follow @rudra496](https://github.com/rudra496)**\n\n\u003c/div\u003e\n\n## Connect\n\n- [![GitHub](https://img.shields.io/badge/GitHub-rudra496-181717?logo=github)](https://github.com/rudra496)\n- [![LinkedIn](https://img.shields.io/badge/LinkedIn-rudrasarker-0A66C2?logo=linkedin)](https://www.linkedin.com/in/rudrasarker)\n- [![X/Twitter](https://img.shields.io/badge/X-@Rudra496-000000?logo=x)](https://x.com/Rudra496)\n- [![YouTube](https://img.shields.io/badge/YouTube-@rudrasarker9732-FF0000?logo=youtube)](https://youtube.com/@rudrasarker9732)\n- [![Dev.to](https://img.shields.io/badge/Dev.to-rudra__sarker-000000?logo=devdotto)](https://dev.to/rudra_sarker)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frudra496%2Fcodevista","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frudra496%2Fcodevista","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frudra496%2Fcodevista/lists"}