Metadata-Version: 2.4
Name: gnost
Version: 0.3.0
Summary: GNOST — Codebase Knowledge
Author-email: Mohd Zain <zainmohd1998@gmail.com>
License: MIT License
        
        Copyright (c) 2025 Mohd Zain
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Documentation, https://gnost.readthedocs.io
Project-URL: Source, https://github.com/mohdzain98/gnost
Project-URL: Issues, https://github.com/mohdzain98/gnost/issues
Project-URL: Changelog, https://github.com/mohdzain98/gnost/blob/main/CHANGELOG.md
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: rich
Requires-Dist: tqdm
Requires-Dist: termcolor
Requires-Dist: bandit
Requires-Dist: radon
Requires-Dist: mypy
Requires-Dist: ruff
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Dynamic: license-file

# GNOST — Codebase Knowledge
![PyPI](https://img.shields.io/pypi/v/gnost)
![Python](https://img.shields.io/pypi/pyversions/gnost)
[![Tests](https://github.com/mohdzain98/gnost/actions/workflows/tests.yml/badge.svg)](https://github.com/mohdzain98/gnost/actions/workflows/tests.yml)
![License](https://img.shields.io/pypi/l/gnost)
![Downloads](https://static.pepy.tech/badge/gnost)

GNOST is a lightweight static analysis CLI tool that helps developers understand unfamiliar codebases in minutes.<br>
It automatically detects entry points, maps execution flow, identifies critical files, and generates onboarding documentation and Mermaid diagrams.  

It also performs quality analysis (`gnost analyze`) for maintainability, robustness, observability, and readability to provide a fast quality score and prioritized findings.

Perfect for first-day onboarding, audits, and codebase exploration.

## 🚀 Why GNOST?
- Quickly build a mental model of a new codebase
- See how execution flows without reading everything
- Generate onboarding docs and Mermaid diagrams with one command

## 🧠 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**
- Runs code **quality analysis** for maintainability, robustness, observability, and readability

## Install

```bash
pip install gnost
```

Run the onboarding scan:

```bash
gnost onboard .
```

## Minimal usage examples

```bash
gnost summary .
gnost stats .
```

## New in 0.3.0 (Analysis)

```bash
gnost analyze .
gnost analyze . --parallel -o
gnost open report
```

### Analysis report preview

![GNOST analysis report](assets/report_example.png)

### Analysis scope

- `gnost analyze` currently supports Python codebases only.
- JavaScript/TypeScript/Java analysis is planned for future releases.

## 🌍 Supported Languages
![Python](https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=white)
![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black)
![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white)
![Java](https://img.shields.io/badge/Java-ED8B00?style=for-the-badge&logo=openjdk&logoColor=white)

## 🎯 Who Is This For?
- Developers joining a new team
- Engineers reviewing legacy code
- Startup founders auditing repos
- Tech leads onboarding new hires
- Open-source contributors

## 📊 Example Use Cases
- First-day onboarding automation
- Codebase documentation generation
- Architecture visualization
- Legacy system analysis
- Rapid technical due diligence


## 📚 Documentation:
[![Docs](https://img.shields.io/readthedocs/gnost?label=docs)](https://gnost.readthedocs.io)

## 📜 Changelog:
[![Changelog](https://img.shields.io/badge/changelog-CHANGELOG.md-blue)](./CHANGELOG.md)

## 🧩 Philosophy
GNOST prioritizes:
- Fast insights over deep AST complexity
- Practical developer onboarding
- Clear summaries over raw metrics
- Zero-config usage

It is designed to be simple, fast, and immediately useful.

## License

MIT License
