Skip to main content

GNOST — Codebase Knowledge

Project description

GNOST — Codebase Knowledge

PyPI Python License

GNOST helps developers understand unfamiliar codebases by automatically identifying entry points, execution flow, and core logic.

It is designed for first-day onboarding, not just code statistics.


What GNOST Does

  • Detects where execution starts
  • Infers high-level execution flow
  • Identifies hotspot files (most important code)
  • Generates onboarding documentation
  • Produces Mermaid flow diagrams
  • Works across multiple languages

Supported languages:

  • Python
  • JavaScript
  • TypeScript
  • Java

Installation

pip install gnost

Quick Start

gnost onboard .

This will:

  • Print a human-readable onboarding summary
  • Generate ONBOARD.md
  • Generate an execution flow diagram

Usage

gnost summary [path]
gnost stats [path]
gnost folders [path]
gnost files [path] --top 10
gnost onboard [path]

Key Commands

  • summary Show a high-level project summary
  • stats Show detailed language statistics
  • folders Show LOC grouped by folder
  • files Show largest files by LOC
  • onboard Generate onboarding summary and flow diagrams
  • version Display GNOST version

Onboarding & Flow Analysis

  • Generate onboarding documentation:
    gnost onboard .
    
  • Generate only a Mermaid flow diagram:
    gnost onboard . --mermaid
    
    This produces:
    • ONBOARD.md — onboarding guide
    • FLOW.mmd — pure Mermaid flow diagram

Options

  • --include Comma-separated folders to include
  • --exclude Comma-separated folders to exclude
  • --top Number of files to show with files
  • --version Show version and exit
  • --help Show help

examples

gnost summary .
gnost stats .
gnost onboard .
gnost onboard . --mermaid
gnost files src --top 20

Philosophy

GNOST is not a static analyzer or linter.

It focuses on:

  • Mental model generation
  • Execution understanding
  • Developer onboarding

It uses heuristic-based static analysis to stay fast, simple, and language-agnostic.

Roadmap

v0.2.0 (Planned)

  • Hotspot visualization in Mermaid diagrams
  • Standalone gnost hotspots command
  • Improved JavaScript / TypeScript import resolution
  • Better framework awareness (Express, Spring MVC)
  • Optional Tree-sitter based parsing for deeper analysis
  • GitHub Action enhancements (PR comments, annotations)

License

MIT 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

gnost-0.1.2.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

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

gnost-0.1.2-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file gnost-0.1.2.tar.gz.

File metadata

  • Download URL: gnost-0.1.2.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for gnost-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d1597d4e993748309754c086dcc9bbbd7ff284b2941a98d258fac7c7d5dd3843
MD5 0cb77e1d2356669912bdb139ed42d6c6
BLAKE2b-256 b1d2b86e13579a5a23bba1cf403d808daab6ba96307bf781e0e9454f35a86a6f

See more details on using hashes here.

File details

Details for the file gnost-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: gnost-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 26.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for gnost-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ee5f6f99298a48e94a96d4221db3d6eb317ab90e05fe4f67c82e3afa542380cb
MD5 006895a22dc2df855fe691944c7dc9ef
BLAKE2b-256 f4e6991cbd6f2504f94f9302310c9ccd58e5356c1a4e9b61ab7343ed8e7e0cbb

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