Modern Python CLI scaffolding tool for rapid development
Project description
kens-python-cli
Modern Python CLI scaffolding tool for rapid development. Create production-ready Python CLI applications with best practices, modern tooling, and beginner-friendly guides.
Features
- ๐ Modern Python CLI - Built with Typer, Rich, and Pydantic
- ๐ ๏ธ Best Practices - Type hints, testing, linting, and formatting
- ๐ง Developer Experience - Interactive prompts, beautiful output
- ๐ฆ Cross-Platform - Works on Windows, macOS, and Linux
- ๐ค Claude-Optimized - Special documentation for AI-assisted development
- โก Fast Setup - Uses uv for lightning-fast dependency management
Installation
# Run directly (recommended)
uvx kens-python-cli my-awesome-cli
# Or install globally
uv tool install kens-python-cli
Quick Start
# Create a new CLI project
uvx kens-python-cli my-cli-tool
# Navigate to project
cd my-cli-tool
# Install dependencies
uv sync
# Run your CLI
uv run my_cli_tool --help
Usage
Interactive Mode (Recommended)
uvx kens-python-cli
The tool will guide you through creating your CLI project with interactive prompts.
Non-Interactive Mode
uvx kens-python-cli my-cli-tool \
--author "Your Name" \
--email "your@email.com" \
--python 3.11 \
--async \
--github-actions \
--yes
Options
--author, -a- Author name--email, -e- Author email--python, -p- Python version (3.11, 3.12, 3.13)--output, -o- Output directory--template, -t- Template to use (default: "default")--async- Use async/await patterns--github-actions- Include GitHub Actions workflow--no-tests- Skip testing setup--no-docs- Skip documentation--no-pre-commit- Skip pre-commit hooks--yes, -y- Skip interactive prompts
What You Get
Project Structure
my-cli-tool/
โโโ src/
โ โโโ my_cli_tool/
โ โโโ __init__.py
โ โโโ main.py # CLI entry point
โ โโโ config.py # Configuration management
โ โโโ commands/ # Command modules
โ โ โโโ info.py # System information
โ โ โโโ process.py # File processing
โ โโโ utils/ # Utility functions
โ โโโ logging.py # Rich logging
โ โโโ helpers.py # Helper functions
โโโ tests/ # Comprehensive test suite
โโโ pyproject.toml # Modern Python configuration
โโโ README.md # Project documentation
โโโ PROJECT_GUIDE.md # Claude-optimized development guide
โโโ .gitignore # Git ignore file
Tech Stack
- Typer - Modern CLI framework
- Rich - Beautiful terminal output
- Pydantic - Data validation
- uv - Ultra-fast package manager
- Ruff - Lightning-fast linter
- pytest - Testing framework
- mypy - Static type checking
Generated Features
- โ Interactive CLI with help, version, and configuration commands
- โ Type-safe with full mypy support
- โ Beautiful output with Rich progress bars, tables, and styling
- โ Cross-platform file operations using pathlib
- โ Comprehensive testing with pytest and coverage
- โ Code quality with Ruff linting and formatting
- โ Pre-commit hooks for automated quality checks
- โ Documentation with examples and best practices
- โ Claude-optimized development guide
Example Generated CLI
# Your generated CLI will have these commands
my-cli-tool --help
my-cli-tool hello --name "World"
my-cli-tool info system
my-cli-tool process files *.txt --recursive
my-cli-tool config --show
Development
Setup
# Clone the repository
git clone https://github.com/ken/kens-python-cli.git
cd kens-python-cli
# Install dependencies
uv sync --dev
# Install pre-commit hooks
uv run pre-commit install
Running Tests
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=kens_python_cli
# Run specific test file
uv run pytest tests/test_main.py
Code Quality
# Format code
uv run ruff format
# Lint code
uv run ruff check
# Type checking
uv run mypy src/kens_python_cli
Publishing
This project uses uv for publishing:
# Build the package
uv build
# Publish to PyPI
uv publish
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Run the test suite
- Submit a pull request
License
MIT License - see LICENSE file for details.
Acknowledgments
- Built with Typer by Sebastian Ramirez
- Inspired by create-next-app for web development
- Uses Rich by Will McGugan for beautiful terminal output
Create amazing Python CLI tools with modern best practices and AI-assisted development! ๐โจ
Project details
Release history Release notifications | RSS feed
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 kens_python_cli-0.1.2.tar.gz.
File metadata
- Download URL: kens_python_cli-0.1.2.tar.gz
- Upload date:
- Size: 21.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0aabce8e60735516b9c7b1a20785eb62f48799b3f2c4e27fb2bbacfdeb684a99
|
|
| MD5 |
9afeb48a81fb88cf70f1e27ef70c7415
|
|
| BLAKE2b-256 |
8aaefd488db01a86091c9bec036618819a50f1c96cb20091a2048f4477cc36cb
|
File details
Details for the file kens_python_cli-0.1.2-py3-none-any.whl.
File metadata
- Download URL: kens_python_cli-0.1.2-py3-none-any.whl
- Upload date:
- Size: 27.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ef31a63cb9db8bc2669fcfa8964a40fcce3057fb987f17087024b6759c6b125
|
|
| MD5 |
7c118e9a5aaa8a6d1afd3dba38fa3703
|
|
| BLAKE2b-256 |
f87690f8849dd53b12f5b93b51bc69962cfb61ea1258de6a68b7a94131502e59
|