Skip to main content

A CLI tool for generating safe, NumPy/Sphinx style docstrings using AST parsing.

Project description

ai-docify 🤖

A simple, secure, and cost-aware CLI tool for generating high-quality NumPy/Sphinx style docstrings using AI.

ai-docify helps you document your Python code instantly using either cloud-based models (OpenAI) or local privacy-focused models (Ollama). It is designed to be safe (using AST parsing), transparent (pre-flight cost checks), and non-destructive.


✨ Key Features

  • 💰 Cost-Aware Design: Calculates and displays the estimated input token cost via tiktoken before you spend a penny.
  • 🔒 Privacy-First: Switch seamlessly between OpenAI (Cloud) and Ollama (Local) with a single flag. Keep proprietary code on your machine when needed.
  • 🛡️ AST-Powered Safety: Unlike other tools that "guess" where to put text, ai-docify parses your code's Abstract Syntax Tree to surgically inject docstrings without breaking indentation or logic.
  • ↩️ The "Undo" Button: Includes a strip command to safely remove all docstrings if you change your mind.
  • ✌️ Dual Generation Modes: Choose between rewrite for speed/coverage, or inject for surgical precision.
  • ⚡ "Lean" Architecture: Optimized prompt engineering ensures high-quality documentation without wasting tokens on conversational fluff.

🚀 Installation

Install ai-docify directly from PyPI:

pip install ai-docify

Prerequisites

  • Python 3.8+
  • Ollama (Optional, required only if using local models)

Setup (OpenAI Only)

If you plan to use OpenAI models, set your API key as an environment variable:

Mac/Linux:

export OPENAI_API_KEY=sk-your-api-key-here

Windows (PowerShell):

$env:OPENAI_API_KEY="sk-your-api-key-here"

(Alternatively, you can create a .env file in your project root)


💻 VS Code Extension

Prefer a GUI? This CLI powers the AI Docify for VS Code extension. 👉 Download AI Docify for VS Code (Link to your Marketplace page once published)


📖 Usage

1. Generating Documentation

You must specify the Provider, Model, and Mode.

inject Mode (Recommended)

Best for: Surgical precision and preserving formatting. Uses AST parsing to find functions and classes, injecting docstrings exactly where they belong without touching a single line of your actual code.

ai-docify generate my_script.py --provider openai --model gpt-5-mini --mode inject

rewrite Mode

Best for: Speed and heavy refactoring. Asks the AI to rewrite the file with docs included. Good for initial drafts or undocumented legacy files.

# Using a local model (Free)
ai-docify generate my_script.py --provider ollama --model llama3 --mode rewrite

2. The Safety Check 🛡️

Before generating anything, the tool will pause and show you an exact cost estimate:

🤖 ai-docify: Checking my_script.py in INJECT mode

📊 Estimation (Input Only):
   Tokens: 350
   Est. Cost: $0.00009

Do you want to proceed? [y/n]:

3. Stripping Docstrings (Undo) ↩️

Need to start over? The strip command uses AST parsing to cleanly remove all docstrings from a file, leaving your logic intact. It saves the clean version to a stripped_scripts/ folder by default.

ai-docify strip my_script.py

4. Cleaning Output

To remove all generated files from the default ai_output/ directory:

ai-docify clean

⚙️ Supported Models

ai-docify comes pre-configured with pricing and token limits for popular models.

OpenAI:

  • o3-2025-04-16
  • gpt-5 / gpt-5-mini / gpt-5-nano
  • gpt-5.2

Ollama (Local):

  • llama3.1:8b
  • qwen2.5-coder:7b
  • (Any model pulled via ollama pull works with the --provider ollama flag)

Missing a model? Feel free to open an Issue or Pull Request to update the internal pricing configuration!


🤝 Contributing

We welcome contributions! Whether it's a bug fix, a new feature, or a better prompt template:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/NewModel)
  3. Commit your Changes (git commit -m 'Add GPT-6 support')
  4. Push to the Branch (git push origin feature/NewModel)
  5. Open a Pull Request

📄 License

Distributed under the MIT License. See LICENSE for more information.

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

ai_docify-0.1.0.tar.gz (25.9 kB view details)

Uploaded Source

Built Distribution

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

ai_docify-0.1.0-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

Details for the file ai_docify-0.1.0.tar.gz.

File metadata

  • Download URL: ai_docify-0.1.0.tar.gz
  • Upload date:
  • Size: 25.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for ai_docify-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7ded64ec454bb45a7080fb4973a084bb7c6265a354262a52d74f07e227a5a234
MD5 3cae443f10ea5811dc73c1f4b6c0e4ae
BLAKE2b-256 8f44aee09e62f0ea0adf8a19cb088d9c033fe1a35e06f9dd96d3e8abf3ed04c5

See more details on using hashes here.

File details

Details for the file ai_docify-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ai_docify-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 20.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for ai_docify-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4199399a75b583a245b7cd909b3440c85ac5a4d435df6e091beed6b443d66786
MD5 a62b26782a7bbc8c8a85be197942fbd4
BLAKE2b-256 dcd49d77d3a435ca46ac47f6eaf3d10845da45ebeb2427c2fd2e6833a468e65e

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