๐ DocMint
Professional README & Documentation Generator
Transform your projects into professionally documented masterpieces with AI-powered README generation โจ
๐ Quick Start โข ๐ Documentation โข ๐ฏ Features โข ๐ค Contributing
๐ฏ What is DocMint?
DocMint is a powerful Python package that automatically generates comprehensive, professional README files for your projects. Simply point it at your codebase, and watch as it analyzes your files, understands your project structure, and creates beautiful documentation that makes your project shine.
๐ก Perfect for developers who want professional documentation without the hassle!
โจ Key Highlights
๐ Smart Analysis - Automatically detects project type and structure
๐จ Beautiful Output - Generates professional, well-formatted README files
๐ Cross-Platform - Works seamlessly on Windows, macOS, and Linux
โก Lightning Fast - Generate comprehensive docs in seconds
๐ ๏ธ Highly Configurable - Customize output to match your needs
๐ซ Smart Filtering - Exclude unwanted files and directories with patterns
๐ Installation
Install from PyPI (Recommended)
pip install docmint
Install from Source
git clone https://github.com/kingsleyesisi/docmint.git
cd docmint
pip install -e .
Verify Installation
docmint --help
๐ป Usage
๐ฏ Quick Start
Generate a README for your current project:
docmint
๐ Analyze Specific Directory
docmint -d /path/to/your/project
๐ฌ Generate from Description
docmint -p "My awesome web application built with Flask and React"
๐ซ Exclude Files and Directories
# Exclude specific directories
docmint --exclude-dir "temp,cache,logs"
# Exclude specific files (supports wildcards)
docmint --exclude-file "*.log,*.tmp,secret.txt"
# Exclude with patterns
docmint --exclude-file "tests/*,docs/*.md"
# Combine multiple exclusions
docmint --exclude-dir node_modules,dist --exclude-file "*.log,temp*"
๐จ Advanced Usage
# Specify project type and output file
docmint -t Python -o MyAwesome-README.md
# Skip contributing section
docmint --no-contributing
# Use custom backend
docmint --url http://localhost:8000
# Silent mode (no banner)
docmint --no-banner
# Show current configuration
docmint --show-config
๐ ๏ธ Command Line Options
| Option | Short | Description | Example |
|---|---|---|---|
--directory |
-d |
Project directory to analyze | -d ./my-project |
--prompt |
-p |
Generate from text description | -p "Flask API server" |
--type |
-t |
Specify project type | -t Python |
--output |
-o |
Output filename | -o DOCUMENTATION.md |
--exclude-dir |
Exclude directories (supports wildcards) | --exclude-dir "temp*,cache" |
|
--exclude-file |
Exclude files (supports wildcards) | --exclude-file "*.log,secret*" |
|
--no-contributing |
Skip contributing section | --no-contributing |
|
--url |
Custom backend URL | --url http://localhost:8000 |
|
--no-banner |
Skip banner display | --no-banner |
|
--show-config |
Show current configuration | --show-config |
|
--help |
-h |
Show help message | --help |
๐ซ Exclusion Patterns
DocMint provides powerful exclusion capabilities to filter out unwanted files and directories:
๐ Directory Exclusions
# Exclude specific directories
docmint --exclude-dir "node_modules,dist,build"
# Use wildcards
docmint --exclude-dir "temp*,cache*,*_backup"
# Multiple exclude-dir arguments
docmint --exclude-dir node_modules --exclude-dir dist --exclude-dir "temp*"
๐ File Exclusions
# Exclude specific files
docmint --exclude-file "secret.txt,config.local.json"
# Use wildcards for file patterns
docmint --exclude-file "*.log,*.tmp,*.cache"
# Exclude files in specific paths
docmint --exclude-file "tests/*,docs/*.md,src/temp*"
๐ง Default Exclusions
DocMint automatically excludes common directories and files:
Default Excluded Directories:
node_modules,.git,__pycache__,venv,dist,build.next,target,vendor,coverage,.vs,Pods
Default Excluded Files:
*.log,*.tmp,*.cache,*.lock,*.pyc.DS_Store,Thumbs.db,*.swp,*.swo
๐จ Features
| Feature | Description |
|---|---|
| ๐ค AI-Powered Analysis | Intelligent project understanding and documentation generation |
| ๐ Smart Detection | Automatically identifies project type, dependencies, and structure |
| ๐ Professional Templates | Beautiful, industry-standard README formats |
| ๐ Colorful CLI | Rich terminal output with progress indicators and status updates |
| โ๏ธ Configurable | Extensive configuration options for customized output |
| ๐ซ Smart Filtering | Advanced file and directory exclusion with wildcard support |
| ๐ API Integration | Seamless integration with DocMint cloud services |
| ๐ File Analysis | Comprehensive project file scanning and summarization |
| ๐ก๏ธ Error Handling | Robust error handling with helpful diagnostic messages |
๐ฏ Supported Project Types
- ๐ Python (Django, Flask, FastAPI, etc.)
- ๐จ JavaScript/TypeScript (Node.js, React, Vue, Angular)
- โ Java (Spring, Maven, Gradle)
- ๐ฆ Rust (Cargo projects)
- ๐น Go (Go modules)
- ๐ Ruby (Rails, Gems)
- ๐ PHP (Laravel, Composer)
- โก C/C++ (CMake, Make)
- ๐ท C#/.NET (MSBuild projects)
- ๐ Swift (Xcode projects)
- ๐ฏ Kotlin (Android, JVM)
- ๐ Web Development (HTML, CSS, JavaScript)
โ๏ธ Configuration
DocMint uses a configuration file located at ~/.docmint/config.json for persistent settings.
๐ Default Configuration
{
"backend_url": "https://docmint.onrender.com",
"default_project_type": "auto",
"include_contributing": true,
"max_file_size": 104857600,
"max_files": 150,
"excluded_dirs": [
"node_modules", ".git", "__pycache__",
"venv", "dist", "build", ".next",
"coverage", ".vs", "Pods"
],
"excluded_files": [
"*.log", "*.tmp", "*.cache", "*.lock",
".DS_Store", "Thumbs.db", "*.pyc"
],
"supported_extensions": [
".py", ".js", ".ts", ".jsx", ".tsx",
".java", ".cpp", ".go", ".rs", ".php"
]
}
๐ง Customization
Edit the configuration file to customize DocMint's behavior:
# View current configuration
docmint --show-config
# Open configuration file for editing
nano ~/.docmint/config.json
๐ Configuration Options
| Option | Type | Description |
|---|---|---|
backend_url |
string | API endpoint URL |
max_file_size |
integer | Maximum file size in bytes |
max_files |
integer | Maximum number of files to analyze |
excluded_dirs |
array | Default directories to exclude |
excluded_files |
array | Default file patterns to exclude |
supported_extensions |
array | File extensions to include |
๐ API Integration
DocMint integrates with cloud services for enhanced README generation:
๐ Available Endpoints
| Endpoint | Method | Purpose |
|---|---|---|
/api/health/ |
GET | Health check |
/api/generate/ |
POST | Generate from prompt |
/api/generate-from-files/ |
POST | Generate from files |
๐ก Example API Usage
import requests
# Generate README from prompt
response = requests.post(
"https://docmint.onrender.com/api/generate/",
json={"message": "Python web scraping tool"}
)
readme_content = response.json()["answer"]
๐ Development
๐ ๏ธ Setting Up Development Environment
# Clone the repository
git clone https://github.com/kingsleyesisi/docmint.git
cd docmint
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -e .
pip install -r requirements.txt
๐งช Running Tests
# Run tests (when available)
python -m pytest
# Run with coverage
python -m pytest --cov=docmint
๐ฆ Building Package
# Build distribution packages
python -m build
# Upload to PyPI (maintainers only)
python -m twine upload dist/*
๐ค Contributing
We welcome contributions! Here's how you can help make DocMint even better:
๐ฏ Ways to Contribute
- ๐ Report Bugs - Found an issue? Let us know!
- ๐ก Suggest Features - Have ideas for improvements?
- ๐ Improve Documentation - Help make our docs clearer
- ๐ง Submit Code - Fix bugs or add new features
๐ Contribution Process
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
๐ Code Style
We use Black for code formatting:
# Format code
black docmint/
# Check formatting
black --check docmint/
๐ Troubleshooting
Common Issues & Solutions
๐ Connection Issues
Problem: Cannot connect to DocMint backend
Solutions:
- โ Check your internet connection
- โ Verify backend URL in configuration
- โ
Try using
--urlflag with alternative endpoint - โ Check firewall settings
๐ File Encoding Errors
Problem: Encoding errors when reading files
Solutions:
- โ Ensure files are UTF-8 encoded
- โ Check for binary files in project directory
- โ
Add problematic files to exclusion list with
--exclude-file
โก Performance Issues
Problem: Slow processing for large projects
Solutions:
- โ
Use
--exclude-dirto exclude large directories - โ
Use
--exclude-fileto exclude unnecessary files - โ Reduce max_files in configuration
- โ
Use specific directory targeting with
-d
๐ซ Too Many Files Excluded
Problem: Important files being excluded
Solutions:
- โ
Check your exclusion patterns with
--show-config - โ Use more specific patterns instead of broad wildcards
- โ Review default exclusions in configuration file
- โ Test patterns with smaller directories first
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- ๐ Contributors - Thank you to all who have contributed to this project
- ๐ ๏ธ Open Source Community - For the amazing tools and libraries
- ๐ค AI Technology - Powering intelligent documentation generation
Metadata
Release files for docmint 0.2.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 | Provenance | |
|---|---|---|---|---|
| docmint-0.2.0.tar.gz | 22.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| docmint-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.7 kB
Release files / docmint-0.2.0.tar.gz
| Download URL | docmint-0.2.0.tar.gz |
|---|---|
| Size | 22.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6981d8fe9bdf9f97926d541547fd9e6c47e731ff16ce52e564ad96fabbcbc99f
|
|
BLAKE2b-256 checksum How to use checksums |
3365feddd9f8baed160131fb6bc3c45d2ba2b2aa67b37d8b15db4249633679cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Release files / docmint-0.2.0-py3-none-any.whl
| Download URL | docmint-0.2.0-py3-none-any.whl |
|---|---|
| Size | 19.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd7d5e35c1acb171bc2a259c12aa76afc12b3a26071526e86b7390b66321faae
|
|
BLAKE2b-256 checksum How to use checksums |
bb496d8d1657564ade49ce27a2354114f1b92c42ef1dcaa199ae7d6c2f3a3552
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Security for docmint 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.