AI-powered documentation generator for Python projects
Project description
Doclify is an intelligent command-line tool that automates the process of documenting your software projects. By leveraging the fast inference of the Groq API, Doclify scans your codebase, understands the context of each file using advanced LLMs (like Llama 3, Qwen, or deepseek), and generates a comprehensive, professional README.md file.
🎯 Our Mission
The main aim of this project is to support developers and students who don't have access to paid API credits. By utilizing powerful open source models, Doclify enables anyone to maintain well-structured, clearly documented, and highly organized project management without worrying about subscription costs.
🚀 Getting Started
1. Installation
Install Doclify directly via pip:
pip install doclify
2. Configure Your API Key
Doclify uses the Groq API to perform massive-scale, lightning-fast inference on your codebase. You must set your API key as an environment variable or place it in a .env file in your project's root directory.
| Platform | Command |
|---|---|
| Windows (CMD) | set GROQ_API_KEY=gsk_your_api_key_here |
| Windows (PS) | $env:GROQ_API_KEY="gsk_your_api_key_here" |
| Linux/macOS | export GROQ_API_KEY=gsk_your_api_key_here |
| .env File | GROQ_API_KEY=gsk_your_api_key_here |
(Get your free Groq API key at console.groq.com)
📖 Detailed Usage Guide
Doclify provides a suite of CLI commands to manage your documentation lifecycle.
doclify init
Initialize Doclify in your target repository.
- What it does: Scans your project folder (respecting your existing
.gitignorefiles) and creates adoclify.yamlconfiguration file. It also creates a hidden.doclify/directory to manage local caching and save on API costs. - Command:
doclify init - When to use: Always run this first when documenting a new project.
doclify models
Discover the latest LLMs available on the Groq network.
- What it does: Connects to the Groq API and fetches a real-time table of all available AI models, including their Developer Names, Context Windows, and Maximum Output limits.
- Command:
doclify models - When to use: Use this to find a powerful model (like
llama-3.3-70b-versatileordeepseek-r1-distill-llama-70b) to use for your documentation generation.
doclify set default <model_id>
Configure the default AI model for your project.
- What it does: Updates the
doclify.yamlfile to use the specific model you selected for all future generations. - Command:
doclify set default llama-3.3-70b-versatile
doclify run
Generate your complete project documentation.
- What it does: Reads the instructions in your
doclify.yaml, parallelizes the extraction of all your code files, generates an intelligent summary for each file, and then compiles all that context into a massive, highly professionalREADME.md. - Safety: If you already have a
README.md, Doclify automatically creates a backup namedREADME-prev.mdbefore overwriting it. - Command:
doclify run - Overrides: You can temporarily test other models without changing your config by passing arguments:
doclify run --model qwen/qwen3-32b
doclify update <path>
Perform targeted updates to specific files to save API tokens and time.
- What it does: Instead of regenerating summaries for your entire codebase, this command only updates the cache for the specific file or directory you specify.
- Arguments:
<path>: Path to the modified file or directory. To trigger a full README regeneration using the existing cache, use..
- Examples:
- Update a specific script:
doclify update src/database/connection.py
- Regenerate the
README.mdfrom the cache:doclify update .
- Update a specific script:
⚙️ Configuration (doclify.yaml)
When you run doclify init, a doclify.yaml file is generated. You can manually edit this file to finely tune what is included in your documentation.
project: My Awesome Project
structure:
- src/main.py
- src/utils/helpers.py
llm:
model: llama-3.3-70b-versatile
If you ever add new files or directories to your project, you can simply run doclify init again. It will safely update your structure manifest while preserving your model configuration!
💬 Feedback, Issues, and Discussions
Doclify is constantly evolving, and your feedback is incredibly valuable!
- 🐛 Found a Bug or Have an Issue?
Please open an issue on the GitHub Issues page. To help us resolve it quickly, please include detailed steps to reproduce, your
doclify.yamlconfiguration, and the terminal output of the error. - 💡 Have an Idea or Question? Join the conversation in the GitHub Discussions tab! Whether you need help configuring your project, want to suggest a feature, or just want to share a cool README Doclify generated for you, we'd love to hear from you.
🤝 Contributing & License
Contributions make the open-source community an amazing place! Feel free to fork, branch, and submit Pull Requests.
This project is licensed under the MIT License. See the LICENSE file for details.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file doclify-0.2.2.tar.gz.
File metadata
- Download URL: doclify-0.2.2.tar.gz
- Upload date:
- Size: 32.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c4a31c663b92a4085e1e2376eb2205747ec8b09c89edcc528bff4806e770d84
|
|
| MD5 |
7d10963c56e722467c4b045f56854562
|
|
| BLAKE2b-256 |
8888bb6f21b4645a11724aa7dee8ca50199186b8e1fe6c23334987cff88062ae
|
File details
Details for the file doclify-0.2.2-py3-none-any.whl.
File metadata
- Download URL: doclify-0.2.2-py3-none-any.whl
- Upload date:
- Size: 36.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46c3f918acc0173b3fc3bb346a1447c34da709b77d284af11a7528a37b0f310a
|
|
| MD5 |
7e5782854192114ac0698e12251cf2cc
|
|
| BLAKE2b-256 |
0cdd05f005bc618acaad8661ead68ca394ad20c89331f88a9c4a1f132d197ed8
|