Docify-AI
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.mdfiles for any project. - Automated Test Suite Generation: Generate runnable
pytesttest files covering various scenarios. - Dockerfile Generation: Create optimized
Dockerfiles for containerizing your applications. - GitHub Actions Workflow Generation: Develop
YAMLconfigurations 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.mdfor 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 (openaiorgemini, 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
CHANGELOG
1.7.0 - 2025-09-14
- 🏗 Updated
--initto accept a requirements description instead of just a project name. - 📂 Project scaffold is now generated in the current working directory (user creates the folder first).
1.6.2 - 2025-09-08
- Optimized
.ipynband dataset files reading to avoid context length explosion.
1.6.0 - 2025-09-07
- 📝 Added
--notebookoption to generate a starter Jupyter Notebook with analysis pipelines and tests. - 📄 Added
--model-cardoption to generate a Model Card (MODEL_CARD.md) for ML/AI projects.
1.5.0 - 2025-09-05
- 📝 Added
--docstringoption to automatically generate PEP 257–compliant docstrings for Python functions, classes, and modules.
1.4.0 - 2025-08-28
- 🐳 Added
--dockeroption to generate a project-aware Dockerfile. - ⚙️ Added
--ghaoption to generate GitHub Actions workflow YAML for CI/CD. - 🏗 Added
--initoption to bootstrap a new Python project with a predefined structure.
1.3.0 - 2025-08-22
- 🚫 Added
--ignore-dirsand--ignore-extsoptions to exclude unwanted directories and files from documentation and test generation.
1.2.0 - 2025-08-21
- 🧪 Added
-tor--testoption to generate pytest-compatible test modules for all project features.
1.1.1 - 2025-08-20
- 🛠 Fixed issue where project description was not visible in generated docs.
1.1.0 - 2025-08-20
- ✨ Added support for OpenAI and Gemini clients.
- 🔑 Added
--keyargument to provide API key without environment variables. - 🔍 Case-insensitive
--clientoption.
1.0.0 - 2025-08-15
- 🚀 Initial release
Metadata
Release files for docify-ai 1.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| docify_ai-1.7.0.tar.gz | 14.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| docify_ai-1.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.1 kB
Release files / docify_ai-1.7.0.tar.gz
| Download URL | docify_ai-1.7.0.tar.gz |
|---|---|
| Size | 14.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b9b16b72143fc9a676a378663094c3e5c89c7f54005b7529d35a320165909392
|
|
BLAKE2b-256 checksum How to use checksums |
a9d0282c8a03592e89d6d66f222aea7962d18b92090641e99290d6e9b170b24f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / docify_ai-1.7.0-py3-none-any.whl
| Download URL | docify_ai-1.7.0-py3-none-any.whl |
|---|---|
| Size | 16.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6dc9a31dac1a3c926f22e38d8cae77126cf4d3c36fb31d67d8b3c23700398b78
|
|
BLAKE2b-256 checksum How to use checksums |
0fd1b72bc800554c30b188006311ae90a188b92ee348a3c5c5725d92e205bcfd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|