Skip to content

An AI-powered documentation generator that uses OpenAI and Gemini models to create high-quality README.md files, model cards, notebooks, tests, and boilerplate, tailored to your project’s code and structure.

License

Notifications You must be signed in to change notification settings

shiwangupadhyay/docify-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docify-AI

PyPI - Version PyPI - Python Version Downloads

An intelligent command-line interface (CLI) that leverages AI to automate documentation, testing, and project scaffolding for local software projects.

Key Features

  • AI-Powered Documentation Generation: Automatically create detailed and domain-specific README.md files for any project.
  • Automated Test Suite Generation: Generate runnable pytest test files covering various scenarios.
  • Dockerfile Generation: Create optimized Dockerfiles for containerizing your applications.
  • GitHub Actions Workflow Generation: Develop YAML configurations for CI/CD pipelines.
  • Project Scaffolding: Bootstrap new Python projects with a predefined structure.
  • Docstring Generation: Automatically add PEP 257–compliant docstrings to Python functions, classes, and modules.
  • Jupyter Notebook Generation: Kickstart data analysis with a starter notebook including data loading, EDA, and model training pipelines.
  • Model Card Generation: Create MODEL_CARD.md for ML/AI projects, detailing model information, intended use, and ethical considerations.
  • Flexible AI Clients: Support for both Google Gemini and OpenAI GPT models.

Installation

Docify-AI is available on PyPI and can be installed using pip:

pip install docify-ai

Usage

The docify command is the entry point to all functionalities.

1. API Key Setup

Before using the tool, you must set your GEMINI_API_KEY or OPENAI_API_KEY as an environment variable. Alternatively, you can provide it directly via the --key argument.

# Example for Linux/macOS
export GEMINI_API_KEY='YOUR_GEMINI_API_KEY'

# Example for OpenAI
export OPENAI_API_KEY='YOUR_OPENAI_API_KEY'

2. CLI Commands & Options

Global Options

These options can be used with any action:

  • --path, -p: Root directory of the project (default: current directory).
  • --output, -o: Custom output file/folder name.
  • --client, -c: AI client to use (openai or gemini, default: gemini).
  • --key, -k: Provide the API key directly, overriding environment variables.
  • --ignore-dirs: Space-separated list of directories to ignore.
  • --ignore-exts: Space-separated list of file extensions to ignore.

Command Examples

Generate README.md (Default Action) Analyzes your project and creates a professional README file.

docify --path /path/to/your/project

Generate Pytest Tests Creates a tests/ directory with pytest-compatible test modules.

docify --test --path /path/to/your/project

Generate a Dockerfile Creates a Dockerfile tailored to your project's needs.

docify --docker --path /path/to/your/project

Generate a GitHub Actions Workflow Creates a .github/workflows/ci.yml file for continuous integration.

docify --gha --path /path/to/your/project

Bootstrap a New Python Project Generates a basic Python project structure from a description.

docify --init "A simple Flask API for managing tasks"

Add Docstrings to a Python File Inserts Google-style docstrings into a specified Python file in-place.

docify --docstring /path/to/your/project/my_module.py

Generate a Jupyter Notebook Creates a starter Jupyter Notebook for data analysis or ML projects.

docify --notebook --path /path/to/your/data_project

Generate a Model Card Creates a MODEL_CARD.md for your AI/ML projects.

docify --model-card --path /path/to/your/ml_project

About

An AI-powered documentation generator that uses OpenAI and Gemini models to create high-quality README.md files, model cards, notebooks, tests, and boilerplate, tailored to your project’s code and structure.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages