Skip to main content

Dissect any codebase in seconds

Project description

Gitopsy — Dissect any codebase in seconds

Gitopsy PyPI License: MIT

One command. Instant codebase intelligence.

Gitopsy analyzes any repository and produces a self-contained HTML report covering architecture, tech debt, onboarding, dependencies, conventions, APIs, security surface, and setup — everything you need to understand an unfamiliar codebase.

Install

pip install gitopsy

Usage

gitopsy .                          # Analyze current directory
gitopsy /path/to/repo              # Analyze any repo
gitopsy --output report.html .     # Custom output path
gitopsy --analyzers arch,debt .    # Run specific analyzers
gitopsy --json .                   # Output raw JSON
gitopsy --badge .                  # Also write a grade SVG badge
gitopsy --save-json .              # Save JSON snapshot alongside HTML

Subcommands

# Generate a grade badge SVG
gitopsy badge .
gitopsy badge /path/to/repo --output my-badge.svg

# Compare two JSON snapshots
gitopsy --save-json .              # capture snapshot.json
# ... make changes, then re-analyze ...
gitopsy --save-json --output new.html .
gitopsy diff gitopsy-report.json new.json --output diff-report.html

What's in the report?

Tab What it tells you
Architecture Project type, framework, entry points, dependency graph
Tech Debt Score (A-F), hotspots, top 5 recommendations
Onboarding Summary, key files, setup steps, contributors, gotchas
Dependencies All deps with versions, licenses, outdated flags
Conventions Naming, formatting, import style, consistency score
APIs All HTTP routes, CLI commands, public exports
Security Secrets, SQL injection, CORS, auth patterns, risk level
Setup Prerequisites, install steps, env vars, run commands

GitHub Action

- uses: UJameel/gitopsy@v1
  with:
    path: '.'
    output: 'gitopsy-report.html'

Full example workflow:

name: Gitopsy Analysis
on: [push]
jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.11'
      - uses: UJameel/gitopsy@v1
        with:
          path: '.'
          output: 'gitopsy-report.html'
          upload-artifact: 'true'

The action outputs report-path and overall-grade for use in downstream steps.

Python API

from gitopsy.orchestrator import analyze
from gitopsy.report.renderer import render
from gitopsy.report.badge import generate_badge

report = analyze("/path/to/repo")
render(report, "/tmp/report.html")

# Access structured data
print(report.architecture.framework)   # "flask"
print(report.tech_debt.grade)          # "B"
print(report.tech_debt.overall_score)  # 72

# Generate a badge
svg = generate_badge(report.tech_debt.grade, report.tech_debt.overall_score)

As a Claude Code skill

The skills/gitopsy/ directory ships a Claude Code skill. Copy it to your ~/.claude/skills/ directory and run /gitopsy from any project.

Example reports

Live example reports generated by Gitopsy on popular open-source projects:

Design principles

  • Offline-first — zero mandatory API calls
  • Fast — <30s on a 10,000-file repo
  • Self-contained — single HTML file, no external deps to view
  • Git-optional — works on any directory
  • No AI required — all analysis is deterministic

Development

git clone https://github.com/UJameel/gitopsy
cd gitopsy
pip install -e ".[dev]"
pytest

See CONTRIBUTING.md for how to add new analyzers.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitopsy-0.1.1.tar.gz (68.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitopsy-0.1.1-py3-none-any.whl (62.9 kB view details)

Uploaded Python 3

File details

Details for the file gitopsy-0.1.1.tar.gz.

File metadata

  • Download URL: gitopsy-0.1.1.tar.gz
  • Upload date:
  • Size: 68.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for gitopsy-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b2e5ad216dd70909140d4e2a8362f699801f27f5074cf8dade64919ae5b42058
MD5 ba74776c1555148db657033353a8f82c
BLAKE2b-256 77524a87af4793a593e339a6b1f095599ccd6758d72c46b0bd1be98545e45e4b

See more details on using hashes here.

File details

Details for the file gitopsy-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: gitopsy-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 62.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for gitopsy-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7b41687ac122b6ccf0722681742b4bff334c9388d71786d35d4867efb16ca2a4
MD5 a34d69828d1e619da3dce700f1dee049
BLAKE2b-256 c0d7a06ae157dcd12ec2916869adeafedbac935b818daef0b354296236ac9547

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page